From 80b7ff399e6af62296c49928de78cc06da994b76 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 9 Aug 2024 08:14:58 +0000 Subject: [PATCH] Deployed 4c37fef with MkDocs version: 1.6.0 --- .nojekyll | 0 404.html | 548 ++ assets/favicon/favicon.png | Bin 0 -> 12418 bytes assets/favicon/logo_light_pink.png | Bin 0 -> 21351 bytes assets/favicon/logo_white.png | Bin 0 -> 19806 bytes assets/favicon/site.webmanifest | 1 + ...ounds_neue_condensed_demibold-webfont.woff | Bin 0 -> 32872 bytes ...unds_neue_condensed_demibold-webfont.woff2 | Bin 0 -> 25924 bytes .../tt_rounds_neue_demibold-webfont.woff | Bin 0 -> 32096 bytes .../tt_rounds_neue_demibold-webfont.woff2 | Bin 0 -> 25176 bytes assets/images/7170doc.png | Bin 0 -> 121442 bytes assets/images/favicon.png | Bin 0 -> 1870 bytes assets/javascripts/bundle.fe8b6f2b.min.js | 29 + assets/javascripts/bundle.fe8b6f2b.min.js.map | 7 + assets/javascripts/lunr/min/lunr.ar.min.js | 1 + assets/javascripts/lunr/min/lunr.da.min.js | 18 + assets/javascripts/lunr/min/lunr.de.min.js | 18 + assets/javascripts/lunr/min/lunr.du.min.js | 18 + assets/javascripts/lunr/min/lunr.el.min.js | 1 + assets/javascripts/lunr/min/lunr.es.min.js | 18 + assets/javascripts/lunr/min/lunr.fi.min.js | 18 + assets/javascripts/lunr/min/lunr.fr.min.js | 18 + assets/javascripts/lunr/min/lunr.he.min.js | 1 + assets/javascripts/lunr/min/lunr.hi.min.js | 1 + assets/javascripts/lunr/min/lunr.hu.min.js | 18 + assets/javascripts/lunr/min/lunr.hy.min.js | 1 + assets/javascripts/lunr/min/lunr.it.min.js | 18 + assets/javascripts/lunr/min/lunr.ja.min.js | 1 + assets/javascripts/lunr/min/lunr.jp.min.js | 1 + assets/javascripts/lunr/min/lunr.kn.min.js | 1 + assets/javascripts/lunr/min/lunr.ko.min.js | 1 + assets/javascripts/lunr/min/lunr.multi.min.js | 1 + assets/javascripts/lunr/min/lunr.nl.min.js | 18 + assets/javascripts/lunr/min/lunr.no.min.js | 18 + assets/javascripts/lunr/min/lunr.pt.min.js | 18 + assets/javascripts/lunr/min/lunr.ro.min.js | 18 + assets/javascripts/lunr/min/lunr.ru.min.js | 18 + assets/javascripts/lunr/min/lunr.sa.min.js | 1 + .../lunr/min/lunr.stemmer.support.min.js | 1 + assets/javascripts/lunr/min/lunr.sv.min.js | 18 + assets/javascripts/lunr/min/lunr.ta.min.js | 1 + assets/javascripts/lunr/min/lunr.te.min.js | 1 + assets/javascripts/lunr/min/lunr.th.min.js | 1 + assets/javascripts/lunr/min/lunr.tr.min.js | 18 + assets/javascripts/lunr/min/lunr.vi.min.js | 1 + assets/javascripts/lunr/min/lunr.zh.min.js | 1 + assets/javascripts/lunr/tinyseg.js | 206 + assets/javascripts/lunr/wordcut.js | 6708 +++++++++++++++++ .../workers/search.b8dbb3d2.min.js | 42 + .../workers/search.b8dbb3d2.min.js.map | 7 + assets/pdf/poster_mi24_final.pdf | Bin 0 -> 9878824 bytes assets/sampleHamk.zip | Bin 0 -> 147 bytes assets/stylesheets/main.3cba04c6.min.css | 1 + assets/stylesheets/main.3cba04c6.min.css.map | 1 + assets/stylesheets/palette.06af60db.min.css | 1 + .../stylesheets/palette.06af60db.min.css.map | 1 + codeBlocks/index.html | 1551 ++++ css/custom.css | 237 + editing/index.html | 963 +++ index.html | 720 ++ js/custom.js | 30 + overview/index.html | 793 ++ search/search_index.json | 1 + settingUp/index.html | 991 +++ sitemap.xml | 3 + sitemap.xml.gz | Bin 0 -> 127 bytes 66 files changed, 13128 insertions(+) create mode 100644 .nojekyll create mode 100644 404.html create mode 100644 assets/favicon/favicon.png create mode 100644 assets/favicon/logo_light_pink.png create mode 100644 assets/favicon/logo_white.png create mode 100644 assets/favicon/site.webmanifest create mode 100644 assets/fonts/tt_rounds_neue_condensed_demibold-webfont.woff create mode 100644 assets/fonts/tt_rounds_neue_condensed_demibold-webfont.woff2 create mode 100644 assets/fonts/tt_rounds_neue_demibold-webfont.woff create mode 100644 assets/fonts/tt_rounds_neue_demibold-webfont.woff2 create mode 100644 assets/images/7170doc.png create mode 100644 assets/images/favicon.png create mode 100644 assets/javascripts/bundle.fe8b6f2b.min.js create mode 100644 assets/javascripts/bundle.fe8b6f2b.min.js.map create mode 100644 assets/javascripts/lunr/min/lunr.ar.min.js create mode 100644 assets/javascripts/lunr/min/lunr.da.min.js create mode 100644 assets/javascripts/lunr/min/lunr.de.min.js create mode 100644 assets/javascripts/lunr/min/lunr.du.min.js create mode 100644 assets/javascripts/lunr/min/lunr.el.min.js create mode 100644 assets/javascripts/lunr/min/lunr.es.min.js create mode 100644 assets/javascripts/lunr/min/lunr.fi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.fr.min.js create mode 100644 assets/javascripts/lunr/min/lunr.he.min.js create mode 100644 assets/javascripts/lunr/min/lunr.hi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.hu.min.js create mode 100644 assets/javascripts/lunr/min/lunr.hy.min.js create mode 100644 assets/javascripts/lunr/min/lunr.it.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ja.min.js create mode 100644 assets/javascripts/lunr/min/lunr.jp.min.js create mode 100644 assets/javascripts/lunr/min/lunr.kn.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ko.min.js create mode 100644 assets/javascripts/lunr/min/lunr.multi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.nl.min.js create mode 100644 assets/javascripts/lunr/min/lunr.no.min.js create mode 100644 assets/javascripts/lunr/min/lunr.pt.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ro.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ru.min.js create mode 100644 assets/javascripts/lunr/min/lunr.sa.min.js create mode 100644 assets/javascripts/lunr/min/lunr.stemmer.support.min.js create mode 100644 assets/javascripts/lunr/min/lunr.sv.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ta.min.js create mode 100644 assets/javascripts/lunr/min/lunr.te.min.js create mode 100644 assets/javascripts/lunr/min/lunr.th.min.js create mode 100644 assets/javascripts/lunr/min/lunr.tr.min.js create mode 100644 assets/javascripts/lunr/min/lunr.vi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.zh.min.js create mode 100644 assets/javascripts/lunr/tinyseg.js create mode 100644 assets/javascripts/lunr/wordcut.js create mode 100644 assets/javascripts/workers/search.b8dbb3d2.min.js create mode 100644 assets/javascripts/workers/search.b8dbb3d2.min.js.map create mode 100644 assets/pdf/poster_mi24_final.pdf create mode 100644 assets/sampleHamk.zip create mode 100644 assets/stylesheets/main.3cba04c6.min.css create mode 100644 assets/stylesheets/main.3cba04c6.min.css.map create mode 100644 assets/stylesheets/palette.06af60db.min.css create mode 100644 assets/stylesheets/palette.06af60db.min.css.map create mode 100644 codeBlocks/index.html create mode 100644 css/custom.css create mode 100644 editing/index.html create mode 100644 index.html create mode 100644 js/custom.js create mode 100644 overview/index.html create mode 100644 search/search_index.json create mode 100644 settingUp/index.html create mode 100644 sitemap.xml create mode 100644 sitemap.xml.gz diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..9647244 --- /dev/null +++ b/404.html @@ -0,0 +1,548 @@ + + + + + + + + + + + + + + + + + + + MkDocs-material Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + + + +
+
+
+ + + + +
+
+ +

404 - Not found

+ +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/assets/favicon/favicon.png b/assets/favicon/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..8d5b537b486094a4f5039d51d44b7414aab1f99e GIT binary patch literal 12418 zcmc(G`9IWM*gs=1Bw|oXWH7mHSsD?MotUDGWyYR$hHPcYE=y#WZ777&FxIh^B)jag zlchr4vWu*J&vZY}zwms2=;bw^&-t8loojiY>%6b4XoH*DCz;PO)6meI)YZ|rO+y2T zq5gw0fG2P6Ka2%`XuWQ0tI?G9@%{imppL3&RT`R#gcFB0^x!v>yN;O`4GqVA>Oa~U z2Yz1~8mZH|8mdOVmMfp*ygy$)OFtkZv2|RgNQs!|gbK)a9aSW_`mI%0hVVT8Vs3Wz z*zUDT;QscH+S&IsG;{pNTT527;4f5@hK8F72qVtHNlRlYBm$u+*D-+7SSRJeXqphJ z>@*>oVF((UC;uM@2JIg$*Qy+IuWn7b1>b)*795uowEv@H?Ds)FasI5Ozn{dVGRDaC zz=N%&{+ytrUt|2i!FE>fgO0Wry3^U#Msk9W_deCS%?2GF4aO24kL@l6A8+}5UhEue z`t_|(CdEBny3XFyPoeIe@So%E&_kF*U1YlF`MrsI@Aw`Mx@|rfZjx^vkqA6k_{IB= zORxJ$^Yq+K3yzF?JU=b{6@D)eZuOhD{C3-Ej7;D3YD)@2_AS`Y-pt)QJ~~KvKZ{el zz5h#g_um;CF#&0n?#!}K0-UpcBA<4-@ST{Kta*zb!JLgH-;G~DJbq`a&SaMv`{!Wx zkMhy(`#(opIeb;SsF2)F^eBta-8ljynWuEV5Cyh7Si8&egh|7U*{Y@Px%a@sJ>@S| zJ8u|Zs!43FTslMnv9a=qcVSn(ispj1AEK zs;Fl?rL<`UZfnB3!;`z1gNHR|PVXG**U52d&ZN>_q8sME)xI}_3z!|Fs->oZ&zEe5 znXcrx;$o46^Xl4@AjMqHbpAbH{Ky+}tMM##P`E~o9FD%&?;5TeHRaf>km2e(mL^cd zk z|NZP3&7<7TQU{pn%Bz69r#veU!kUOsc?Thp%~G68@pQ7-t;gW;jC3e%O+|ELZ=$YOdx|3&Dgr!JQp2gd# z+nL)r&{n1UF6TLR<(Q9?vZ@p^R`TYL$|ke4mI_qwo%O#Y1EdEQRb-&q^O{t&8RnvmORUrh=m#h5=6^q6btu{Ot6kzghx0j8VQ49lL{9%g3G z@n})!j!jvUk;&EbNj z=JLUk$fn8HWUaU=`P(8b2bY4LtT^oX=_zzGKc^VkTm#kg&D$$Q^x%1;Q_9G%!INp5 z^;bq*I7Or@-o{~NOpG_0Zi=0AKEl|5a@bP>7LUC?`NnNN27D<1zv;DSW*XjM<{i0G z-#wQ)`t5G=U9BHuz4#Ys@p1`SE^#Le*VLNlhqTI1^=*&1@7H~rOI>`Krth7Wlc^~t zLPDw~?ev414mh+TG`<5V&y(>vB!uG_2^onNAGqrs#&)?l#$9gW z$MnMiL)~y?RrZ;r=+`I(`^xIWo{7r|tzGYmh%k#VM8JiVJH?Y1MLdx}*?UYe>!A)9 zX;nkhZ{oy2)ULJKYdqpUQ;ho~poP~FRZhlmZOz#u+Q8MTb*f>uUU#055ZYrUK_?!U z^ZW2m7op5DITfBbpazlL<54_Js{_#4P$b&VJcyEN}`&7DOZ-a4czJKxhTeM}P7g}~_mWBaHvO6;LV!p_jc z3(U0a@tOwV7b!?o7IwUwPy5SwE2P6_C-h=9Ndg2wQl{U9u&*8_&G6fXF6etm!<~VD zzkXHKL9xfT_0Wj{N5F78<5%v-LvOELY~FyytQRao)4}3c;9;4lKl0* zKitW>l0g4<1TtgJsZ;ZHP)$=^LS@zK2y!*B+M@)txVydsuc=`%vnTv{nYHdipkl)qSPP50*DMpH_9`?kYP5TSY8atXlOd7Z{9{|-HHzjxiPxJ>)@%wQujGi2Wo;1XKGwuxTI;%PIq%zmGL_V=llhk!5ZWgRI|H(%TtK8oEuDDz%_l_ z`K(P+JwPZPF84K&=7#Cd?iZM1dKVlqZF`jcTd>DcDn1Il`h?B%R4HDWq3;9S2M$Gt z$3zUplfEdmPeh+2MZ2F|y)T~;UIXwYkJNdsoh}lH5(Gps0HXA{{k(qlrW&h8{G%$h7haMWn5#|`d3pJt{C2k3V9^hD~?zKq2mAo!Dqi_eK^va=g zOnVMHz2R<6)-}Uy91=%bU2L5tAJ82DIGzI$a%)S6x4YN)ta3JBz105&0+xwv@=pa4FrEfj4aZE5#swu^(r5^Y6NOvfnmRz5$lYpJe5INT5; z)L!ZJXu+XQu8JmG1Nn33El?)<-dKROPEJ)ceJOA^xN~E1Mxuxa-z_hAx05=C{lACC zT-pXM5+0seqmP<%iLfyThL99z`Zo4cQy;=>QN__;y-d*IARV3$$NrVYGNqpvCPjRElidDrYPKxAX9tTQ0Aa>E9W*E%8;*|Z7L=bA5ugb zA1gt|_nV;D&j9V!8~f@36?kn;K+1Ty=2~y>Iipwe&tuve!I|_Q1=OG)I$~(&k2shT?NCtv2LH+Oy8&8rsC+KZ zKfn^mqYcD1@Y0nBuJZgzKXYB`AOtx~(r}TQ3oyqsj%2ImTotB}LWRiyS63zZ zB2ftSjqM6RBXO14S3IRaNB%s6HlE~MdB_XWmlcljO@Bf-A?L(8Fe!5EKP`29lcnXe z`4-YuEov-1scZV}F4^E3A7|yyl1kV#$Qn*K0XM{nnyz(MdM#JeWSN9$^K{KaI3|f% z*x#mAl~?2{ija_904Hi^1tjw*W*?OD7m?f_&QnqCv^2zAeX`3$5cbSaw!zGs;kgZG z)Cp($+Ccym@8f*n=W^P9AK|g5RmkCSp28qC3CO(-CA| zG-(POP}JI-mPl)T)oPV^M7bQ8r^E~sOLISrB^79Fy4jFC?x~Xq&MxDyI+( z1L=&UK;1g7+?~tELTQl`!Rbvwv64**xq~y(ivF02>ef;s%thA# z8uZsTRmROAIR-|+$u!fb6d*>JuT+`9r&6ztXjqGdA=Xc8FDSV+WR079GmOXN!VcR2 zxP9?qbm4rR{%&aLYz8B2xdQ8{wn(Ky^qN7FR%>h?qxP&4d zxIV4F3{Nt?z~lOiY&$yr_%8g!08#|vhQEhbz+LCX>Mb%2f?#k3<4O&G5ag!}6+mP= zToi$<-Jmb#y4|-EZ(CLQiU|9uY5-M!nm7a#$xrr;l)5aML$-Gexdw}Aio&W&55?zu z9(S!l#-9u_)^(*{vN}F|>l$Zpf7|{$bP`}zrEEE)Dtn!-+6}Ry*qV5(t``Vbt}ujq z3b;+=U#bTAZ5=ZhU zKbfR9RD`Tadq%qh_T%HskU<%F$iMC+u1KeCEd*IjE*vm^%(KF4&vW%d^L>oX? z)7FQWrI@10Av+)erZE9jlMlFcDco?vON3tJTq1&C7d*uo8WnrPN_}#2t0)^}5deRZ zz&_P)Z{Q~m&bK)n{Lh0H4*c0r2P2MM*e#&5Qhfs`-)IR%SflXWyR@8h4vlhi*|9g8 zS}HXrnXmXq7X4L&yAaUyQ->mFH@q%R0%%?vh;U1nzN8xZne`62a5dZ&93X-moT0CT z4XPnGi%H*gcxhDGO;ts0B*_2T7e6yVL*s84K#h~iKf$i%C)e300$nx%4$YdYm)X1- z(}>N&)?98u(QL`6(H3_OIg4$(e7>pXRz-B0;E@*vQ}q^Yql9`~D_*xDxkKJF#Wdk> z^AI9($Z2n~Mp_R`jerW^oS_(DCsf$2=4pW2BN`#WKq5?`+Gr&PQ=y7tm!|{sSg08k zlj>eBR?0T<0R8;ihy6j2V7$^S(sVY~xar@@f`{!=!$sS1a=<2z7pO$Z#Y)-tciRt! ze4u&3RnZZS-&Fud(uBM%tvFRs^Q%8=E?W+)UUiDoZ)_C)>ebi!Lfe3v>y(B5;`jY4 zOMpV#UYWYWMys!B@XZ2u(}m&FUZH1AVfBH**AF@3_tbx0?m}Wh^ThRg-*Nc@|k7jwL46X&Uf;AoMa@G@2aWPm@ps_x@6w z;)SJv_pzCzXbMmLZv%!`)r{|;jH(-FIT~xetK)vz8y#($l}$tq&0^pafJs7YnFfqz zT&8bZHX|@S+|HADG={aQ*r@W+rXqVbgOzgCTYTlD;{+v%YduBbnm2kuKp`3WU z@-WP@KeBDH|D*I@a&BWnWhyFMW9KQ)6o1?Yi*~zU!d$m?dazG`>b}Ol0rCSbmPvN< zgBT{y|6sLFC0ygn@>p5$uUXvwVfV45P~{cXq^P*2j51#Zn)oh{LpKPbOgN-4I97T4 zAtdl~)DEkKpp@iMNm7n0^agE`@cYBf?pK$r8mEV6={4fj4D7fB#T$iqJ&W1TS}Ee^ zu={=y>Z?hjch$aLIOA#bm$W@Tg0a!iyodiEQoAZg$G@idgHI&vtz5Bq{2=i7aPL#u z`{Vs3mGfh}YqKgxODfN6&HDRQ{v7_8s&xxKhX3q`b*OW&Zl!h|vcRt{B^^JFmN{B} zEFeBFrGh(VCfu0)vyg5Tv|R@Fez^C(xzUKTehT(j^dA?Az?D}yL09!7Ji^rjbI5Ux zWzC&4vEI|-bm@sYcaR^qYu}~&emaJc_LWcOuLU3N|LUkKZtk=M6PPiOSu6+S_-^hL zi6ezx&MqJPwAnr~u&`s}i>vQ4WeB}y_o64fUfbToXvl^wf2{?0g!1LIESp>Y;cbR! zm#90w{~TTV>YkP-q58>T`>Q%nuKrVA)wlfr9`LrA4zhDQ%R)9w^`GvA<%8?HHn_<* zoA&U5ISO7hCsFqEbu;q^FHSsy(q!MhJG7nHniP8scnxI!g|*7)i2TW`BBU7_5ZFw@ ztqXc>3B?;U>RE=|f4O+~t6yEz%e354-d{c;MK&cLacEaRm>u4w1(RD>esdyXG`RHQ z?Y6ap7iH052!0tePa$&DX*ONnIOQ%N!Axps*Ia8-flAQvq2Cr`2E``oA8lK42R1PF z<6Hr$lb!M?tFhlOw$W`OQx4F{_LcW7&-?3H6EN^73Rg42|7@U@jvbpr@V#VJ=AGnd z88)%rMEO`@C!3^ev5l96Do?8>WyO^{H5dGIM7Gcka6PPlv#*R+Lue;v&Q48E3y-7* zyq2jfl-6y3F0fI!Hv9h1_uYME+zl)KBYhn^w=e|Txln1V85_Hkf-HOz7aHXt`HlTp z%iTcQr2JEyW|~NS(-y;)c^t>t2+h$8yq+3=eO-xx?*F!QakPCf<`#S?p|n^#JF}{$ za`aS^VeJ5r{;&QVI_}l~`rm4V${*)o$9*$}mt~+PvA?;{o%3hA_J3;<$A=f?8Mrk0 zlHD`P^kdx6v0wlAU()fkU^4%4ZjHWdJ4ZizZ+B+j=WKibzNJ;rUe)T+mZuU^)Q{6Y zF1r1S`*XAw92}Rar^>OD`=ax+^4Xth-`?v!FpNlIXIcB9zUQO;$Ju0MbF2N@QJ{Gi zv*1SerT2&5Pb6&nV6?#D?U}Bv_C@Mg(PrZf$D4NO@5kOW-Oy(_zcP>cAYW01F&X{J zUl(NqbxiGUg(0qVTkn=guQNRv+nV9nx~9cHc{RX3`IaK#utz}LvfG!2~Sm(R`r zk*0bF>e$>64=q56ij}$k%B`>uKFwWrcV&#Qd9+zrsguS2#K(SU8n0%IX^13;88*7@ z-J z49mB-8!9xJQO|VjNM$vh$#T*8RE;@taH^APlsT3Pt4t&%ROqxF!y(4t+Pc_3Y*Ad9 zv6kv1HdbmR$$lzSR_ZowvGYCK2@-yS6sZ+tLW*fh;&~P_BD79Xy9N0SNCq1tu5*2L zvb=SGFEP~=y&ESyHU8#V_`u?36$#;Pq=f|OOs=eGI@$V7A*c;y06w$i1%~U~2Yj~= zQ`I4FFA34a&XX5HO_St8FJH-`j1NP2Qw^DXvCX(*Vn$8Pc6SZ3W@({3+>Kb>AAq#1+yPZF(nm1kzDK#%Tmz&K(h{7r z>Aeo5@TYH&%q%-ey#x807Vo1V!+crFys32NnP5R3kdfC}{BwN*2oRkFqyDZUj!%Q- z$A^cUW`QcH>EmaRKCTR1yWx)i!wb~GekLO1t#A`XO&>D(e55tc&!}%^j9Cf{w7C5P zPoJ4j|1x~Ez5lXW9SKo>Mevk+x`R7UYPXp2I8}VGows&-)$H8b23Lm`S+y5vOzsLn z?s>PN#r;37O>WATU(9E7uL`dnOdGxx$||2BQ5kDNVm{N@IRv^>#s#2{xX|1 zS9A@WBU1B?;Zci*3S@7ZG$29L?LmA*O@3s{7>C0-m1Woxke4s^YEu-E*4{|6pX1EA zL&*@3_B2IR9!|iX2%dUo1Me^mx@XKqI~l9o^w!1J54W|{>u9~l<0K0>&>Ls)82G2r zq$?E-qe`M3FS)G&&aWd!S`(^81Hes{-AQ(m#_h%h=ZNGg44e_{2HXilHD8-ot4&Qb z&l8yH;|OQ+EWkMFA(|&dRUy~v=Fy40^R(b-DHrL^jw_cB>(3Ok>qSe5Mqf{1XZ(FS z%XD>&#a*tNMna2c&Wd9OEAXv^s)sD>*)f|tCk7BAkUs+@$Ubgg?8soaFGe%>0}Ncy z!lLkB?gG2^Xn_k{GBZYu(#yeWrT5#_d z$0?+jOuJxa<5Z?As)!;@_hSdjNU)MN9SFF>TU8N#7trFpH~z&0 zcQna?6^e|Woz-%$e;6S)HVg9r5)%QnplZgVYBdYr1jcw3pxT|4a2Z&EF|P{ zFK~Pw9`u|ohY`3TrfM9IvbgWX0^I1A32SPjT&XCK(8~+f!BlV!;Z|t801Kdo)yt6v zH2C4G(E}pWcd$lPET6kTFWz?2IpT$^Ghb>x38n;?z7rloebV1{0UI7kLad7jGMa0U z^x|9V`EqF2Spc4-;=goojNe%x0FUIefrg&Yx!{aRbFr*P7r!|NoFYL6-=s-VYaW-n z+qD(=wJ5uNt?MQCoM9M3UsAPzi&N{nA*KPny!&*n6fD^Mm^S4cS7Rh4Wyc8a_7$l2 zJN33DxL#!X`4v}5$5JxMcI!xIZaVh6RD}bVE^0%Xys)%BK?CR zWWJ(4Qm>CZmu8($tb2Yai3@O`mJKrWw?4N*&yBSHDtNO5Hlq`}E|mn09c?Wm*2OK} zcHfUdOEmd|aXMAaSHcj>RPyWyFinVc0M*E(kCw%6u1vCX)((<}7(M{z~r_O|q#qPL!GI5ZZf}qS-iFzM?r~|{5ff}A?FSFI; z$8`Ipc(8l*CQ!Lx_oY(A-32quuKAwM6ZOShJsnFV60E_lH7W&E1Slz&Mq2&$TtWf+ zDPQ4$k~V@L-2U9X_I|@Gp??gxsr7JF3cgWq@pEe+itddMXJ|SY_&y4+>Jb;)onGLu+ zSIS-R0vj3_Fhhz78RWlN#5Fw>kN<+&>j?!UoE^41loZ{O@~@?Gx&vm=P{G~Rfkr+l zyw%uX``#C6;il^5w?3S-fH@X|`v?jN@gjvtNWNPne~`qHp})67Po0^6(*tqmSivJY zM$DOS=2X4@A1WO4TU?PJr-ob3v!Q&#v&jS7-Mo-;UyKsxO?@HOnGlpqf{ocBLsFc8 zhVqG>dixM+)$rl~cIOUSDZyxW(+^b~6aO)ES^8Yl2VtR_uoph?{z9Jb@A6?|LL$u{ z?8ELs!@^s_HAY&ubRJw1g6&P6Zvj}n4}Kv!Rumu@C_g?T zPzB4m0|c{CL$Q~FV)3Jo1=GNA=ezrshM9lo2ZM8b%*Hr`j%qj{mc%wYHAi42RrkCi z`UbsTUGQ=-=8{lvL1pmFg~%|~B5l`@eR(|FpRQEB2E8_yf{!mXl>qzYf+|OJFjTWo z0@Jo*sK6)rw{D^jj%IvR{3t_;Qft9lk!bTFb*MMW&^lY)>*D5j+5P{@FkJ;x*uHZs zrrytQ<+H^_W%5$7XAAJN*4U9&s$8-S`LHbjTGz38Xq1PgKX0m_RC5EE?D7AYZyJmF zp~GMKntlfc2nWXm1-b9s3ppW7^9?tq@d(Q z7y7JU3M47sqs*?P=rJl*f&B5Oh(HAwC;Su!UiJz@j^CEhUT8A^TR$5e)ld#Yj12+O zJn9sipcEVUG`Wj{%0mhjAuUa|&W~?P18Mlc97PJDUKT6)o=S;LNz(+aFE@7wYj52b-24Pc0_eW4k;2TCTk%wXBHsYh2vEFQtH z`{0sdGH7K15t9u@>DZT{43QT|$jzjN;_>9h??t@S93qRN3W*1FirJs!s=8rkbpvq;$cJmEkIvLu_hpTzDbH~mMp%d%mb+z!F)r{edl?4^F4t} zF4;teo}^qf=h7S<`u_IoJjmqT1E>}9qkEvIqoi=JDUSqOx&SKUlWRy4vXUFv1fVLY zsUx{ZG-?KvL@xr#|CY{yF3M{_R_NUFh?N)AiN(6Y$FN#e<{fERHbv))Y)W#~RHQ3^ zu>(DUb28pj+HRs&=Q&0+9FqRE+&9ZFi;Dv7O!9!qH%?^MFDA-^Dt6ko^abFuNk+c< zbC)kCeB^O)3H=I^2Hjq?I4SxvD&b>S;J5zZNbt;tzSrK-N!P&T8m#aRe2u=$<|*n1&&gL{ifh-vSK(SvaxV z@Cw!el=}z^$BHVbA^h=tsj~ZTnqVD39dt6$)kv8Ujrb<;A;>G0it2x|_=AMb91!h3 zcy!tzp7Gw`Lnj`^Lsxw05$G@hQRktb;STK;&506{XHaEd9VUvSpYp~5M|=npCUrI2 z;^uU3Be(+5A!qwJ;wR`aPz2Raz(EWvi8@ZZK?HvSA3A4WiAS4~qIu1hi?YR4mY#z( zsm~QDauu*>-U)fpS9yE?b(CD`)EJpGAHp*}ADJ9ZX1oX@lRpeGU4%jN!UfkE*>08d ztFqr4!0yWkcya^arq+4r0ND-BOGETG@gWmjs<$=&s{8NjAm0=6M7~}v{5V!58ZQTI z0D3QGl5}6Aq+cUFwZOOa)E=7AA!1@DkAf)UBB&*vlMz6r4Zj#+b;)~B77M3!!G{8i z%nXu{@l2t-i^|f%j05zY+cAFvP9Y7|W0n&@$8#*rZZAKgz zcqXPQxOUa74zS?IPnkN9+`g71|JlaCVk0hk&2dogdQUJ06XkaP1Tg^ajPtih(dEyf zZKH4NK*!d3YR8t)C*lBhrO6PSQq%^BwZEsq3)u43DTb+2ob?T(m8sFO#U4hi**Tye zj(Td^iURjDM_0}Io3M|94khPIQy1INm4Y|BM+dt%Fop)3Pi|%Q8D>J!KKfU;=g_f2rzp`UtTOEIf!>jo2^%-D}HWwF0B_pfKItH{gG3tc9mU z+u&O=aSaIx=1u)HIV{5m0jJ~^R8#U|iZ%hFORtGyKOSf}?U@jKu+zIKtE3BtW4rs* z5QiXDcUR7An?^VM^JqUUPxO(W7)5ikTWG{dcEzsN@y;ag{N*uxrCnF|4IeLUPdokS z_G=l(ImZ>0-na_Xgn`N9OUO2wg2`LGh~qjayh+gkudx61%*Y@h=iP zjkRV!Ulo@-ScSb$%b5>y;E@!7YZ7en;tEmVzT0W+>MA2=lI4*qHk`^gXWI4${xS0MW|h6{y%FMk*%(-k-Hb*zFq~V zdNinokEmp=@0k*&Ofi=!vpg>6Q>z|ibc^8Z&OZ=i6^<8 zy;@R!b~OBdf*L!X3oI|7rU~Zi#|PKS<_k9t%eeSAM$cqx43(7ZqX zia$dMJ9kcfFcJhp~9B6sBD!E1be@hhqAGX(r e-O4#;`?BNHB*0cB3;y2#jjrZRjZ!u1u>S{Y=4C|y literal 0 HcmV?d00001 diff --git a/assets/favicon/logo_light_pink.png b/assets/favicon/logo_light_pink.png new file mode 100644 index 0000000000000000000000000000000000000000..9be5c5c921332bc772ef16e755e0c4e02e2a07c8 GIT binary patch literal 21351 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 V*B;wp)d3un?xq1!zg*WL^8Y-sz-0gc literal 0 HcmV?d00001 diff --git a/assets/favicon/logo_white.png b/assets/favicon/logo_white.png new file mode 100644 index 0000000000000000000000000000000000000000..b14eb7981be2276376b97749dbf944e5f71f9bb0 GIT binary patch literal 19806 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

X{@}sQZT{-fSt)5u$L^4PYg3AD(&_rR<;nfJu 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

*oBWMls)2rtQeY{tQ-Tk%?R;kfC(YY~Gpsf{7Jp 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/tt_rounds_neue_demibold-webfont.woff b/assets/fonts/tt_rounds_neue_demibold-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..1ca1eb758fffbaa27198e708dff0f0a64d7ea8f8 GIT binary patch literal 32096 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 Y8(4ZbGBLPpW=&yZaB%?uADk^d03psl5&!@I literal 0 HcmV?d00001 diff --git a/assets/fonts/tt_rounds_neue_demibold-webfont.woff2 b/assets/fonts/tt_rounds_neue_demibold-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..8a343c77e9da9b4807a96631d7a6f1a55c1cef64 GIT binary patch literal 25176 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∾?rN%` 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 Xxmo>_1EcKtL>K8_jGG(AF9HAnZP$L` literal 0 HcmV?d00001 diff --git a/assets/images/7170doc.png b/assets/images/7170doc.png new file mode 100644 index 0000000000000000000000000000000000000000..0635177d69c34e4e6a0314355dbe591590b90bcd GIT binary patch literal 121442 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 y>U@+WoY7Gw_@YjVu|{&2bw@#LmJyft6A3n1A{a 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%0A@vW=*$_AQy_6IG8;x1?EVl(KUemlMXwyV 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 IM6N<$f(jP3KmY&$ literal 0 HcmV?d00001 diff --git a/assets/javascripts/bundle.fe8b6f2b.min.js b/assets/javascripts/bundle.fe8b6f2b.min.js new file mode 100644 index 0000000..cf778d4 --- /dev/null +++ b/assets/javascripts/bundle.fe8b6f2b.min.js @@ -0,0 +1,29 @@ +"use strict";(()=>{var Fi=Object.create;var gr=Object.defineProperty;var ji=Object.getOwnPropertyDescriptor;var Wi=Object.getOwnPropertyNames,Dt=Object.getOwnPropertySymbols,Ui=Object.getPrototypeOf,xr=Object.prototype.hasOwnProperty,no=Object.prototype.propertyIsEnumerable;var oo=(e,t,r)=>t in e?gr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,R=(e,t)=>{for(var r in t||(t={}))xr.call(t,r)&&oo(e,r,t[r]);if(Dt)for(var r of Dt(t))no.call(t,r)&&oo(e,r,t[r]);return e};var io=(e,t)=>{var r={};for(var o in e)xr.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(e!=null&&Dt)for(var o of Dt(e))t.indexOf(o)<0&&no.call(e,o)&&(r[o]=e[o]);return r};var yr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Di=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Wi(t))!xr.call(e,n)&&n!==r&&gr(e,n,{get:()=>t[n],enumerable:!(o=ji(t,n))||o.enumerable});return e};var Vt=(e,t,r)=>(r=e!=null?Fi(Ui(e)):{},Di(t||!e||!e.__esModule?gr(r,"default",{value:e,enumerable:!0}):r,e));var ao=(e,t,r)=>new Promise((o,n)=>{var i=p=>{try{s(r.next(p))}catch(c){n(c)}},a=p=>{try{s(r.throw(p))}catch(c){n(c)}},s=p=>p.done?o(p.value):Promise.resolve(p.value).then(i,a);s((r=r.apply(e,t)).next())});var co=yr((Er,so)=>{(function(e,t){typeof Er=="object"&&typeof so!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(Er,function(){"use strict";function e(r){var o=!0,n=!1,i=null,a={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function s(H){return!!(H&&H!==document&&H.nodeName!=="HTML"&&H.nodeName!=="BODY"&&"classList"in H&&"contains"in H.classList)}function p(H){var mt=H.type,ze=H.tagName;return!!(ze==="INPUT"&&a[mt]&&!H.readOnly||ze==="TEXTAREA"&&!H.readOnly||H.isContentEditable)}function c(H){H.classList.contains("focus-visible")||(H.classList.add("focus-visible"),H.setAttribute("data-focus-visible-added",""))}function l(H){H.hasAttribute("data-focus-visible-added")&&(H.classList.remove("focus-visible"),H.removeAttribute("data-focus-visible-added"))}function f(H){H.metaKey||H.altKey||H.ctrlKey||(s(r.activeElement)&&c(r.activeElement),o=!0)}function u(H){o=!1}function h(H){s(H.target)&&(o||p(H.target))&&c(H.target)}function w(H){s(H.target)&&(H.target.classList.contains("focus-visible")||H.target.hasAttribute("data-focus-visible-added"))&&(n=!0,window.clearTimeout(i),i=window.setTimeout(function(){n=!1},100),l(H.target))}function A(H){document.visibilityState==="hidden"&&(n&&(o=!0),te())}function te(){document.addEventListener("mousemove",J),document.addEventListener("mousedown",J),document.addEventListener("mouseup",J),document.addEventListener("pointermove",J),document.addEventListener("pointerdown",J),document.addEventListener("pointerup",J),document.addEventListener("touchmove",J),document.addEventListener("touchstart",J),document.addEventListener("touchend",J)}function ie(){document.removeEventListener("mousemove",J),document.removeEventListener("mousedown",J),document.removeEventListener("mouseup",J),document.removeEventListener("pointermove",J),document.removeEventListener("pointerdown",J),document.removeEventListener("pointerup",J),document.removeEventListener("touchmove",J),document.removeEventListener("touchstart",J),document.removeEventListener("touchend",J)}function J(H){H.target.nodeName&&H.target.nodeName.toLowerCase()==="html"||(o=!1,ie())}document.addEventListener("keydown",f,!0),document.addEventListener("mousedown",u,!0),document.addEventListener("pointerdown",u,!0),document.addEventListener("touchstart",u,!0),document.addEventListener("visibilitychange",A,!0),te(),r.addEventListener("focus",h,!0),r.addEventListener("blur",w,!0),r.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&r.host?r.host.setAttribute("data-js-focus-visible",""):r.nodeType===Node.DOCUMENT_NODE&&(document.documentElement.classList.add("js-focus-visible"),document.documentElement.setAttribute("data-js-focus-visible",""))}if(typeof window!="undefined"&&typeof document!="undefined"){window.applyFocusVisiblePolyfill=e;var t;try{t=new CustomEvent("focus-visible-polyfill-ready")}catch(r){t=document.createEvent("CustomEvent"),t.initCustomEvent("focus-visible-polyfill-ready",!1,!1,{})}window.dispatchEvent(t)}typeof document!="undefined"&&e(document)})});var Yr=yr((Rt,Kr)=>{/*! + * clipboard.js v2.0.11 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */(function(t,r){typeof Rt=="object"&&typeof Kr=="object"?Kr.exports=r():typeof define=="function"&&define.amd?define([],r):typeof Rt=="object"?Rt.ClipboardJS=r():t.ClipboardJS=r()})(Rt,function(){return function(){var e={686:function(o,n,i){"use strict";i.d(n,{default:function(){return Ii}});var a=i(279),s=i.n(a),p=i(370),c=i.n(p),l=i(817),f=i.n(l);function u(V){try{return document.execCommand(V)}catch(_){return!1}}var h=function(_){var M=f()(_);return u("cut"),M},w=h;function A(V){var _=document.documentElement.getAttribute("dir")==="rtl",M=document.createElement("textarea");M.style.fontSize="12pt",M.style.border="0",M.style.padding="0",M.style.margin="0",M.style.position="absolute",M.style[_?"right":"left"]="-9999px";var j=window.pageYOffset||document.documentElement.scrollTop;return M.style.top="".concat(j,"px"),M.setAttribute("readonly",""),M.value=V,M}var te=function(_,M){var j=A(_);M.container.appendChild(j);var D=f()(j);return u("copy"),j.remove(),D},ie=function(_){var M=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},j="";return typeof _=="string"?j=te(_,M):_ instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(_==null?void 0:_.type)?j=te(_.value,M):(j=f()(_),u("copy")),j},J=ie;function H(V){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?H=function(M){return typeof M}:H=function(M){return M&&typeof Symbol=="function"&&M.constructor===Symbol&&M!==Symbol.prototype?"symbol":typeof M},H(V)}var mt=function(){var _=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},M=_.action,j=M===void 0?"copy":M,D=_.container,Y=_.target,ke=_.text;if(j!=="copy"&&j!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(Y!==void 0)if(Y&&H(Y)==="object"&&Y.nodeType===1){if(j==="copy"&&Y.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(j==="cut"&&(Y.hasAttribute("readonly")||Y.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if(ke)return J(ke,{container:D});if(Y)return j==="cut"?w(Y):J(Y,{container:D})},ze=mt;function Ie(V){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Ie=function(M){return typeof M}:Ie=function(M){return M&&typeof Symbol=="function"&&M.constructor===Symbol&&M!==Symbol.prototype?"symbol":typeof M},Ie(V)}function _i(V,_){if(!(V instanceof _))throw new TypeError("Cannot call a class as a function")}function ro(V,_){for(var M=0;M<_.length;M++){var j=_[M];j.enumerable=j.enumerable||!1,j.configurable=!0,"value"in j&&(j.writable=!0),Object.defineProperty(V,j.key,j)}}function Ai(V,_,M){return _&&ro(V.prototype,_),M&&ro(V,M),V}function Ci(V,_){if(typeof _!="function"&&_!==null)throw new TypeError("Super expression must either be null or a function");V.prototype=Object.create(_&&_.prototype,{constructor:{value:V,writable:!0,configurable:!0}}),_&&br(V,_)}function br(V,_){return br=Object.setPrototypeOf||function(j,D){return j.__proto__=D,j},br(V,_)}function Hi(V){var _=Pi();return function(){var j=Wt(V),D;if(_){var Y=Wt(this).constructor;D=Reflect.construct(j,arguments,Y)}else D=j.apply(this,arguments);return ki(this,D)}}function ki(V,_){return _&&(Ie(_)==="object"||typeof _=="function")?_:$i(V)}function $i(V){if(V===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return V}function Pi(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(V){return!1}}function Wt(V){return Wt=Object.setPrototypeOf?Object.getPrototypeOf:function(M){return M.__proto__||Object.getPrototypeOf(M)},Wt(V)}function vr(V,_){var M="data-clipboard-".concat(V);if(_.hasAttribute(M))return _.getAttribute(M)}var Ri=function(V){Ci(M,V);var _=Hi(M);function M(j,D){var Y;return _i(this,M),Y=_.call(this),Y.resolveOptions(D),Y.listenClick(j),Y}return Ai(M,[{key:"resolveOptions",value:function(){var D=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof D.action=="function"?D.action:this.defaultAction,this.target=typeof D.target=="function"?D.target:this.defaultTarget,this.text=typeof D.text=="function"?D.text:this.defaultText,this.container=Ie(D.container)==="object"?D.container:document.body}},{key:"listenClick",value:function(D){var Y=this;this.listener=c()(D,"click",function(ke){return Y.onClick(ke)})}},{key:"onClick",value:function(D){var Y=D.delegateTarget||D.currentTarget,ke=this.action(Y)||"copy",Ut=ze({action:ke,container:this.container,target:this.target(Y),text:this.text(Y)});this.emit(Ut?"success":"error",{action:ke,text:Ut,trigger:Y,clearSelection:function(){Y&&Y.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(D){return vr("action",D)}},{key:"defaultTarget",value:function(D){var Y=vr("target",D);if(Y)return document.querySelector(Y)}},{key:"defaultText",value:function(D){return vr("text",D)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(D){var Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return J(D,Y)}},{key:"cut",value:function(D){return w(D)}},{key:"isSupported",value:function(){var D=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],Y=typeof D=="string"?[D]:D,ke=!!document.queryCommandSupported;return Y.forEach(function(Ut){ke=ke&&!!document.queryCommandSupported(Ut)}),ke}}]),M}(s()),Ii=Ri},828:function(o){var n=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}function a(s,p){for(;s&&s.nodeType!==n;){if(typeof s.matches=="function"&&s.matches(p))return s;s=s.parentNode}}o.exports=a},438:function(o,n,i){var a=i(828);function s(l,f,u,h,w){var A=c.apply(this,arguments);return l.addEventListener(u,A,w),{destroy:function(){l.removeEventListener(u,A,w)}}}function p(l,f,u,h,w){return typeof l.addEventListener=="function"?s.apply(null,arguments):typeof u=="function"?s.bind(null,document).apply(null,arguments):(typeof l=="string"&&(l=document.querySelectorAll(l)),Array.prototype.map.call(l,function(A){return s(A,f,u,h,w)}))}function c(l,f,u,h){return function(w){w.delegateTarget=a(w.target,f),w.delegateTarget&&h.call(l,w)}}o.exports=p},879:function(o,n){n.node=function(i){return i!==void 0&&i instanceof HTMLElement&&i.nodeType===1},n.nodeList=function(i){var a=Object.prototype.toString.call(i);return i!==void 0&&(a==="[object NodeList]"||a==="[object HTMLCollection]")&&"length"in i&&(i.length===0||n.node(i[0]))},n.string=function(i){return typeof i=="string"||i instanceof String},n.fn=function(i){var a=Object.prototype.toString.call(i);return a==="[object Function]"}},370:function(o,n,i){var a=i(879),s=i(438);function p(u,h,w){if(!u&&!h&&!w)throw new Error("Missing required arguments");if(!a.string(h))throw new TypeError("Second argument must be a String");if(!a.fn(w))throw new TypeError("Third argument must be a Function");if(a.node(u))return c(u,h,w);if(a.nodeList(u))return l(u,h,w);if(a.string(u))return f(u,h,w);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function c(u,h,w){return u.addEventListener(h,w),{destroy:function(){u.removeEventListener(h,w)}}}function l(u,h,w){return Array.prototype.forEach.call(u,function(A){A.addEventListener(h,w)}),{destroy:function(){Array.prototype.forEach.call(u,function(A){A.removeEventListener(h,w)})}}}function f(u,h,w){return s(document.body,u,h,w)}o.exports=p},817:function(o){function n(i){var a;if(i.nodeName==="SELECT")i.focus(),a=i.value;else if(i.nodeName==="INPUT"||i.nodeName==="TEXTAREA"){var s=i.hasAttribute("readonly");s||i.setAttribute("readonly",""),i.select(),i.setSelectionRange(0,i.value.length),s||i.removeAttribute("readonly"),a=i.value}else{i.hasAttribute("contenteditable")&&i.focus();var p=window.getSelection(),c=document.createRange();c.selectNodeContents(i),p.removeAllRanges(),p.addRange(c),a=p.toString()}return a}o.exports=n},279:function(o){function n(){}n.prototype={on:function(i,a,s){var p=this.e||(this.e={});return(p[i]||(p[i]=[])).push({fn:a,ctx:s}),this},once:function(i,a,s){var p=this;function c(){p.off(i,c),a.apply(s,arguments)}return c._=a,this.on(i,c,s)},emit:function(i){var a=[].slice.call(arguments,1),s=((this.e||(this.e={}))[i]||[]).slice(),p=0,c=s.length;for(p;p{"use strict";/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var ts=/["'&<>]/;ei.exports=rs;function rs(e){var t=""+e,r=ts.exec(t);if(!r)return t;var o,n="",i=0,a=0;for(i=r.index;i0&&i[i.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!i||c[1]>i[0]&&c[1]=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function N(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var o=r.call(e),n,i=[],a;try{for(;(t===void 0||t-- >0)&&!(n=o.next()).done;)i.push(n.value)}catch(s){a={error:s}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(a)throw a.error}}return i}function q(e,t,r){if(r||arguments.length===2)for(var o=0,n=t.length,i;o1||s(u,h)})})}function s(u,h){try{p(o[u](h))}catch(w){f(i[0][3],w)}}function p(u){u.value instanceof nt?Promise.resolve(u.value.v).then(c,l):f(i[0][2],u)}function c(u){s("next",u)}function l(u){s("throw",u)}function f(u,h){u(h),i.shift(),i.length&&s(i[0][0],i[0][1])}}function mo(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof de=="function"?de(e):e[Symbol.iterator](),r={},o("next"),o("throw"),o("return"),r[Symbol.asyncIterator]=function(){return this},r);function o(i){r[i]=e[i]&&function(a){return new Promise(function(s,p){a=e[i](a),n(s,p,a.done,a.value)})}}function n(i,a,s,p){Promise.resolve(p).then(function(c){i({value:c,done:s})},a)}}function k(e){return typeof e=="function"}function ft(e){var t=function(o){Error.call(o),o.stack=new Error().stack},r=e(t);return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}var zt=ft(function(e){return function(r){e(this),this.message=r?r.length+` errors occurred during unsubscription: +`+r.map(function(o,n){return n+1+") "+o.toString()}).join(` + `):"",this.name="UnsubscriptionError",this.errors=r}});function qe(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var Fe=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,r,o,n,i;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var s=de(a),p=s.next();!p.done;p=s.next()){var c=p.value;c.remove(this)}}catch(A){t={error:A}}finally{try{p&&!p.done&&(r=s.return)&&r.call(s)}finally{if(t)throw t.error}}else a.remove(this);var l=this.initialTeardown;if(k(l))try{l()}catch(A){i=A instanceof zt?A.errors:[A]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var u=de(f),h=u.next();!h.done;h=u.next()){var w=h.value;try{fo(w)}catch(A){i=i!=null?i:[],A instanceof zt?i=q(q([],N(i)),N(A.errors)):i.push(A)}}}catch(A){o={error:A}}finally{try{h&&!h.done&&(n=u.return)&&n.call(u)}finally{if(o)throw o.error}}}if(i)throw new zt(i)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)fo(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(r=this._finalizers)!==null&&r!==void 0?r:[]).push(t)}},e.prototype._hasParent=function(t){var r=this._parentage;return r===t||Array.isArray(r)&&r.includes(t)},e.prototype._addParent=function(t){var r=this._parentage;this._parentage=Array.isArray(r)?(r.push(t),r):r?[r,t]:t},e.prototype._removeParent=function(t){var r=this._parentage;r===t?this._parentage=null:Array.isArray(r)&&qe(r,t)},e.prototype.remove=function(t){var r=this._finalizers;r&&qe(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();var Tr=Fe.EMPTY;function qt(e){return e instanceof Fe||e&&"closed"in e&&k(e.remove)&&k(e.add)&&k(e.unsubscribe)}function fo(e){k(e)?e():e.unsubscribe()}var $e={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var ut={setTimeout:function(e,t){for(var r=[],o=2;o0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var o=this,n=this,i=n.hasError,a=n.isStopped,s=n.observers;return i||a?Tr:(this.currentObservers=null,s.push(r),new Fe(function(){o.currentObservers=null,qe(s,r)}))},t.prototype._checkFinalizedStatuses=function(r){var o=this,n=o.hasError,i=o.thrownError,a=o.isStopped;n?r.error(i):a&&r.complete()},t.prototype.asObservable=function(){var r=new F;return r.source=this,r},t.create=function(r,o){return new Eo(r,o)},t}(F);var Eo=function(e){re(t,e);function t(r,o){var n=e.call(this)||this;return n.destination=r,n.source=o,n}return t.prototype.next=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.next)===null||n===void 0||n.call(o,r)},t.prototype.error=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.error)===null||n===void 0||n.call(o,r)},t.prototype.complete=function(){var r,o;(o=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||o===void 0||o.call(r)},t.prototype._subscribe=function(r){var o,n;return(n=(o=this.source)===null||o===void 0?void 0:o.subscribe(r))!==null&&n!==void 0?n:Tr},t}(g);var _r=function(e){re(t,e);function t(r){var o=e.call(this)||this;return o._value=r,o}return Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(r){var o=e.prototype._subscribe.call(this,r);return!o.closed&&r.next(this._value),o},t.prototype.getValue=function(){var r=this,o=r.hasError,n=r.thrownError,i=r._value;if(o)throw n;return this._throwIfClosed(),i},t.prototype.next=function(r){e.prototype.next.call(this,this._value=r)},t}(g);var Lt={now:function(){return(Lt.delegate||Date).now()},delegate:void 0};var _t=function(e){re(t,e);function t(r,o,n){r===void 0&&(r=1/0),o===void 0&&(o=1/0),n===void 0&&(n=Lt);var i=e.call(this)||this;return i._bufferSize=r,i._windowTime=o,i._timestampProvider=n,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=o===1/0,i._bufferSize=Math.max(1,r),i._windowTime=Math.max(1,o),i}return t.prototype.next=function(r){var o=this,n=o.isStopped,i=o._buffer,a=o._infiniteTimeWindow,s=o._timestampProvider,p=o._windowTime;n||(i.push(r),!a&&i.push(s.now()+p)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var o=this._innerSubscribe(r),n=this,i=n._infiniteTimeWindow,a=n._buffer,s=a.slice(),p=0;p0?e.prototype.schedule.call(this,r,o):(this.delay=o,this.state=r,this.scheduler.flush(this),this)},t.prototype.execute=function(r,o){return o>0||this.closed?e.prototype.execute.call(this,r,o):this._execute(r,o)},t.prototype.requestAsyncId=function(r,o,n){return n===void 0&&(n=0),n!=null&&n>0||n==null&&this.delay>0?e.prototype.requestAsyncId.call(this,r,o,n):(r.flush(this),0)},t}(vt);var So=function(e){re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(gt);var Hr=new So(To);var Oo=function(e){re(t,e);function t(r,o){var n=e.call(this,r,o)||this;return n.scheduler=r,n.work=o,n}return t.prototype.requestAsyncId=function(r,o,n){return n===void 0&&(n=0),n!==null&&n>0?e.prototype.requestAsyncId.call(this,r,o,n):(r.actions.push(this),r._scheduled||(r._scheduled=bt.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,o,n){var i;if(n===void 0&&(n=0),n!=null?n>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,o,n);var a=r.actions;o!=null&&((i=a[a.length-1])===null||i===void 0?void 0:i.id)!==o&&(bt.cancelAnimationFrame(o),r._scheduled=void 0)},t}(vt);var Mo=function(e){re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var o=this._scheduled;this._scheduled=void 0;var n=this.actions,i;r=r||n.shift();do if(i=r.execute(r.state,r.delay))break;while((r=n[0])&&r.id===o&&n.shift());if(this._active=!1,i){for(;(r=n[0])&&r.id===o&&n.shift();)r.unsubscribe();throw i}},t}(gt);var me=new Mo(Oo);var O=new F(function(e){return e.complete()});function Yt(e){return e&&k(e.schedule)}function kr(e){return e[e.length-1]}function Xe(e){return k(kr(e))?e.pop():void 0}function He(e){return Yt(kr(e))?e.pop():void 0}function Bt(e,t){return typeof kr(e)=="number"?e.pop():t}var xt=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function Gt(e){return k(e==null?void 0:e.then)}function Jt(e){return k(e[ht])}function Xt(e){return Symbol.asyncIterator&&k(e==null?void 0:e[Symbol.asyncIterator])}function Zt(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function Gi(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var er=Gi();function tr(e){return k(e==null?void 0:e[er])}function rr(e){return lo(this,arguments,function(){var r,o,n,i;return Nt(this,function(a){switch(a.label){case 0:r=e.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,nt(r.read())];case 3:return o=a.sent(),n=o.value,i=o.done,i?[4,nt(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,nt(n)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}function or(e){return k(e==null?void 0:e.getReader)}function W(e){if(e instanceof F)return e;if(e!=null){if(Jt(e))return Ji(e);if(xt(e))return Xi(e);if(Gt(e))return Zi(e);if(Xt(e))return Lo(e);if(tr(e))return ea(e);if(or(e))return ta(e)}throw Zt(e)}function Ji(e){return new F(function(t){var r=e[ht]();if(k(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function Xi(e){return new F(function(t){for(var r=0;r=2;return function(o){return o.pipe(e?b(function(n,i){return e(n,i,o)}):le,Te(1),r?Be(t):zo(function(){return new ir}))}}function Fr(e){return e<=0?function(){return O}:y(function(t,r){var o=[];t.subscribe(T(r,function(n){o.push(n),e=2,!0))}function pe(e){e===void 0&&(e={});var t=e.connector,r=t===void 0?function(){return new g}:t,o=e.resetOnError,n=o===void 0?!0:o,i=e.resetOnComplete,a=i===void 0?!0:i,s=e.resetOnRefCountZero,p=s===void 0?!0:s;return function(c){var l,f,u,h=0,w=!1,A=!1,te=function(){f==null||f.unsubscribe(),f=void 0},ie=function(){te(),l=u=void 0,w=A=!1},J=function(){var H=l;ie(),H==null||H.unsubscribe()};return y(function(H,mt){h++,!A&&!w&&te();var ze=u=u!=null?u:r();mt.add(function(){h--,h===0&&!A&&!w&&(f=Wr(J,p))}),ze.subscribe(mt),!l&&h>0&&(l=new at({next:function(Ie){return ze.next(Ie)},error:function(Ie){A=!0,te(),f=Wr(ie,n,Ie),ze.error(Ie)},complete:function(){w=!0,te(),f=Wr(ie,a),ze.complete()}}),W(H).subscribe(l))})(c)}}function Wr(e,t){for(var r=[],o=2;oe.next(document)),e}function $(e,t=document){return Array.from(t.querySelectorAll(e))}function P(e,t=document){let r=fe(e,t);if(typeof r=="undefined")throw new ReferenceError(`Missing element: expected "${e}" to be present`);return r}function fe(e,t=document){return t.querySelector(e)||void 0}function Re(){var e,t,r,o;return(o=(r=(t=(e=document.activeElement)==null?void 0:e.shadowRoot)==null?void 0:t.activeElement)!=null?r:document.activeElement)!=null?o:void 0}var xa=S(d(document.body,"focusin"),d(document.body,"focusout")).pipe(_e(1),Q(void 0),m(()=>Re()||document.body),G(1));function et(e){return xa.pipe(m(t=>e.contains(t)),K())}function kt(e,t){return C(()=>S(d(e,"mouseenter").pipe(m(()=>!0)),d(e,"mouseleave").pipe(m(()=>!1))).pipe(t?Ht(r=>Me(+!r*t)):le,Q(e.matches(":hover"))))}function Bo(e,t){if(typeof t=="string"||typeof t=="number")e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(let r of t)Bo(e,r)}function x(e,t,...r){let o=document.createElement(e);if(t)for(let n of Object.keys(t))typeof t[n]!="undefined"&&(typeof t[n]!="boolean"?o.setAttribute(n,t[n]):o.setAttribute(n,""));for(let n of r)Bo(o,n);return o}function sr(e){if(e>999){let t=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(t)}k`}else return e.toString()}function wt(e){let t=x("script",{src:e});return C(()=>(document.head.appendChild(t),S(d(t,"load"),d(t,"error").pipe(v(()=>$r(()=>new ReferenceError(`Invalid script: ${e}`))))).pipe(m(()=>{}),L(()=>document.head.removeChild(t)),Te(1))))}var Go=new g,ya=C(()=>typeof ResizeObserver=="undefined"?wt("https://unpkg.com/resize-observer-polyfill"):I(void 0)).pipe(m(()=>new ResizeObserver(e=>e.forEach(t=>Go.next(t)))),v(e=>S(Ke,I(e)).pipe(L(()=>e.disconnect()))),G(1));function ce(e){return{width:e.offsetWidth,height:e.offsetHeight}}function ge(e){let t=e;for(;t.clientWidth===0&&t.parentElement;)t=t.parentElement;return ya.pipe(E(r=>r.observe(t)),v(r=>Go.pipe(b(o=>o.target===t),L(()=>r.unobserve(t)))),m(()=>ce(e)),Q(ce(e)))}function Tt(e){return{width:e.scrollWidth,height:e.scrollHeight}}function cr(e){let t=e.parentElement;for(;t&&(e.scrollWidth<=t.scrollWidth&&e.scrollHeight<=t.scrollHeight);)t=(e=t).parentElement;return t?e:void 0}function Jo(e){let t=[],r=e.parentElement;for(;r;)(e.clientWidth>r.clientWidth||e.clientHeight>r.clientHeight)&&t.push(r),r=(e=r).parentElement;return t.length===0&&t.push(document.documentElement),t}function Ue(e){return{x:e.offsetLeft,y:e.offsetTop}}function Xo(e){let t=e.getBoundingClientRect();return{x:t.x+window.scrollX,y:t.y+window.scrollY}}function Zo(e){return S(d(window,"load"),d(window,"resize")).pipe(Le(0,me),m(()=>Ue(e)),Q(Ue(e)))}function pr(e){return{x:e.scrollLeft,y:e.scrollTop}}function De(e){return S(d(e,"scroll"),d(window,"scroll"),d(window,"resize")).pipe(Le(0,me),m(()=>pr(e)),Q(pr(e)))}var en=new g,Ea=C(()=>I(new IntersectionObserver(e=>{for(let t of e)en.next(t)},{threshold:0}))).pipe(v(e=>S(Ke,I(e)).pipe(L(()=>e.disconnect()))),G(1));function tt(e){return Ea.pipe(E(t=>t.observe(e)),v(t=>en.pipe(b(({target:r})=>r===e),L(()=>t.unobserve(e)),m(({isIntersecting:r})=>r))))}function tn(e,t=16){return De(e).pipe(m(({y:r})=>{let o=ce(e),n=Tt(e);return r>=n.height-o.height-t}),K())}var lr={drawer:P("[data-md-toggle=drawer]"),search:P("[data-md-toggle=search]")};function rn(e){return lr[e].checked}function Je(e,t){lr[e].checked!==t&&lr[e].click()}function Ve(e){let t=lr[e];return d(t,"change").pipe(m(()=>t.checked),Q(t.checked))}function wa(e,t){switch(e.constructor){case HTMLInputElement:return e.type==="radio"?/^Arrow/.test(t):!0;case HTMLSelectElement:case HTMLTextAreaElement:return!0;default:return e.isContentEditable}}function Ta(){return S(d(window,"compositionstart").pipe(m(()=>!0)),d(window,"compositionend").pipe(m(()=>!1))).pipe(Q(!1))}function on(){let e=d(window,"keydown").pipe(b(t=>!(t.metaKey||t.ctrlKey)),m(t=>({mode:rn("search")?"search":"global",type:t.key,claim(){t.preventDefault(),t.stopPropagation()}})),b(({mode:t,type:r})=>{if(t==="global"){let o=Re();if(typeof o!="undefined")return!wa(o,r)}return!0}),pe());return Ta().pipe(v(t=>t?O:e))}function xe(){return new URL(location.href)}function pt(e,t=!1){if(B("navigation.instant")&&!t){let r=x("a",{href:e.href});document.body.appendChild(r),r.click(),r.remove()}else location.href=e.href}function nn(){return new g}function an(){return location.hash.slice(1)}function sn(e){let t=x("a",{href:e});t.addEventListener("click",r=>r.stopPropagation()),t.click()}function Sa(e){return S(d(window,"hashchange"),e).pipe(m(an),Q(an()),b(t=>t.length>0),G(1))}function cn(e){return Sa(e).pipe(m(t=>fe(`[id="${t}"]`)),b(t=>typeof t!="undefined"))}function $t(e){let t=matchMedia(e);return ar(r=>t.addListener(()=>r(t.matches))).pipe(Q(t.matches))}function pn(){let e=matchMedia("print");return S(d(window,"beforeprint").pipe(m(()=>!0)),d(window,"afterprint").pipe(m(()=>!1))).pipe(Q(e.matches))}function Nr(e,t){return e.pipe(v(r=>r?t():O))}function zr(e,t){return new F(r=>{let o=new XMLHttpRequest;return o.open("GET",`${e}`),o.responseType="blob",o.addEventListener("load",()=>{o.status>=200&&o.status<300?(r.next(o.response),r.complete()):r.error(new Error(o.statusText))}),o.addEventListener("error",()=>{r.error(new Error("Network error"))}),o.addEventListener("abort",()=>{r.complete()}),typeof(t==null?void 0:t.progress$)!="undefined"&&(o.addEventListener("progress",n=>{var i;if(n.lengthComputable)t.progress$.next(n.loaded/n.total*100);else{let a=(i=o.getResponseHeader("Content-Length"))!=null?i:0;t.progress$.next(n.loaded/+a*100)}}),t.progress$.next(5)),o.send(),()=>o.abort()})}function Ne(e,t){return zr(e,t).pipe(v(r=>r.text()),m(r=>JSON.parse(r)),G(1))}function ln(e,t){let r=new DOMParser;return zr(e,t).pipe(v(o=>o.text()),m(o=>r.parseFromString(o,"text/html")),G(1))}function mn(e,t){let r=new DOMParser;return zr(e,t).pipe(v(o=>o.text()),m(o=>r.parseFromString(o,"text/xml")),G(1))}function fn(){return{x:Math.max(0,scrollX),y:Math.max(0,scrollY)}}function un(){return S(d(window,"scroll",{passive:!0}),d(window,"resize",{passive:!0})).pipe(m(fn),Q(fn()))}function dn(){return{width:innerWidth,height:innerHeight}}function hn(){return d(window,"resize",{passive:!0}).pipe(m(dn),Q(dn()))}function bn(){return z([un(),hn()]).pipe(m(([e,t])=>({offset:e,size:t})),G(1))}function mr(e,{viewport$:t,header$:r}){let o=t.pipe(Z("size")),n=z([o,r]).pipe(m(()=>Ue(e)));return z([r,t,n]).pipe(m(([{height:i},{offset:a,size:s},{x:p,y:c}])=>({offset:{x:a.x-p,y:a.y-c+i},size:s})))}function Oa(e){return d(e,"message",t=>t.data)}function Ma(e){let t=new g;return t.subscribe(r=>e.postMessage(r)),t}function vn(e,t=new Worker(e)){let r=Oa(t),o=Ma(t),n=new g;n.subscribe(o);let i=o.pipe(X(),ne(!0));return n.pipe(X(),Pe(r.pipe(U(i))),pe())}var La=P("#__config"),St=JSON.parse(La.textContent);St.base=`${new URL(St.base,xe())}`;function ye(){return St}function B(e){return St.features.includes(e)}function Ee(e,t){return typeof t!="undefined"?St.translations[e].replace("#",t.toString()):St.translations[e]}function Se(e,t=document){return P(`[data-md-component=${e}]`,t)}function ae(e,t=document){return $(`[data-md-component=${e}]`,t)}function _a(e){let t=P(".md-typeset > :first-child",e);return d(t,"click",{once:!0}).pipe(m(()=>P(".md-typeset",e)),m(r=>({hash:__md_hash(r.innerHTML)})))}function gn(e){if(!B("announce.dismiss")||!e.childElementCount)return O;if(!e.hidden){let t=P(".md-typeset",e);__md_hash(t.innerHTML)===__md_get("__announce")&&(e.hidden=!0)}return C(()=>{let t=new g;return t.subscribe(({hash:r})=>{e.hidden=!0,__md_set("__announce",r)}),_a(e).pipe(E(r=>t.next(r)),L(()=>t.complete()),m(r=>R({ref:e},r)))})}function Aa(e,{target$:t}){return t.pipe(m(r=>({hidden:r!==e})))}function xn(e,t){let r=new g;return r.subscribe(({hidden:o})=>{e.hidden=o}),Aa(e,t).pipe(E(o=>r.next(o)),L(()=>r.complete()),m(o=>R({ref:e},o)))}function Pt(e,t){return t==="inline"?x("div",{class:"md-tooltip md-tooltip--inline",id:e,role:"tooltip"},x("div",{class:"md-tooltip__inner md-typeset"})):x("div",{class:"md-tooltip",id:e,role:"tooltip"},x("div",{class:"md-tooltip__inner md-typeset"}))}function yn(...e){return x("div",{class:"md-tooltip2",role:"tooltip"},x("div",{class:"md-tooltip2__inner md-typeset"},e))}function En(e,t){if(t=t?`${t}_annotation_${e}`:void 0,t){let r=t?`#${t}`:void 0;return x("aside",{class:"md-annotation",tabIndex:0},Pt(t),x("a",{href:r,class:"md-annotation__index",tabIndex:-1},x("span",{"data-md-annotation-id":e})))}else return x("aside",{class:"md-annotation",tabIndex:0},Pt(t),x("span",{class:"md-annotation__index",tabIndex:-1},x("span",{"data-md-annotation-id":e})))}function wn(e){return x("button",{class:"md-clipboard md-icon",title:Ee("clipboard.copy"),"data-clipboard-target":`#${e} > code`})}function qr(e,t){let r=t&2,o=t&1,n=Object.keys(e.terms).filter(p=>!e.terms[p]).reduce((p,c)=>[...p,x("del",null,c)," "],[]).slice(0,-1),i=ye(),a=new URL(e.location,i.base);B("search.highlight")&&a.searchParams.set("h",Object.entries(e.terms).filter(([,p])=>p).reduce((p,[c])=>`${p} ${c}`.trim(),""));let{tags:s}=ye();return x("a",{href:`${a}`,class:"md-search-result__link",tabIndex:-1},x("article",{class:"md-search-result__article md-typeset","data-md-score":e.score.toFixed(2)},r>0&&x("div",{class:"md-search-result__icon md-icon"}),r>0&&x("h1",null,e.title),r<=0&&x("h2",null,e.title),o>0&&e.text.length>0&&e.text,e.tags&&e.tags.map(p=>{let c=s?p in s?`md-tag-icon md-tag--${s[p]}`:"md-tag-icon":"";return x("span",{class:`md-tag ${c}`},p)}),o>0&&n.length>0&&x("p",{class:"md-search-result__terms"},Ee("search.result.term.missing"),": ",...n)))}function Tn(e){let t=e[0].score,r=[...e],o=ye(),n=r.findIndex(l=>!`${new URL(l.location,o.base)}`.includes("#")),[i]=r.splice(n,1),a=r.findIndex(l=>l.scoreqr(l,1)),...p.length?[x("details",{class:"md-search-result__more"},x("summary",{tabIndex:-1},x("div",null,p.length>0&&p.length===1?Ee("search.result.more.one"):Ee("search.result.more.other",p.length))),...p.map(l=>qr(l,1)))]:[]];return x("li",{class:"md-search-result__item"},c)}function Sn(e){return x("ul",{class:"md-source__facts"},Object.entries(e).map(([t,r])=>x("li",{class:`md-source__fact md-source__fact--${t}`},typeof r=="number"?sr(r):r)))}function Qr(e){let t=`tabbed-control tabbed-control--${e}`;return x("div",{class:t,hidden:!0},x("button",{class:"tabbed-button",tabIndex:-1,"aria-hidden":"true"}))}function On(e){return x("div",{class:"md-typeset__scrollwrap"},x("div",{class:"md-typeset__table"},e))}function Ca(e){var o;let t=ye(),r=new URL(`../${e.version}/`,t.base);return x("li",{class:"md-version__item"},x("a",{href:`${r}`,class:"md-version__link"},e.title,((o=t.version)==null?void 0:o.alias)&&e.aliases.length>0&&x("span",{class:"md-version__alias"},e.aliases[0])))}function Mn(e,t){var o;let r=ye();return e=e.filter(n=>{var i;return!((i=n.properties)!=null&&i.hidden)}),x("div",{class:"md-version"},x("button",{class:"md-version__current","aria-label":Ee("select.version")},t.title,((o=r.version)==null?void 0:o.alias)&&t.aliases.length>0&&x("span",{class:"md-version__alias"},t.aliases[0])),x("ul",{class:"md-version__list"},e.map(Ca)))}var Ha=0;function ka(e){let t=z([et(e),kt(e)]).pipe(m(([o,n])=>o||n),K()),r=C(()=>Jo(e)).pipe(oe(De),ct(1),m(()=>Xo(e)));return t.pipe(Ae(o=>o),v(()=>z([t,r])),m(([o,n])=>({active:o,offset:n})),pe())}function $a(e,t){let{content$:r,viewport$:o}=t,n=`__tooltip2_${Ha++}`;return C(()=>{let i=new g,a=new _r(!1);i.pipe(X(),ne(!1)).subscribe(a);let s=a.pipe(Ht(c=>Me(+!c*250,Hr)),K(),v(c=>c?r:O),E(c=>c.id=n),pe());z([i.pipe(m(({active:c})=>c)),s.pipe(v(c=>kt(c,250)),Q(!1))]).pipe(m(c=>c.some(l=>l))).subscribe(a);let p=a.pipe(b(c=>c),ee(s,o),m(([c,l,{size:f}])=>{let u=e.getBoundingClientRect(),h=u.width/2;if(l.role==="tooltip")return{x:h,y:8+u.height};if(u.y>=f.height/2){let{height:w}=ce(l);return{x:h,y:-16-w}}else return{x:h,y:16+u.height}}));return z([s,i,p]).subscribe(([c,{offset:l},f])=>{c.style.setProperty("--md-tooltip-host-x",`${l.x}px`),c.style.setProperty("--md-tooltip-host-y",`${l.y}px`),c.style.setProperty("--md-tooltip-x",`${f.x}px`),c.style.setProperty("--md-tooltip-y",`${f.y}px`),c.classList.toggle("md-tooltip2--top",f.y<0),c.classList.toggle("md-tooltip2--bottom",f.y>=0)}),a.pipe(b(c=>c),ee(s,(c,l)=>l),b(c=>c.role==="tooltip")).subscribe(c=>{let l=ce(P(":scope > *",c));c.style.setProperty("--md-tooltip-width",`${l.width}px`),c.style.setProperty("--md-tooltip-tail","0px")}),a.pipe(K(),be(me),ee(s)).subscribe(([c,l])=>{l.classList.toggle("md-tooltip2--active",c)}),z([a.pipe(b(c=>c)),s]).subscribe(([c,l])=>{l.role==="dialog"?(e.setAttribute("aria-controls",n),e.setAttribute("aria-haspopup","dialog")):e.setAttribute("aria-describedby",n)}),a.pipe(b(c=>!c)).subscribe(()=>{e.removeAttribute("aria-controls"),e.removeAttribute("aria-describedby"),e.removeAttribute("aria-haspopup")}),ka(e).pipe(E(c=>i.next(c)),L(()=>i.complete()),m(c=>R({ref:e},c)))})}function lt(e,{viewport$:t},r=document.body){return $a(e,{content$:new F(o=>{let n=e.title,i=yn(n);return o.next(i),e.removeAttribute("title"),r.append(i),()=>{i.remove(),e.setAttribute("title",n)}}),viewport$:t})}function Pa(e,t){let r=C(()=>z([Zo(e),De(t)])).pipe(m(([{x:o,y:n},i])=>{let{width:a,height:s}=ce(e);return{x:o-i.x+a/2,y:n-i.y+s/2}}));return et(e).pipe(v(o=>r.pipe(m(n=>({active:o,offset:n})),Te(+!o||1/0))))}function Ln(e,t,{target$:r}){let[o,n]=Array.from(e.children);return C(()=>{let i=new g,a=i.pipe(X(),ne(!0));return i.subscribe({next({offset:s}){e.style.setProperty("--md-tooltip-x",`${s.x}px`),e.style.setProperty("--md-tooltip-y",`${s.y}px`)},complete(){e.style.removeProperty("--md-tooltip-x"),e.style.removeProperty("--md-tooltip-y")}}),tt(e).pipe(U(a)).subscribe(s=>{e.toggleAttribute("data-md-visible",s)}),S(i.pipe(b(({active:s})=>s)),i.pipe(_e(250),b(({active:s})=>!s))).subscribe({next({active:s}){s?e.prepend(o):o.remove()},complete(){e.prepend(o)}}),i.pipe(Le(16,me)).subscribe(({active:s})=>{o.classList.toggle("md-tooltip--active",s)}),i.pipe(ct(125,me),b(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:s})=>s)).subscribe({next(s){s?e.style.setProperty("--md-tooltip-0",`${-s}px`):e.style.removeProperty("--md-tooltip-0")},complete(){e.style.removeProperty("--md-tooltip-0")}}),d(n,"click").pipe(U(a),b(s=>!(s.metaKey||s.ctrlKey))).subscribe(s=>{s.stopPropagation(),s.preventDefault()}),d(n,"mousedown").pipe(U(a),ee(i)).subscribe(([s,{active:p}])=>{var c;if(s.button!==0||s.metaKey||s.ctrlKey)s.preventDefault();else if(p){s.preventDefault();let l=e.parentElement.closest(".md-annotation");l instanceof HTMLElement?l.focus():(c=Re())==null||c.blur()}}),r.pipe(U(a),b(s=>s===o),Ge(125)).subscribe(()=>e.focus()),Pa(e,t).pipe(E(s=>i.next(s)),L(()=>i.complete()),m(s=>R({ref:e},s)))})}function Ra(e){return e.tagName==="CODE"?$(".c, .c1, .cm",e):[e]}function Ia(e){let t=[];for(let r of Ra(e)){let o=[],n=document.createNodeIterator(r,NodeFilter.SHOW_TEXT);for(let i=n.nextNode();i;i=n.nextNode())o.push(i);for(let i of o){let a;for(;a=/(\(\d+\))(!)?/.exec(i.textContent);){let[,s,p]=a;if(typeof p=="undefined"){let c=i.splitText(a.index);i=c.splitText(s.length),t.push(c)}else{i.textContent=s,t.push(i);break}}}}return t}function _n(e,t){t.append(...Array.from(e.childNodes))}function fr(e,t,{target$:r,print$:o}){let n=t.closest("[id]"),i=n==null?void 0:n.id,a=new Map;for(let s of Ia(t)){let[,p]=s.textContent.match(/\((\d+)\)/);fe(`:scope > li:nth-child(${p})`,e)&&(a.set(p,En(p,i)),s.replaceWith(a.get(p)))}return a.size===0?O:C(()=>{let s=new g,p=s.pipe(X(),ne(!0)),c=[];for(let[l,f]of a)c.push([P(".md-typeset",f),P(`:scope > li:nth-child(${l})`,e)]);return o.pipe(U(p)).subscribe(l=>{e.hidden=!l,e.classList.toggle("md-annotation-list",l);for(let[f,u]of c)l?_n(f,u):_n(u,f)}),S(...[...a].map(([,l])=>Ln(l,t,{target$:r}))).pipe(L(()=>s.complete()),pe())})}function An(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return An(t)}}function Cn(e,t){return C(()=>{let r=An(e);return typeof r!="undefined"?fr(r,e,t):O})}var Hn=Vt(Yr());var Fa=0;function kn(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return kn(t)}}function ja(e){return ge(e).pipe(m(({width:t})=>({scrollable:Tt(e).width>t})),Z("scrollable"))}function $n(e,t){let{matches:r}=matchMedia("(hover)"),o=C(()=>{let n=new g,i=n.pipe(Fr(1));n.subscribe(({scrollable:c})=>{c&&r?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")});let a=[];if(Hn.default.isSupported()&&(e.closest(".copy")||B("content.code.copy")&&!e.closest(".no-copy"))){let c=e.closest("pre");c.id=`__code_${Fa++}`;let l=wn(c.id);c.insertBefore(l,e),B("content.tooltips")&&a.push(lt(l,{viewport$}))}let s=e.closest(".highlight");if(s instanceof HTMLElement){let c=kn(s);if(typeof c!="undefined"&&(s.classList.contains("annotate")||B("content.code.annotate"))){let l=fr(c,e,t);a.push(ge(s).pipe(U(i),m(({width:f,height:u})=>f&&u),K(),v(f=>f?l:O)))}}return $(":scope > span[id]",e).length&&e.classList.add("md-code__content"),ja(e).pipe(E(c=>n.next(c)),L(()=>n.complete()),m(c=>R({ref:e},c)),Pe(...a))});return B("content.lazy")?tt(e).pipe(b(n=>n),Te(1),v(()=>o)):o}function Wa(e,{target$:t,print$:r}){let o=!0;return S(t.pipe(m(n=>n.closest("details:not([open])")),b(n=>e===n),m(()=>({action:"open",reveal:!0}))),r.pipe(b(n=>n||!o),E(()=>o=e.open),m(n=>({action:n?"open":"close"}))))}function Pn(e,t){return C(()=>{let r=new g;return r.subscribe(({action:o,reveal:n})=>{e.toggleAttribute("open",o==="open"),n&&e.scrollIntoView()}),Wa(e,t).pipe(E(o=>r.next(o)),L(()=>r.complete()),m(o=>R({ref:e},o)))})}var Rn=".node circle,.node ellipse,.node path,.node polygon,.node rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}marker{fill:var(--md-mermaid-edge-color)!important}.edgeLabel .label rect{fill:#0000}.label{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.label foreignObject{line-height:normal;overflow:visible}.label div .edgeLabel{color:var(--md-mermaid-label-fg-color)}.edgeLabel,.edgeLabel rect,.label div .edgeLabel{background-color:var(--md-mermaid-label-bg-color)}.edgeLabel,.edgeLabel rect{fill:var(--md-mermaid-label-bg-color);color:var(--md-mermaid-edge-color)}.edgePath .path,.flowchart-link{stroke:var(--md-mermaid-edge-color);stroke-width:.05rem}.edgePath .arrowheadPath{fill:var(--md-mermaid-edge-color);stroke:none}.cluster rect{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}.cluster span{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}g #flowchart-circleEnd,g #flowchart-circleStart,g #flowchart-crossEnd,g #flowchart-crossStart,g #flowchart-pointEnd,g #flowchart-pointStart{stroke:none}g.classGroup line,g.classGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.classGroup text{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.classLabel .box{fill:var(--md-mermaid-label-bg-color);background-color:var(--md-mermaid-label-bg-color);opacity:1}.classLabel .label{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.node .divider{stroke:var(--md-mermaid-node-fg-color)}.relation{stroke:var(--md-mermaid-edge-color)}.cardinality{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.cardinality text{fill:inherit!important}defs #classDiagram-compositionEnd,defs #classDiagram-compositionStart,defs #classDiagram-dependencyEnd,defs #classDiagram-dependencyStart,defs #classDiagram-extensionEnd,defs #classDiagram-extensionStart{fill:var(--md-mermaid-edge-color)!important;stroke:var(--md-mermaid-edge-color)!important}defs #classDiagram-aggregationEnd,defs #classDiagram-aggregationStart{fill:var(--md-mermaid-label-bg-color)!important;stroke:var(--md-mermaid-edge-color)!important}g.stateGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.stateGroup .state-title{fill:var(--md-mermaid-label-fg-color)!important;font-family:var(--md-mermaid-font-family)}g.stateGroup .composit{fill:var(--md-mermaid-label-bg-color)}.nodeLabel,.nodeLabel p{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}a .nodeLabel{text-decoration:underline}.node circle.state-end,.node circle.state-start,.start-state{fill:var(--md-mermaid-edge-color);stroke:none}.end-state-inner,.end-state-outer{fill:var(--md-mermaid-edge-color)}.end-state-inner,.node circle.state-end{stroke:var(--md-mermaid-label-bg-color)}.transition{stroke:var(--md-mermaid-edge-color)}[id^=state-fork] rect,[id^=state-join] rect{fill:var(--md-mermaid-edge-color)!important;stroke:none!important}.statediagram-cluster.statediagram-cluster .inner{fill:var(--md-default-bg-color)}.statediagram-cluster rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.statediagram-state rect.divider{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}defs #statediagram-barbEnd{stroke:var(--md-mermaid-edge-color)}.attributeBoxEven,.attributeBoxOdd{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.entityBox{fill:var(--md-mermaid-label-bg-color);stroke:var(--md-mermaid-node-fg-color)}.entityLabel{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.relationshipLabelBox{fill:var(--md-mermaid-label-bg-color);fill-opacity:1;background-color:var(--md-mermaid-label-bg-color);opacity:1}.relationshipLabel{fill:var(--md-mermaid-label-fg-color)}.relationshipLine{stroke:var(--md-mermaid-edge-color)}defs #ONE_OR_MORE_END *,defs #ONE_OR_MORE_START *,defs #ONLY_ONE_END *,defs #ONLY_ONE_START *,defs #ZERO_OR_MORE_END *,defs #ZERO_OR_MORE_START *,defs #ZERO_OR_ONE_END *,defs #ZERO_OR_ONE_START *{stroke:var(--md-mermaid-edge-color)!important}defs #ZERO_OR_MORE_END circle,defs #ZERO_OR_MORE_START circle{fill:var(--md-mermaid-label-bg-color)}.actor{fill:var(--md-mermaid-sequence-actor-bg-color);stroke:var(--md-mermaid-sequence-actor-border-color)}text.actor>tspan{fill:var(--md-mermaid-sequence-actor-fg-color);font-family:var(--md-mermaid-font-family)}line{stroke:var(--md-mermaid-sequence-actor-line-color)}.actor-man circle,.actor-man line{fill:var(--md-mermaid-sequence-actorman-bg-color);stroke:var(--md-mermaid-sequence-actorman-line-color)}.messageLine0,.messageLine1{stroke:var(--md-mermaid-sequence-message-line-color)}.note{fill:var(--md-mermaid-sequence-note-bg-color);stroke:var(--md-mermaid-sequence-note-border-color)}.loopText,.loopText>tspan,.messageText,.noteText>tspan{stroke:none;font-family:var(--md-mermaid-font-family)!important}.messageText{fill:var(--md-mermaid-sequence-message-fg-color)}.loopText,.loopText>tspan{fill:var(--md-mermaid-sequence-loop-fg-color)}.noteText>tspan{fill:var(--md-mermaid-sequence-note-fg-color)}#arrowhead path{fill:var(--md-mermaid-sequence-message-line-color);stroke:none}.loopLine{fill:var(--md-mermaid-sequence-loop-bg-color);stroke:var(--md-mermaid-sequence-loop-border-color)}.labelBox{fill:var(--md-mermaid-sequence-label-bg-color);stroke:none}.labelText,.labelText>span{fill:var(--md-mermaid-sequence-label-fg-color);font-family:var(--md-mermaid-font-family)}.sequenceNumber{fill:var(--md-mermaid-sequence-number-fg-color)}rect.rect{fill:var(--md-mermaid-sequence-box-bg-color);stroke:none}rect.rect+text.text{fill:var(--md-mermaid-sequence-box-fg-color)}defs #sequencenumber{fill:var(--md-mermaid-sequence-number-bg-color)!important}";var Br,Da=0;function Va(){return typeof mermaid=="undefined"||mermaid instanceof Element?wt("https://unpkg.com/mermaid@10/dist/mermaid.min.js"):I(void 0)}function In(e){return e.classList.remove("mermaid"),Br||(Br=Va().pipe(E(()=>mermaid.initialize({startOnLoad:!1,themeCSS:Rn,sequence:{actorFontSize:"16px",messageFontSize:"16px",noteFontSize:"16px"}})),m(()=>{}),G(1))),Br.subscribe(()=>ao(this,null,function*(){e.classList.add("mermaid");let t=`__mermaid_${Da++}`,r=x("div",{class:"mermaid"}),o=e.textContent,{svg:n,fn:i}=yield mermaid.render(t,o),a=r.attachShadow({mode:"closed"});a.innerHTML=n,e.replaceWith(r),i==null||i(a)})),Br.pipe(m(()=>({ref:e})))}var Fn=x("table");function jn(e){return e.replaceWith(Fn),Fn.replaceWith(On(e)),I({ref:e})}function Na(e){let t=e.find(r=>r.checked)||e[0];return S(...e.map(r=>d(r,"change").pipe(m(()=>P(`label[for="${r.id}"]`))))).pipe(Q(P(`label[for="${t.id}"]`)),m(r=>({active:r})))}function Wn(e,{viewport$:t,target$:r}){let o=P(".tabbed-labels",e),n=$(":scope > input",e),i=Qr("prev");e.append(i);let a=Qr("next");return e.append(a),C(()=>{let s=new g,p=s.pipe(X(),ne(!0));z([s,ge(e),tt(e)]).pipe(U(p),Le(1,me)).subscribe({next([{active:c},l]){let f=Ue(c),{width:u}=ce(c);e.style.setProperty("--md-indicator-x",`${f.x}px`),e.style.setProperty("--md-indicator-width",`${u}px`);let h=pr(o);(f.xh.x+l.width)&&o.scrollTo({left:Math.max(0,f.x-16),behavior:"smooth"})},complete(){e.style.removeProperty("--md-indicator-x"),e.style.removeProperty("--md-indicator-width")}}),z([De(o),ge(o)]).pipe(U(p)).subscribe(([c,l])=>{let f=Tt(o);i.hidden=c.x<16,a.hidden=c.x>f.width-l.width-16}),S(d(i,"click").pipe(m(()=>-1)),d(a,"click").pipe(m(()=>1))).pipe(U(p)).subscribe(c=>{let{width:l}=ce(o);o.scrollBy({left:l*c,behavior:"smooth"})}),r.pipe(U(p),b(c=>n.includes(c))).subscribe(c=>c.click()),o.classList.add("tabbed-labels--linked");for(let c of n){let l=P(`label[for="${c.id}"]`);l.replaceChildren(x("a",{href:`#${l.htmlFor}`,tabIndex:-1},...Array.from(l.childNodes))),d(l.firstElementChild,"click").pipe(U(p),b(f=>!(f.metaKey||f.ctrlKey)),E(f=>{f.preventDefault(),f.stopPropagation()})).subscribe(()=>{history.replaceState({},"",`#${l.htmlFor}`),l.click()})}return B("content.tabs.link")&&s.pipe(Ce(1),ee(t)).subscribe(([{active:c},{offset:l}])=>{let f=c.innerText.trim();if(c.hasAttribute("data-md-switching"))c.removeAttribute("data-md-switching");else{let u=e.offsetTop-l.y;for(let w of $("[data-tabs]"))for(let A of $(":scope > input",w)){let te=P(`label[for="${A.id}"]`);if(te!==c&&te.innerText.trim()===f){te.setAttribute("data-md-switching",""),A.click();break}}window.scrollTo({top:e.offsetTop-u});let h=__md_get("__tabs")||[];__md_set("__tabs",[...new Set([f,...h])])}}),s.pipe(U(p)).subscribe(()=>{for(let c of $("audio, video",e))c.pause()}),Na(n).pipe(E(c=>s.next(c)),L(()=>s.complete()),m(c=>R({ref:e},c)))}).pipe(Qe(se))}function Un(e,{viewport$:t,target$:r,print$:o}){return S(...$(".annotate:not(.highlight)",e).map(n=>Cn(n,{target$:r,print$:o})),...$("pre:not(.mermaid) > code",e).map(n=>$n(n,{target$:r,print$:o})),...$("pre.mermaid",e).map(n=>In(n)),...$("table:not([class])",e).map(n=>jn(n)),...$("details",e).map(n=>Pn(n,{target$:r,print$:o})),...$("[data-tabs]",e).map(n=>Wn(n,{viewport$:t,target$:r})),...$("[title]",e).filter(()=>B("content.tooltips")).map(n=>lt(n,{viewport$:t})))}function za(e,{alert$:t}){return t.pipe(v(r=>S(I(!0),I(!1).pipe(Ge(2e3))).pipe(m(o=>({message:r,active:o})))))}function Dn(e,t){let r=P(".md-typeset",e);return C(()=>{let o=new g;return o.subscribe(({message:n,active:i})=>{e.classList.toggle("md-dialog--active",i),r.textContent=n}),za(e,t).pipe(E(n=>o.next(n)),L(()=>o.complete()),m(n=>R({ref:e},n)))})}var qa=0;function Qa(e,t){document.body.append(e);let{width:r}=ce(e);e.style.setProperty("--md-tooltip-width",`${r}px`),e.remove();let o=cr(t),n=typeof o!="undefined"?De(o):I({x:0,y:0}),i=S(et(t),kt(t)).pipe(K());return z([i,n]).pipe(m(([a,s])=>{let{x:p,y:c}=Ue(t),l=ce(t),f=t.closest("table");return f&&t.parentElement&&(p+=f.offsetLeft+t.parentElement.offsetLeft,c+=f.offsetTop+t.parentElement.offsetTop),{active:a,offset:{x:p-s.x+l.width/2-r/2,y:c-s.y+l.height+8}}}))}function Vn(e){let t=e.title;if(!t.length)return O;let r=`__tooltip_${qa++}`,o=Pt(r,"inline"),n=P(".md-typeset",o);return n.innerHTML=t,C(()=>{let i=new g;return i.subscribe({next({offset:a}){o.style.setProperty("--md-tooltip-x",`${a.x}px`),o.style.setProperty("--md-tooltip-y",`${a.y}px`)},complete(){o.style.removeProperty("--md-tooltip-x"),o.style.removeProperty("--md-tooltip-y")}}),S(i.pipe(b(({active:a})=>a)),i.pipe(_e(250),b(({active:a})=>!a))).subscribe({next({active:a}){a?(e.insertAdjacentElement("afterend",o),e.setAttribute("aria-describedby",r),e.removeAttribute("title")):(o.remove(),e.removeAttribute("aria-describedby"),e.setAttribute("title",t))},complete(){o.remove(),e.removeAttribute("aria-describedby"),e.setAttribute("title",t)}}),i.pipe(Le(16,me)).subscribe(({active:a})=>{o.classList.toggle("md-tooltip--active",a)}),i.pipe(ct(125,me),b(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:a})=>a)).subscribe({next(a){a?o.style.setProperty("--md-tooltip-0",`${-a}px`):o.style.removeProperty("--md-tooltip-0")},complete(){o.style.removeProperty("--md-tooltip-0")}}),Qa(o,e).pipe(E(a=>i.next(a)),L(()=>i.complete()),m(a=>R({ref:e},a)))}).pipe(Qe(se))}function Ka({viewport$:e}){if(!B("header.autohide"))return I(!1);let t=e.pipe(m(({offset:{y:n}})=>n),Ye(2,1),m(([n,i])=>[nMath.abs(i-n.y)>100),m(([,[n]])=>n),K()),o=Ve("search");return z([e,o]).pipe(m(([{offset:n},i])=>n.y>400&&!i),K(),v(n=>n?r:I(!1)),Q(!1))}function Nn(e,t){return C(()=>z([ge(e),Ka(t)])).pipe(m(([{height:r},o])=>({height:r,hidden:o})),K((r,o)=>r.height===o.height&&r.hidden===o.hidden),G(1))}function zn(e,{header$:t,main$:r}){return C(()=>{let o=new g,n=o.pipe(X(),ne(!0));o.pipe(Z("active"),We(t)).subscribe(([{active:a},{hidden:s}])=>{e.classList.toggle("md-header--shadow",a&&!s),e.hidden=s});let i=ue($("[title]",e)).pipe(b(()=>B("content.tooltips")),oe(a=>Vn(a)));return r.subscribe(o),t.pipe(U(n),m(a=>R({ref:e},a)),Pe(i.pipe(U(n))))})}function Ya(e,{viewport$:t,header$:r}){return mr(e,{viewport$:t,header$:r}).pipe(m(({offset:{y:o}})=>{let{height:n}=ce(e);return{active:o>=n}}),Z("active"))}function qn(e,t){return C(()=>{let r=new g;r.subscribe({next({active:n}){e.classList.toggle("md-header__title--active",n)},complete(){e.classList.remove("md-header__title--active")}});let o=fe(".md-content h1");return typeof o=="undefined"?O:Ya(o,t).pipe(E(n=>r.next(n)),L(()=>r.complete()),m(n=>R({ref:e},n)))})}function Qn(e,{viewport$:t,header$:r}){let o=r.pipe(m(({height:i})=>i),K()),n=o.pipe(v(()=>ge(e).pipe(m(({height:i})=>({top:e.offsetTop,bottom:e.offsetTop+i})),Z("bottom"))));return z([o,n,t]).pipe(m(([i,{top:a,bottom:s},{offset:{y:p},size:{height:c}}])=>(c=Math.max(0,c-Math.max(0,a-p,i)-Math.max(0,c+p-s)),{offset:a-i,height:c,active:a-i<=p})),K((i,a)=>i.offset===a.offset&&i.height===a.height&&i.active===a.active))}function Ba(e){let t=__md_get("__palette")||{index:e.findIndex(o=>matchMedia(o.getAttribute("data-md-color-media")).matches)},r=Math.max(0,Math.min(t.index,e.length-1));return I(...e).pipe(oe(o=>d(o,"change").pipe(m(()=>o))),Q(e[r]),m(o=>({index:e.indexOf(o),color:{media:o.getAttribute("data-md-color-media"),scheme:o.getAttribute("data-md-color-scheme"),primary:o.getAttribute("data-md-color-primary"),accent:o.getAttribute("data-md-color-accent")}})),G(1))}function Kn(e){let t=$("input",e),r=x("meta",{name:"theme-color"});document.head.appendChild(r);let o=x("meta",{name:"color-scheme"});document.head.appendChild(o);let n=$t("(prefers-color-scheme: light)");return C(()=>{let i=new g;return i.subscribe(a=>{if(document.body.setAttribute("data-md-color-switching",""),a.color.media==="(prefers-color-scheme)"){let s=matchMedia("(prefers-color-scheme: light)"),p=document.querySelector(s.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");a.color.scheme=p.getAttribute("data-md-color-scheme"),a.color.primary=p.getAttribute("data-md-color-primary"),a.color.accent=p.getAttribute("data-md-color-accent")}for(let[s,p]of Object.entries(a.color))document.body.setAttribute(`data-md-color-${s}`,p);for(let s=0;sa.key==="Enter"),ee(i,(a,s)=>s)).subscribe(({index:a})=>{a=(a+1)%t.length,t[a].click(),t[a].focus()}),i.pipe(m(()=>{let a=Se("header"),s=window.getComputedStyle(a);return o.content=s.colorScheme,s.backgroundColor.match(/\d+/g).map(p=>(+p).toString(16).padStart(2,"0")).join("")})).subscribe(a=>r.content=`#${a}`),i.pipe(be(se)).subscribe(()=>{document.body.removeAttribute("data-md-color-switching")}),Ba(t).pipe(U(n.pipe(Ce(1))),st(),E(a=>i.next(a)),L(()=>i.complete()),m(a=>R({ref:e},a)))})}function Yn(e,{progress$:t}){return C(()=>{let r=new g;return r.subscribe(({value:o})=>{e.style.setProperty("--md-progress-value",`${o}`)}),t.pipe(E(o=>r.next({value:o})),L(()=>r.complete()),m(o=>({ref:e,value:o})))})}var Gr=Vt(Yr());function Ga(e){e.setAttribute("data-md-copying","");let t=e.closest("[data-copy]"),r=t?t.getAttribute("data-copy"):e.innerText;return e.removeAttribute("data-md-copying"),r.trimEnd()}function Bn({alert$:e}){Gr.default.isSupported()&&new F(t=>{new Gr.default("[data-clipboard-target], [data-clipboard-text]",{text:r=>r.getAttribute("data-clipboard-text")||Ga(P(r.getAttribute("data-clipboard-target")))}).on("success",r=>t.next(r))}).pipe(E(t=>{t.trigger.focus()}),m(()=>Ee("clipboard.copied"))).subscribe(e)}function Gn(e,t){return e.protocol=t.protocol,e.hostname=t.hostname,e}function Ja(e,t){let r=new Map;for(let o of $("url",e)){let n=P("loc",o),i=[Gn(new URL(n.textContent),t)];r.set(`${i[0]}`,i);for(let a of $("[rel=alternate]",o)){let s=a.getAttribute("href");s!=null&&i.push(Gn(new URL(s),t))}}return r}function ur(e){return mn(new URL("sitemap.xml",e)).pipe(m(t=>Ja(t,new URL(e))),ve(()=>I(new Map)))}function Xa(e,t){if(!(e.target instanceof Element))return O;let r=e.target.closest("a");if(r===null)return O;if(r.target||e.metaKey||e.ctrlKey)return O;let o=new URL(r.href);return o.search=o.hash="",t.has(`${o}`)?(e.preventDefault(),I(new URL(r.href))):O}function Jn(e){let t=new Map;for(let r of $(":scope > *",e.head))t.set(r.outerHTML,r);return t}function Xn(e){for(let t of $("[href], [src]",e))for(let r of["href","src"]){let o=t.getAttribute(r);if(o&&!/^(?:[a-z]+:)?\/\//i.test(o)){t[r]=t[r];break}}return I(e)}function Za(e){for(let o of["[data-md-component=announce]","[data-md-component=container]","[data-md-component=header-topic]","[data-md-component=outdated]","[data-md-component=logo]","[data-md-component=skip]",...B("navigation.tabs.sticky")?["[data-md-component=tabs]"]:[]]){let n=fe(o),i=fe(o,e);typeof n!="undefined"&&typeof i!="undefined"&&n.replaceWith(i)}let t=Jn(document);for(let[o,n]of Jn(e))t.has(o)?t.delete(o):document.head.appendChild(n);for(let o of t.values()){let n=o.getAttribute("name");n!=="theme-color"&&n!=="color-scheme"&&o.remove()}let r=Se("container");return je($("script",r)).pipe(v(o=>{let n=e.createElement("script");if(o.src){for(let i of o.getAttributeNames())n.setAttribute(i,o.getAttribute(i));return o.replaceWith(n),new F(i=>{n.onload=()=>i.complete()})}else return n.textContent=o.textContent,o.replaceWith(n),O}),X(),ne(document))}function Zn({location$:e,viewport$:t,progress$:r}){let o=ye();if(location.protocol==="file:")return O;let n=ur(o.base);I(document).subscribe(Xn);let i=d(document.body,"click").pipe(We(n),v(([p,c])=>Xa(p,c)),pe()),a=d(window,"popstate").pipe(m(xe),pe());i.pipe(ee(t)).subscribe(([p,{offset:c}])=>{history.replaceState(c,""),history.pushState(null,"",p)}),S(i,a).subscribe(e);let s=e.pipe(Z("pathname"),v(p=>ln(p,{progress$:r}).pipe(ve(()=>(pt(p,!0),O)))),v(Xn),v(Za),pe());return S(s.pipe(ee(e,(p,c)=>c)),s.pipe(v(()=>e),Z("pathname"),v(()=>e),Z("hash")),e.pipe(K((p,c)=>p.pathname===c.pathname&&p.hash===c.hash),v(()=>i),E(()=>history.back()))).subscribe(p=>{var c,l;history.state!==null||!p.hash?window.scrollTo(0,(l=(c=history.state)==null?void 0:c.y)!=null?l:0):(history.scrollRestoration="auto",sn(p.hash),history.scrollRestoration="manual")}),e.subscribe(()=>{history.scrollRestoration="manual"}),d(window,"beforeunload").subscribe(()=>{history.scrollRestoration="auto"}),t.pipe(Z("offset"),_e(100)).subscribe(({offset:p})=>{history.replaceState(p,"")}),s}var ri=Vt(ti());function oi(e){let t=e.separator.split("|").map(n=>n.replace(/(\(\?[!=<][^)]+\))/g,"").length===0?"\uFFFD":n).join("|"),r=new RegExp(t,"img"),o=(n,i,a)=>`${i}${a}`;return n=>{n=n.replace(/[\s*+\-:~^]+/g," ").trim();let i=new RegExp(`(^|${e.separator}|)(${n.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(r,"|")})`,"img");return a=>(0,ri.default)(a).replace(i,o).replace(/<\/mark>(\s+)]*>/img,"$1")}}function It(e){return e.type===1}function dr(e){return e.type===3}function ni(e,t){let r=vn(e);return S(I(location.protocol!=="file:"),Ve("search")).pipe(Ae(o=>o),v(()=>t)).subscribe(({config:o,docs:n})=>r.next({type:0,data:{config:o,docs:n,options:{suggest:B("search.suggest")}}})),r}function ii({document$:e}){let t=ye(),r=Ne(new URL("../versions.json",t.base)).pipe(ve(()=>O)),o=r.pipe(m(n=>{let[,i]=t.base.match(/([^/]+)\/?$/);return n.find(({version:a,aliases:s})=>a===i||s.includes(i))||n[0]}));r.pipe(m(n=>new Map(n.map(i=>[`${new URL(`../${i.version}/`,t.base)}`,i]))),v(n=>d(document.body,"click").pipe(b(i=>!i.metaKey&&!i.ctrlKey),ee(o),v(([i,a])=>{if(i.target instanceof Element){let s=i.target.closest("a");if(s&&!s.target&&n.has(s.href)){let p=s.href;return!i.target.closest(".md-version")&&n.get(p)===a?O:(i.preventDefault(),I(p))}}return O}),v(i=>ur(new URL(i)).pipe(m(a=>{let p=xe().href.replace(t.base,i);return a.has(p.split("#")[0])?new URL(p):new URL(i)})))))).subscribe(n=>pt(n,!0)),z([r,o]).subscribe(([n,i])=>{P(".md-header__topic").appendChild(Mn(n,i))}),e.pipe(v(()=>o)).subscribe(n=>{var a;let i=__md_get("__outdated",sessionStorage);if(i===null){i=!0;let s=((a=t.version)==null?void 0:a.default)||"latest";Array.isArray(s)||(s=[s]);e:for(let p of s)for(let c of n.aliases.concat(n.version))if(new RegExp(p,"i").test(c)){i=!1;break e}__md_set("__outdated",i,sessionStorage)}if(i)for(let s of ae("outdated"))s.hidden=!1})}function ns(e,{worker$:t}){let{searchParams:r}=xe();r.has("q")&&(Je("search",!0),e.value=r.get("q"),e.focus(),Ve("search").pipe(Ae(i=>!i)).subscribe(()=>{let i=xe();i.searchParams.delete("q"),history.replaceState({},"",`${i}`)}));let o=et(e),n=S(t.pipe(Ae(It)),d(e,"keyup"),o).pipe(m(()=>e.value),K());return z([n,o]).pipe(m(([i,a])=>({value:i,focus:a})),G(1))}function ai(e,{worker$:t}){let r=new g,o=r.pipe(X(),ne(!0));z([t.pipe(Ae(It)),r],(i,a)=>a).pipe(Z("value")).subscribe(({value:i})=>t.next({type:2,data:i})),r.pipe(Z("focus")).subscribe(({focus:i})=>{i&&Je("search",i)}),d(e.form,"reset").pipe(U(o)).subscribe(()=>e.focus());let n=P("header [for=__search]");return d(n,"click").subscribe(()=>e.focus()),ns(e,{worker$:t}).pipe(E(i=>r.next(i)),L(()=>r.complete()),m(i=>R({ref:e},i)),G(1))}function si(e,{worker$:t,query$:r}){let o=new g,n=tn(e.parentElement).pipe(b(Boolean)),i=e.parentElement,a=P(":scope > :first-child",e),s=P(":scope > :last-child",e);Ve("search").subscribe(l=>s.setAttribute("role",l?"list":"presentation")),o.pipe(ee(r),Ur(t.pipe(Ae(It)))).subscribe(([{items:l},{value:f}])=>{switch(l.length){case 0:a.textContent=f.length?Ee("search.result.none"):Ee("search.result.placeholder");break;case 1:a.textContent=Ee("search.result.one");break;default:let u=sr(l.length);a.textContent=Ee("search.result.other",u)}});let p=o.pipe(E(()=>s.innerHTML=""),v(({items:l})=>S(I(...l.slice(0,10)),I(...l.slice(10)).pipe(Ye(4),Vr(n),v(([f])=>f)))),m(Tn),pe());return p.subscribe(l=>s.appendChild(l)),p.pipe(oe(l=>{let f=fe("details",l);return typeof f=="undefined"?O:d(f,"toggle").pipe(U(o),m(()=>f))})).subscribe(l=>{l.open===!1&&l.offsetTop<=i.scrollTop&&i.scrollTo({top:l.offsetTop})}),t.pipe(b(dr),m(({data:l})=>l)).pipe(E(l=>o.next(l)),L(()=>o.complete()),m(l=>R({ref:e},l)))}function is(e,{query$:t}){return t.pipe(m(({value:r})=>{let o=xe();return o.hash="",r=r.replace(/\s+/g,"+").replace(/&/g,"%26").replace(/=/g,"%3D"),o.search=`q=${r}`,{url:o}}))}function ci(e,t){let r=new g,o=r.pipe(X(),ne(!0));return r.subscribe(({url:n})=>{e.setAttribute("data-clipboard-text",e.href),e.href=`${n}`}),d(e,"click").pipe(U(o)).subscribe(n=>n.preventDefault()),is(e,t).pipe(E(n=>r.next(n)),L(()=>r.complete()),m(n=>R({ref:e},n)))}function pi(e,{worker$:t,keyboard$:r}){let o=new g,n=Se("search-query"),i=S(d(n,"keydown"),d(n,"focus")).pipe(be(se),m(()=>n.value),K());return o.pipe(We(i),m(([{suggest:s},p])=>{let c=p.split(/([\s-]+)/);if(s!=null&&s.length&&c[c.length-1]){let l=s[s.length-1];l.startsWith(c[c.length-1])&&(c[c.length-1]=l)}else c.length=0;return c})).subscribe(s=>e.innerHTML=s.join("").replace(/\s/g," ")),r.pipe(b(({mode:s})=>s==="search")).subscribe(s=>{switch(s.type){case"ArrowRight":e.innerText.length&&n.selectionStart===n.value.length&&(n.value=e.innerText);break}}),t.pipe(b(dr),m(({data:s})=>s)).pipe(E(s=>o.next(s)),L(()=>o.complete()),m(()=>({ref:e})))}function li(e,{index$:t,keyboard$:r}){let o=ye();try{let n=ni(o.search,t),i=Se("search-query",e),a=Se("search-result",e);d(e,"click").pipe(b(({target:p})=>p instanceof Element&&!!p.closest("a"))).subscribe(()=>Je("search",!1)),r.pipe(b(({mode:p})=>p==="search")).subscribe(p=>{let c=Re();switch(p.type){case"Enter":if(c===i){let l=new Map;for(let f of $(":first-child [href]",a)){let u=f.firstElementChild;l.set(f,parseFloat(u.getAttribute("data-md-score")))}if(l.size){let[[f]]=[...l].sort(([,u],[,h])=>h-u);f.click()}p.claim()}break;case"Escape":case"Tab":Je("search",!1),i.blur();break;case"ArrowUp":case"ArrowDown":if(typeof c=="undefined")i.focus();else{let l=[i,...$(":not(details) > [href], summary, details[open] [href]",a)],f=Math.max(0,(Math.max(0,l.indexOf(c))+l.length+(p.type==="ArrowUp"?-1:1))%l.length);l[f].focus()}p.claim();break;default:i!==Re()&&i.focus()}}),r.pipe(b(({mode:p})=>p==="global")).subscribe(p=>{switch(p.type){case"f":case"s":case"/":i.focus(),i.select(),p.claim();break}});let s=ai(i,{worker$:n});return S(s,si(a,{worker$:n,query$:s})).pipe(Pe(...ae("search-share",e).map(p=>ci(p,{query$:s})),...ae("search-suggest",e).map(p=>pi(p,{worker$:n,keyboard$:r}))))}catch(n){return e.hidden=!0,Ke}}function mi(e,{index$:t,location$:r}){return z([t,r.pipe(Q(xe()),b(o=>!!o.searchParams.get("h")))]).pipe(m(([o,n])=>oi(o.config)(n.searchParams.get("h"))),m(o=>{var a;let n=new Map,i=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(let s=i.nextNode();s;s=i.nextNode())if((a=s.parentElement)!=null&&a.offsetHeight){let p=s.textContent,c=o(p);c.length>p.length&&n.set(s,c)}for(let[s,p]of n){let{childNodes:c}=x("span",null,p);s.replaceWith(...Array.from(c))}return{ref:e,nodes:n}}))}function as(e,{viewport$:t,main$:r}){let o=e.closest(".md-grid"),n=o.offsetTop-o.parentElement.offsetTop;return z([r,t]).pipe(m(([{offset:i,height:a},{offset:{y:s}}])=>(a=a+Math.min(n,Math.max(0,s-i))-n,{height:a,locked:s>=i+n})),K((i,a)=>i.height===a.height&&i.locked===a.locked))}function Jr(e,o){var n=o,{header$:t}=n,r=io(n,["header$"]);let i=P(".md-sidebar__scrollwrap",e),{y:a}=Ue(i);return C(()=>{let s=new g,p=s.pipe(X(),ne(!0)),c=s.pipe(Le(0,me));return c.pipe(ee(t)).subscribe({next([{height:l},{height:f}]){i.style.height=`${l-2*a}px`,e.style.top=`${f}px`},complete(){i.style.height="",e.style.top=""}}),c.pipe(Ae()).subscribe(()=>{for(let l of $(".md-nav__link--active[href]",e)){if(!l.clientHeight)continue;let f=l.closest(".md-sidebar__scrollwrap");if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:h}=ce(f);f.scrollTo({top:u-h/2})}}}),ue($("label[tabindex]",e)).pipe(oe(l=>d(l,"click").pipe(be(se),m(()=>l),U(p)))).subscribe(l=>{let f=P(`[id="${l.htmlFor}"]`);P(`[aria-labelledby="${l.id}"]`).setAttribute("aria-expanded",`${f.checked}`)}),as(e,r).pipe(E(l=>s.next(l)),L(()=>s.complete()),m(l=>R({ref:e},l)))})}function fi(e,t){if(typeof t!="undefined"){let r=`https://api.github.com/repos/${e}/${t}`;return Ct(Ne(`${r}/releases/latest`).pipe(ve(()=>O),m(o=>({version:o.tag_name})),Be({})),Ne(r).pipe(ve(()=>O),m(o=>({stars:o.stargazers_count,forks:o.forks_count})),Be({}))).pipe(m(([o,n])=>R(R({},o),n)))}else{let r=`https://api.github.com/users/${e}`;return Ne(r).pipe(m(o=>({repositories:o.public_repos})),Be({}))}}function ui(e,t){let r=`https://${e}/api/v4/projects/${encodeURIComponent(t)}`;return Ne(r).pipe(ve(()=>O),m(({star_count:o,forks_count:n})=>({stars:o,forks:n})),Be({}))}function di(e){let t=e.match(/^.+github\.com\/([^/]+)\/?([^/]+)?/i);if(t){let[,r,o]=t;return fi(r,o)}if(t=e.match(/^.+?([^/]*gitlab[^/]+)\/(.+?)\/?$/i),t){let[,r,o]=t;return ui(r,o)}return O}var ss;function cs(e){return ss||(ss=C(()=>{let t=__md_get("__source",sessionStorage);if(t)return I(t);if(ae("consent").length){let o=__md_get("__consent");if(!(o&&o.github))return O}return di(e.href).pipe(E(o=>__md_set("__source",o,sessionStorage)))}).pipe(ve(()=>O),b(t=>Object.keys(t).length>0),m(t=>({facts:t})),G(1)))}function hi(e){let t=P(":scope > :last-child",e);return C(()=>{let r=new g;return r.subscribe(({facts:o})=>{t.appendChild(Sn(o)),t.classList.add("md-source__repository--active")}),cs(e).pipe(E(o=>r.next(o)),L(()=>r.complete()),m(o=>R({ref:e},o)))})}function ps(e,{viewport$:t,header$:r}){return ge(document.body).pipe(v(()=>mr(e,{header$:r,viewport$:t})),m(({offset:{y:o}})=>({hidden:o>=10})),Z("hidden"))}function bi(e,t){return C(()=>{let r=new g;return r.subscribe({next({hidden:o}){e.hidden=o},complete(){e.hidden=!1}}),(B("navigation.tabs.sticky")?I({hidden:!1}):ps(e,t)).pipe(E(o=>r.next(o)),L(()=>r.complete()),m(o=>R({ref:e},o)))})}function ls(e,{viewport$:t,header$:r}){let o=new Map,n=$(".md-nav__link",e);for(let s of n){let p=decodeURIComponent(s.hash.substring(1)),c=fe(`[id="${p}"]`);typeof c!="undefined"&&o.set(s,c)}let i=r.pipe(Z("height"),m(({height:s})=>{let p=Se("main"),c=P(":scope > :first-child",p);return s+.8*(c.offsetTop-p.offsetTop)}),pe());return ge(document.body).pipe(Z("height"),v(s=>C(()=>{let p=[];return I([...o].reduce((c,[l,f])=>{for(;p.length&&o.get(p[p.length-1]).tagName>=f.tagName;)p.pop();let u=f.offsetTop;for(;!u&&f.parentElement;)f=f.parentElement,u=f.offsetTop;let h=f.offsetParent;for(;h;h=h.offsetParent)u+=h.offsetTop;return c.set([...p=[...p,l]].reverse(),u)},new Map))}).pipe(m(p=>new Map([...p].sort(([,c],[,l])=>c-l))),We(i),v(([p,c])=>t.pipe(jr(([l,f],{offset:{y:u},size:h})=>{let w=u+h.height>=Math.floor(s.height);for(;f.length;){let[,A]=f[0];if(A-c=u&&!w)f=[l.pop(),...f];else break}return[l,f]},[[],[...p]]),K((l,f)=>l[0]===f[0]&&l[1]===f[1])))))).pipe(m(([s,p])=>({prev:s.map(([c])=>c),next:p.map(([c])=>c)})),Q({prev:[],next:[]}),Ye(2,1),m(([s,p])=>s.prev.length{let i=new g,a=i.pipe(X(),ne(!0));if(i.subscribe(({prev:s,next:p})=>{for(let[c]of p)c.classList.remove("md-nav__link--passed"),c.classList.remove("md-nav__link--active");for(let[c,[l]]of s.entries())l.classList.add("md-nav__link--passed"),l.classList.toggle("md-nav__link--active",c===s.length-1)}),B("toc.follow")){let s=S(t.pipe(_e(1),m(()=>{})),t.pipe(_e(250),m(()=>"smooth")));i.pipe(b(({prev:p})=>p.length>0),We(o.pipe(be(se))),ee(s)).subscribe(([[{prev:p}],c])=>{let[l]=p[p.length-1];if(l.offsetHeight){let f=cr(l);if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:h}=ce(f);f.scrollTo({top:u-h/2,behavior:c})}}})}return B("navigation.tracking")&&t.pipe(U(a),Z("offset"),_e(250),Ce(1),U(n.pipe(Ce(1))),st({delay:250}),ee(i)).subscribe(([,{prev:s}])=>{let p=xe(),c=s[s.length-1];if(c&&c.length){let[l]=c,{hash:f}=new URL(l.href);p.hash!==f&&(p.hash=f,history.replaceState({},"",`${p}`))}else p.hash="",history.replaceState({},"",`${p}`)}),ls(e,{viewport$:t,header$:r}).pipe(E(s=>i.next(s)),L(()=>i.complete()),m(s=>R({ref:e},s)))})}function ms(e,{viewport$:t,main$:r,target$:o}){let n=t.pipe(m(({offset:{y:a}})=>a),Ye(2,1),m(([a,s])=>a>s&&s>0),K()),i=r.pipe(m(({active:a})=>a));return z([i,n]).pipe(m(([a,s])=>!(a&&s)),K(),U(o.pipe(Ce(1))),ne(!0),st({delay:250}),m(a=>({hidden:a})))}function gi(e,{viewport$:t,header$:r,main$:o,target$:n}){let i=new g,a=i.pipe(X(),ne(!0));return i.subscribe({next({hidden:s}){e.hidden=s,s?(e.setAttribute("tabindex","-1"),e.blur()):e.removeAttribute("tabindex")},complete(){e.style.top="",e.hidden=!0,e.removeAttribute("tabindex")}}),r.pipe(U(a),Z("height")).subscribe(({height:s})=>{e.style.top=`${s+16}px`}),d(e,"click").subscribe(s=>{s.preventDefault(),window.scrollTo({top:0})}),ms(e,{viewport$:t,main$:o,target$:n}).pipe(E(s=>i.next(s)),L(()=>i.complete()),m(s=>R({ref:e},s)))}function xi({document$:e,viewport$:t}){e.pipe(v(()=>$(".md-ellipsis")),oe(r=>tt(r).pipe(U(e.pipe(Ce(1))),b(o=>o),m(()=>r),Te(1))),b(r=>r.offsetWidth{let o=r.innerText,n=r.closest("a")||r;return n.title=o,B("content.tooltips")?lt(n,{viewport$:t}).pipe(U(e.pipe(Ce(1))),L(()=>n.removeAttribute("title"))):O})).subscribe(),B("content.tooltips")&&e.pipe(v(()=>$(".md-status")),oe(r=>lt(r,{viewport$:t}))).subscribe()}function yi({document$:e,tablet$:t}){e.pipe(v(()=>$(".md-toggle--indeterminate")),E(r=>{r.indeterminate=!0,r.checked=!1}),oe(r=>d(r,"change").pipe(Dr(()=>r.classList.contains("md-toggle--indeterminate")),m(()=>r))),ee(t)).subscribe(([r,o])=>{r.classList.remove("md-toggle--indeterminate"),o&&(r.checked=!1)})}function fs(){return/(iPad|iPhone|iPod)/.test(navigator.userAgent)}function Ei({document$:e}){e.pipe(v(()=>$("[data-md-scrollfix]")),E(t=>t.removeAttribute("data-md-scrollfix")),b(fs),oe(t=>d(t,"touchstart").pipe(m(()=>t)))).subscribe(t=>{let r=t.scrollTop;r===0?t.scrollTop=1:r+t.offsetHeight===t.scrollHeight&&(t.scrollTop=r-1)})}function wi({viewport$:e,tablet$:t}){z([Ve("search"),t]).pipe(m(([r,o])=>r&&!o),v(r=>I(r).pipe(Ge(r?400:100))),ee(e)).subscribe(([r,{offset:{y:o}}])=>{if(r)document.body.setAttribute("data-md-scrolllock",""),document.body.style.top=`-${o}px`;else{let n=-1*parseInt(document.body.style.top,10);document.body.removeAttribute("data-md-scrolllock"),document.body.style.top="",n&&window.scrollTo(0,n)}})}Object.entries||(Object.entries=function(e){let t=[];for(let r of Object.keys(e))t.push([r,e[r]]);return t});Object.values||(Object.values=function(e){let t=[];for(let r of Object.keys(e))t.push(e[r]);return t});typeof Element!="undefined"&&(Element.prototype.scrollTo||(Element.prototype.scrollTo=function(e,t){typeof e=="object"?(this.scrollLeft=e.left,this.scrollTop=e.top):(this.scrollLeft=e,this.scrollTop=t)}),Element.prototype.replaceWith||(Element.prototype.replaceWith=function(...e){let t=this.parentNode;if(t){e.length===0&&t.removeChild(this);for(let r=e.length-1;r>=0;r--){let o=e[r];typeof o=="string"?o=document.createTextNode(o):o.parentNode&&o.parentNode.removeChild(o),r?t.insertBefore(this.previousSibling,o):t.replaceChild(o,this)}}}));function us(){return location.protocol==="file:"?wt(`${new URL("search/search_index.js",Xr.base)}`).pipe(m(()=>__index),G(1)):Ne(new URL("search/search_index.json",Xr.base))}document.documentElement.classList.remove("no-js");document.documentElement.classList.add("js");var ot=Yo(),jt=nn(),Ot=cn(jt),Zr=on(),Oe=bn(),hr=$t("(min-width: 960px)"),Si=$t("(min-width: 1220px)"),Oi=pn(),Xr=ye(),Mi=document.forms.namedItem("search")?us():Ke,eo=new g;Bn({alert$:eo});var to=new g;B("navigation.instant")&&Zn({location$:jt,viewport$:Oe,progress$:to}).subscribe(ot);var Ti;((Ti=Xr.version)==null?void 0:Ti.provider)==="mike"&&ii({document$:ot});S(jt,Ot).pipe(Ge(125)).subscribe(()=>{Je("drawer",!1),Je("search",!1)});Zr.pipe(b(({mode:e})=>e==="global")).subscribe(e=>{switch(e.type){case"p":case",":let t=fe("link[rel=prev]");typeof t!="undefined"&&pt(t);break;case"n":case".":let r=fe("link[rel=next]");typeof r!="undefined"&&pt(r);break;case"Enter":let o=Re();o instanceof HTMLLabelElement&&o.click()}});xi({viewport$:Oe,document$:ot});yi({document$:ot,tablet$:hr});Ei({document$:ot});wi({viewport$:Oe,tablet$:hr});var rt=Nn(Se("header"),{viewport$:Oe}),Ft=ot.pipe(m(()=>Se("main")),v(e=>Qn(e,{viewport$:Oe,header$:rt})),G(1)),ds=S(...ae("consent").map(e=>xn(e,{target$:Ot})),...ae("dialog").map(e=>Dn(e,{alert$:eo})),...ae("header").map(e=>zn(e,{viewport$:Oe,header$:rt,main$:Ft})),...ae("palette").map(e=>Kn(e)),...ae("progress").map(e=>Yn(e,{progress$:to})),...ae("search").map(e=>li(e,{index$:Mi,keyboard$:Zr})),...ae("source").map(e=>hi(e))),hs=C(()=>S(...ae("announce").map(e=>gn(e)),...ae("content").map(e=>Un(e,{viewport$:Oe,target$:Ot,print$:Oi})),...ae("content").map(e=>B("search.highlight")?mi(e,{index$:Mi,location$:jt}):O),...ae("header-title").map(e=>qn(e,{viewport$:Oe,header$:rt})),...ae("sidebar").map(e=>e.getAttribute("data-md-type")==="navigation"?Nr(Si,()=>Jr(e,{viewport$:Oe,header$:rt,main$:Ft})):Nr(hr,()=>Jr(e,{viewport$:Oe,header$:rt,main$:Ft}))),...ae("tabs").map(e=>bi(e,{viewport$:Oe,header$:rt})),...ae("toc").map(e=>vi(e,{viewport$:Oe,header$:rt,main$:Ft,target$:Ot})),...ae("top").map(e=>gi(e,{viewport$:Oe,header$:rt,main$:Ft,target$:Ot})))),Li=ot.pipe(v(()=>hs),Pe(ds),G(1));Li.subscribe();window.document$=ot;window.location$=jt;window.target$=Ot;window.keyboard$=Zr;window.viewport$=Oe;window.tablet$=hr;window.screen$=Si;window.print$=Oi;window.alert$=eo;window.progress$=to;window.component$=Li;})(); +//# sourceMappingURL=bundle.fe8b6f2b.min.js.map + diff --git a/assets/javascripts/bundle.fe8b6f2b.min.js.map b/assets/javascripts/bundle.fe8b6f2b.min.js.map new file mode 100644 index 0000000..8263585 --- /dev/null +++ b/assets/javascripts/bundle.fe8b6f2b.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["node_modules/focus-visible/dist/focus-visible.js", "node_modules/clipboard/dist/clipboard.js", "node_modules/escape-html/index.js", "src/templates/assets/javascripts/bundle.ts", "node_modules/rxjs/node_modules/tslib/tslib.es6.js", "node_modules/rxjs/src/internal/util/isFunction.ts", "node_modules/rxjs/src/internal/util/createErrorClass.ts", "node_modules/rxjs/src/internal/util/UnsubscriptionError.ts", "node_modules/rxjs/src/internal/util/arrRemove.ts", "node_modules/rxjs/src/internal/Subscription.ts", "node_modules/rxjs/src/internal/config.ts", "node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts", "node_modules/rxjs/src/internal/util/reportUnhandledError.ts", "node_modules/rxjs/src/internal/util/noop.ts", "node_modules/rxjs/src/internal/NotificationFactories.ts", "node_modules/rxjs/src/internal/util/errorContext.ts", "node_modules/rxjs/src/internal/Subscriber.ts", "node_modules/rxjs/src/internal/symbol/observable.ts", "node_modules/rxjs/src/internal/util/identity.ts", "node_modules/rxjs/src/internal/util/pipe.ts", "node_modules/rxjs/src/internal/Observable.ts", "node_modules/rxjs/src/internal/util/lift.ts", "node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts", "node_modules/rxjs/src/internal/scheduler/animationFrameProvider.ts", "node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts", "node_modules/rxjs/src/internal/Subject.ts", "node_modules/rxjs/src/internal/BehaviorSubject.ts", "node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts", "node_modules/rxjs/src/internal/ReplaySubject.ts", "node_modules/rxjs/src/internal/scheduler/Action.ts", "node_modules/rxjs/src/internal/scheduler/intervalProvider.ts", "node_modules/rxjs/src/internal/scheduler/AsyncAction.ts", "node_modules/rxjs/src/internal/Scheduler.ts", "node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts", "node_modules/rxjs/src/internal/scheduler/async.ts", "node_modules/rxjs/src/internal/scheduler/QueueAction.ts", "node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts", "node_modules/rxjs/src/internal/scheduler/queue.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts", "node_modules/rxjs/src/internal/scheduler/animationFrame.ts", "node_modules/rxjs/src/internal/observable/empty.ts", "node_modules/rxjs/src/internal/util/isScheduler.ts", "node_modules/rxjs/src/internal/util/args.ts", "node_modules/rxjs/src/internal/util/isArrayLike.ts", "node_modules/rxjs/src/internal/util/isPromise.ts", "node_modules/rxjs/src/internal/util/isInteropObservable.ts", "node_modules/rxjs/src/internal/util/isAsyncIterable.ts", "node_modules/rxjs/src/internal/util/throwUnobservableError.ts", "node_modules/rxjs/src/internal/symbol/iterator.ts", "node_modules/rxjs/src/internal/util/isIterable.ts", "node_modules/rxjs/src/internal/util/isReadableStreamLike.ts", "node_modules/rxjs/src/internal/observable/innerFrom.ts", "node_modules/rxjs/src/internal/util/executeSchedule.ts", "node_modules/rxjs/src/internal/operators/observeOn.ts", "node_modules/rxjs/src/internal/operators/subscribeOn.ts", "node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts", "node_modules/rxjs/src/internal/scheduled/schedulePromise.ts", "node_modules/rxjs/src/internal/scheduled/scheduleArray.ts", "node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleAsyncIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleReadableStreamLike.ts", "node_modules/rxjs/src/internal/scheduled/scheduled.ts", "node_modules/rxjs/src/internal/observable/from.ts", "node_modules/rxjs/src/internal/observable/of.ts", "node_modules/rxjs/src/internal/observable/throwError.ts", "node_modules/rxjs/src/internal/util/EmptyError.ts", "node_modules/rxjs/src/internal/util/isDate.ts", "node_modules/rxjs/src/internal/operators/map.ts", "node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts", "node_modules/rxjs/src/internal/util/argsArgArrayOrObject.ts", "node_modules/rxjs/src/internal/util/createObject.ts", "node_modules/rxjs/src/internal/observable/combineLatest.ts", "node_modules/rxjs/src/internal/operators/mergeInternals.ts", "node_modules/rxjs/src/internal/operators/mergeMap.ts", "node_modules/rxjs/src/internal/operators/mergeAll.ts", "node_modules/rxjs/src/internal/operators/concatAll.ts", "node_modules/rxjs/src/internal/observable/concat.ts", "node_modules/rxjs/src/internal/observable/defer.ts", "node_modules/rxjs/src/internal/observable/fromEvent.ts", "node_modules/rxjs/src/internal/observable/fromEventPattern.ts", "node_modules/rxjs/src/internal/observable/timer.ts", "node_modules/rxjs/src/internal/observable/merge.ts", "node_modules/rxjs/src/internal/observable/never.ts", "node_modules/rxjs/src/internal/util/argsOrArgArray.ts", "node_modules/rxjs/src/internal/operators/filter.ts", "node_modules/rxjs/src/internal/observable/zip.ts", "node_modules/rxjs/src/internal/operators/audit.ts", "node_modules/rxjs/src/internal/operators/auditTime.ts", "node_modules/rxjs/src/internal/operators/bufferCount.ts", "node_modules/rxjs/src/internal/operators/catchError.ts", "node_modules/rxjs/src/internal/operators/scanInternals.ts", "node_modules/rxjs/src/internal/operators/combineLatest.ts", "node_modules/rxjs/src/internal/operators/combineLatestWith.ts", "node_modules/rxjs/src/internal/operators/debounce.ts", "node_modules/rxjs/src/internal/operators/debounceTime.ts", "node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts", "node_modules/rxjs/src/internal/operators/take.ts", "node_modules/rxjs/src/internal/operators/ignoreElements.ts", "node_modules/rxjs/src/internal/operators/mapTo.ts", "node_modules/rxjs/src/internal/operators/delayWhen.ts", "node_modules/rxjs/src/internal/operators/delay.ts", "node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts", "node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts", "node_modules/rxjs/src/internal/operators/throwIfEmpty.ts", "node_modules/rxjs/src/internal/operators/endWith.ts", "node_modules/rxjs/src/internal/operators/finalize.ts", "node_modules/rxjs/src/internal/operators/first.ts", "node_modules/rxjs/src/internal/operators/takeLast.ts", "node_modules/rxjs/src/internal/operators/merge.ts", "node_modules/rxjs/src/internal/operators/mergeWith.ts", "node_modules/rxjs/src/internal/operators/repeat.ts", "node_modules/rxjs/src/internal/operators/scan.ts", "node_modules/rxjs/src/internal/operators/share.ts", "node_modules/rxjs/src/internal/operators/shareReplay.ts", "node_modules/rxjs/src/internal/operators/skip.ts", "node_modules/rxjs/src/internal/operators/skipUntil.ts", "node_modules/rxjs/src/internal/operators/startWith.ts", "node_modules/rxjs/src/internal/operators/switchMap.ts", "node_modules/rxjs/src/internal/operators/takeUntil.ts", "node_modules/rxjs/src/internal/operators/takeWhile.ts", "node_modules/rxjs/src/internal/operators/tap.ts", "node_modules/rxjs/src/internal/operators/throttle.ts", "node_modules/rxjs/src/internal/operators/throttleTime.ts", "node_modules/rxjs/src/internal/operators/withLatestFrom.ts", "node_modules/rxjs/src/internal/operators/zip.ts", "node_modules/rxjs/src/internal/operators/zipWith.ts", "src/templates/assets/javascripts/browser/document/index.ts", "src/templates/assets/javascripts/browser/element/_/index.ts", "src/templates/assets/javascripts/browser/element/focus/index.ts", "src/templates/assets/javascripts/browser/element/hover/index.ts", "src/templates/assets/javascripts/utilities/h/index.ts", "src/templates/assets/javascripts/utilities/round/index.ts", "src/templates/assets/javascripts/browser/script/index.ts", "src/templates/assets/javascripts/browser/element/size/_/index.ts", "src/templates/assets/javascripts/browser/element/size/content/index.ts", "src/templates/assets/javascripts/browser/element/offset/_/index.ts", "src/templates/assets/javascripts/browser/element/offset/content/index.ts", "src/templates/assets/javascripts/browser/element/visibility/index.ts", "src/templates/assets/javascripts/browser/toggle/index.ts", "src/templates/assets/javascripts/browser/keyboard/index.ts", "src/templates/assets/javascripts/browser/location/_/index.ts", "src/templates/assets/javascripts/browser/location/hash/index.ts", "src/templates/assets/javascripts/browser/media/index.ts", "src/templates/assets/javascripts/browser/request/index.ts", "src/templates/assets/javascripts/browser/viewport/offset/index.ts", "src/templates/assets/javascripts/browser/viewport/size/index.ts", "src/templates/assets/javascripts/browser/viewport/_/index.ts", "src/templates/assets/javascripts/browser/viewport/at/index.ts", "src/templates/assets/javascripts/browser/worker/index.ts", "src/templates/assets/javascripts/_/index.ts", "src/templates/assets/javascripts/components/_/index.ts", "src/templates/assets/javascripts/components/announce/index.ts", "src/templates/assets/javascripts/components/consent/index.ts", "src/templates/assets/javascripts/templates/tooltip/index.tsx", "src/templates/assets/javascripts/templates/annotation/index.tsx", "src/templates/assets/javascripts/templates/clipboard/index.tsx", "src/templates/assets/javascripts/templates/search/index.tsx", "src/templates/assets/javascripts/templates/source/index.tsx", "src/templates/assets/javascripts/templates/tabbed/index.tsx", "src/templates/assets/javascripts/templates/table/index.tsx", "src/templates/assets/javascripts/templates/version/index.tsx", "src/templates/assets/javascripts/components/tooltip2/index.ts", "src/templates/assets/javascripts/components/content/annotation/_/index.ts", "src/templates/assets/javascripts/components/content/annotation/list/index.ts", "src/templates/assets/javascripts/components/content/annotation/block/index.ts", "src/templates/assets/javascripts/components/content/code/_/index.ts", "src/templates/assets/javascripts/components/content/details/index.ts", "src/templates/assets/javascripts/components/content/mermaid/index.css", "src/templates/assets/javascripts/components/content/mermaid/index.ts", "src/templates/assets/javascripts/components/content/table/index.ts", "src/templates/assets/javascripts/components/content/tabs/index.ts", "src/templates/assets/javascripts/components/content/_/index.ts", "src/templates/assets/javascripts/components/dialog/index.ts", "src/templates/assets/javascripts/components/tooltip/index.ts", "src/templates/assets/javascripts/components/header/_/index.ts", "src/templates/assets/javascripts/components/header/title/index.ts", "src/templates/assets/javascripts/components/main/index.ts", "src/templates/assets/javascripts/components/palette/index.ts", "src/templates/assets/javascripts/components/progress/index.ts", "src/templates/assets/javascripts/integrations/clipboard/index.ts", "src/templates/assets/javascripts/integrations/sitemap/index.ts", "src/templates/assets/javascripts/integrations/instant/index.ts", "src/templates/assets/javascripts/integrations/search/highlighter/index.ts", "src/templates/assets/javascripts/integrations/search/worker/message/index.ts", "src/templates/assets/javascripts/integrations/search/worker/_/index.ts", "src/templates/assets/javascripts/integrations/version/index.ts", "src/templates/assets/javascripts/components/search/query/index.ts", "src/templates/assets/javascripts/components/search/result/index.ts", "src/templates/assets/javascripts/components/search/share/index.ts", "src/templates/assets/javascripts/components/search/suggest/index.ts", "src/templates/assets/javascripts/components/search/_/index.ts", "src/templates/assets/javascripts/components/search/highlight/index.ts", "src/templates/assets/javascripts/components/sidebar/index.ts", "src/templates/assets/javascripts/components/source/facts/github/index.ts", "src/templates/assets/javascripts/components/source/facts/gitlab/index.ts", "src/templates/assets/javascripts/components/source/facts/_/index.ts", "src/templates/assets/javascripts/components/source/_/index.ts", "src/templates/assets/javascripts/components/tabs/index.ts", "src/templates/assets/javascripts/components/toc/index.ts", "src/templates/assets/javascripts/components/top/index.ts", "src/templates/assets/javascripts/patches/ellipsis/index.ts", "src/templates/assets/javascripts/patches/indeterminate/index.ts", "src/templates/assets/javascripts/patches/scrollfix/index.ts", "src/templates/assets/javascripts/patches/scrolllock/index.ts", "src/templates/assets/javascripts/polyfills/index.ts"], + "sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (factory());\n}(this, (function () { 'use strict';\n\n /**\n * Applies the :focus-visible polyfill at the given scope.\n * A scope in this case is either the top-level Document or a Shadow Root.\n *\n * @param {(Document|ShadowRoot)} scope\n * @see https://github.com/WICG/focus-visible\n */\n function applyFocusVisiblePolyfill(scope) {\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n\n var inputTypesAllowlist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n * @param {Element} el\n */\n function isValidFocusTarget(el) {\n if (\n el &&\n el !== document &&\n el.nodeName !== 'HTML' &&\n el.nodeName !== 'BODY' &&\n 'classList' in el &&\n 'contains' in el.classList\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} el\n * @return {boolean}\n */\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n\n if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !el.readOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Add the `focus-visible` class to the given element if it was not added by\n * the author.\n * @param {Element} el\n */\n function addFocusVisibleClass(el) {\n if (el.classList.contains('focus-visible')) {\n return;\n }\n el.classList.add('focus-visible');\n el.setAttribute('data-focus-visible-added', '');\n }\n\n /**\n * Remove the `focus-visible` class from the given element if it was not\n * originally added by the author.\n * @param {Element} el\n */\n function removeFocusVisibleClass(el) {\n if (!el.hasAttribute('data-focus-visible-added')) {\n return;\n }\n el.classList.remove('focus-visible');\n el.removeAttribute('data-focus-visible-added');\n }\n\n /**\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n * @param {KeyboardEvent} e\n */\n function onKeyDown(e) {\n if (e.metaKey || e.altKey || e.ctrlKey) {\n return;\n }\n\n if (isValidFocusTarget(scope.activeElement)) {\n addFocusVisibleClass(scope.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * @param {Event} e\n */\n function onPointerDown(e) {\n hadKeyboardEvent = false;\n }\n\n /**\n * On `focus`, add the `focus-visible` class to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n * @param {Event} e\n */\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleClass(e.target);\n }\n }\n\n /**\n * On `blur`, remove the `focus-visible` class from the target.\n * @param {Event} e\n */\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (\n e.target.classList.contains('focus-visible') ||\n e.target.hasAttribute('data-focus-visible-added')\n ) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function() {\n hadFocusVisibleRecently = false;\n }, 100);\n removeFocusVisibleClass(e.target);\n }\n }\n\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had .focus-visible.\n * @param {Event} e\n */\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n addInitialPointerMoveListeners();\n }\n }\n\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n * @param {Event} e\n */\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. \u00AF\\_(\u30C4)_/\u00AF\n if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n // For some kinds of state, we are interested in changes at the global scope\n // only. For example, global pointer input, global key presses and global\n // visibility change should affect the state at every scope:\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n\n addInitialPointerMoveListeners();\n\n // For focus and blur, we specifically care about state changes in the local\n // scope. This is because focus / blur events that originate from within a\n // shadow root are not re-dispatched from the host element if it was already\n // the active element in its own scope:\n scope.addEventListener('focus', onFocus, true);\n scope.addEventListener('blur', onBlur, true);\n\n // We detect that a node is a ShadowRoot by ensuring that it is a\n // DocumentFragment and also has a host property. This check covers native\n // implementation and polyfill implementation transparently. If we only cared\n // about the native implementation, we could just check if the scope was\n // an instance of a ShadowRoot.\n if (scope.nodeType === Node.DOCUMENT_FRAGMENT_NODE && scope.host) {\n // Since a ShadowRoot is a special kind of DocumentFragment, it does not\n // have a root element to add a class to. So, we add this attribute to the\n // host element instead:\n scope.host.setAttribute('data-js-focus-visible', '');\n } else if (scope.nodeType === Node.DOCUMENT_NODE) {\n document.documentElement.classList.add('js-focus-visible');\n document.documentElement.setAttribute('data-js-focus-visible', '');\n }\n }\n\n // It is important to wrap all references to global window and document in\n // these checks to support server-side rendering use cases\n // @see https://github.com/WICG/focus-visible/issues/199\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n // Make the polyfill helper globally available. This can be used as a signal\n // to interested libraries that wish to coordinate with the polyfill for e.g.,\n // applying the polyfill to a shadow root:\n window.applyFocusVisiblePolyfill = applyFocusVisiblePolyfill;\n\n // Notify interested libraries of the polyfill's presence, in case the\n // polyfill was loaded lazily:\n var event;\n\n try {\n event = new CustomEvent('focus-visible-polyfill-ready');\n } catch (error) {\n // IE11 does not support using CustomEvent as a constructor directly:\n event = document.createEvent('CustomEvent');\n event.initCustomEvent('focus-visible-polyfill-ready', false, false, {});\n }\n\n window.dispatchEvent(event);\n }\n\n if (typeof document !== 'undefined') {\n // Apply the polyfill to the global document, so that no JavaScript\n // coordination is required to use the polyfill in the top-level document:\n applyFocusVisiblePolyfill(document);\n }\n\n})));\n", "/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT \u00A9 Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n fakeElement.style.fontSize = '12pt'; // Reset box model\n\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = \"\".concat(yPosition, \"px\");\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n var selectedText = '';\n\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n\n return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Defines base properties passed from constructor.\n var _options$action = options.action,\n action = _options$action === void 0 ? 'copy' : _options$action,\n container = options.container,\n target = options.target,\n text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n } // Sets the `target` property using an element that will be have its content copied.\n\n\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n } // Define selection strategy based on `text` property.\n\n\n if (text) {\n return actions_copy(text, {\n container: container\n });\n } // Defines which selection strategy based on `target` property.\n\n\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n container: container\n });\n }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n }); // Fires an event based on the copy operation result.\n\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Allow fire programmatically a copy action\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @returns Text copied.\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n }\n }], [{\n key: \"copy\",\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n return actions_copy(target, options);\n }\n /**\n * Allow fire programmatically a cut action\n * @param {String|HTMLElement} target\n * @returns Text cutted.\n */\n\n }, {\n key: \"cut\",\n value: function cut(target) {\n return actions_cut(target);\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});", "/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n", "/*\n * Copyright (c) 2016-2024 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport \"focus-visible\"\n\nimport {\n EMPTY,\n NEVER,\n Observable,\n Subject,\n defer,\n delay,\n filter,\n map,\n merge,\n mergeWith,\n shareReplay,\n switchMap\n} from \"rxjs\"\n\nimport { configuration, feature } from \"./_\"\nimport {\n at,\n getActiveElement,\n getOptionalElement,\n requestJSON,\n setLocation,\n setToggle,\n watchDocument,\n watchKeyboard,\n watchLocation,\n watchLocationTarget,\n watchMedia,\n watchPrint,\n watchScript,\n watchViewport\n} from \"./browser\"\nimport {\n getComponentElement,\n getComponentElements,\n mountAnnounce,\n mountBackToTop,\n mountConsent,\n mountContent,\n mountDialog,\n mountHeader,\n mountHeaderTitle,\n mountPalette,\n mountProgress,\n mountSearch,\n mountSearchHiglight,\n mountSidebar,\n mountSource,\n mountTableOfContents,\n mountTabs,\n watchHeader,\n watchMain\n} from \"./components\"\nimport {\n SearchIndex,\n setupClipboardJS,\n setupInstantNavigation,\n setupVersionSelector\n} from \"./integrations\"\nimport {\n patchEllipsis,\n patchIndeterminate,\n patchScrollfix,\n patchScrolllock\n} from \"./patches\"\nimport \"./polyfills\"\n\n/* ----------------------------------------------------------------------------\n * Functions - @todo refactor\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch search index\n *\n * @returns Search index observable\n */\nfunction fetchSearchIndex(): Observable {\n if (location.protocol === \"file:\") {\n return watchScript(\n `${new URL(\"search/search_index.js\", config.base)}`\n )\n .pipe(\n // @ts-ignore - @todo fix typings\n map(() => __index),\n shareReplay(1)\n )\n } else {\n return requestJSON(\n new URL(\"search/search_index.json\", config.base)\n )\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Application\n * ------------------------------------------------------------------------- */\n\n/* Yay, JavaScript is available */\ndocument.documentElement.classList.remove(\"no-js\")\ndocument.documentElement.classList.add(\"js\")\n\n/* Set up navigation observables and subjects */\nconst document$ = watchDocument()\nconst location$ = watchLocation()\nconst target$ = watchLocationTarget(location$)\nconst keyboard$ = watchKeyboard()\n\n/* Set up media observables */\nconst viewport$ = watchViewport()\nconst tablet$ = watchMedia(\"(min-width: 960px)\")\nconst screen$ = watchMedia(\"(min-width: 1220px)\")\nconst print$ = watchPrint()\n\n/* Retrieve search index, if search is enabled */\nconst config = configuration()\nconst index$ = document.forms.namedItem(\"search\")\n ? fetchSearchIndex()\n : NEVER\n\n/* Set up Clipboard.js integration */\nconst alert$ = new Subject()\nsetupClipboardJS({ alert$ })\n\n/* Set up progress indicator */\nconst progress$ = new Subject()\n\n/* Set up instant navigation, if enabled */\nif (feature(\"navigation.instant\"))\n setupInstantNavigation({ location$, viewport$, progress$ })\n .subscribe(document$)\n\n/* Set up version selector */\nif (config.version?.provider === \"mike\")\n setupVersionSelector({ document$ })\n\n/* Always close drawer and search on navigation */\nmerge(location$, target$)\n .pipe(\n delay(125)\n )\n .subscribe(() => {\n setToggle(\"drawer\", false)\n setToggle(\"search\", false)\n })\n\n/* Set up global keyboard handlers */\nkeyboard$\n .pipe(\n filter(({ mode }) => mode === \"global\")\n )\n .subscribe(key => {\n switch (key.type) {\n\n /* Go to previous page */\n case \"p\":\n case \",\":\n const prev = getOptionalElement(\"link[rel=prev]\")\n if (typeof prev !== \"undefined\")\n setLocation(prev)\n break\n\n /* Go to next page */\n case \"n\":\n case \".\":\n const next = getOptionalElement(\"link[rel=next]\")\n if (typeof next !== \"undefined\")\n setLocation(next)\n break\n\n /* Expand navigation, see https://bit.ly/3ZjG5io */\n case \"Enter\":\n const active = getActiveElement()\n if (active instanceof HTMLLabelElement)\n active.click()\n }\n })\n\n/* Set up patches */\npatchEllipsis({ viewport$, document$ })\npatchIndeterminate({ document$, tablet$ })\npatchScrollfix({ document$ })\npatchScrolllock({ viewport$, tablet$ })\n\n/* Set up header and main area observable */\nconst header$ = watchHeader(getComponentElement(\"header\"), { viewport$ })\nconst main$ = document$\n .pipe(\n map(() => getComponentElement(\"main\")),\n switchMap(el => watchMain(el, { viewport$, header$ })),\n shareReplay(1)\n )\n\n/* Set up control component observables */\nconst control$ = merge(\n\n /* Consent */\n ...getComponentElements(\"consent\")\n .map(el => mountConsent(el, { target$ })),\n\n /* Dialog */\n ...getComponentElements(\"dialog\")\n .map(el => mountDialog(el, { alert$ })),\n\n /* Header */\n ...getComponentElements(\"header\")\n .map(el => mountHeader(el, { viewport$, header$, main$ })),\n\n /* Color palette */\n ...getComponentElements(\"palette\")\n .map(el => mountPalette(el)),\n\n /* Progress bar */\n ...getComponentElements(\"progress\")\n .map(el => mountProgress(el, { progress$ })),\n\n /* Search */\n ...getComponentElements(\"search\")\n .map(el => mountSearch(el, { index$, keyboard$ })),\n\n /* Repository information */\n ...getComponentElements(\"source\")\n .map(el => mountSource(el))\n)\n\n/* Set up content component observables */\nconst content$ = defer(() => merge(\n\n /* Announcement bar */\n ...getComponentElements(\"announce\")\n .map(el => mountAnnounce(el)),\n\n /* Content */\n ...getComponentElements(\"content\")\n .map(el => mountContent(el, { viewport$, target$, print$ })),\n\n /* Search highlighting */\n ...getComponentElements(\"content\")\n .map(el => feature(\"search.highlight\")\n ? mountSearchHiglight(el, { index$, location$ })\n : EMPTY\n ),\n\n /* Header title */\n ...getComponentElements(\"header-title\")\n .map(el => mountHeaderTitle(el, { viewport$, header$ })),\n\n /* Sidebar */\n ...getComponentElements(\"sidebar\")\n .map(el => el.getAttribute(\"data-md-type\") === \"navigation\"\n ? at(screen$, () => mountSidebar(el, { viewport$, header$, main$ }))\n : at(tablet$, () => mountSidebar(el, { viewport$, header$, main$ }))\n ),\n\n /* Navigation tabs */\n ...getComponentElements(\"tabs\")\n .map(el => mountTabs(el, { viewport$, header$ })),\n\n /* Table of contents */\n ...getComponentElements(\"toc\")\n .map(el => mountTableOfContents(el, {\n viewport$, header$, main$, target$\n })),\n\n /* Back-to-top button */\n ...getComponentElements(\"top\")\n .map(el => mountBackToTop(el, { viewport$, header$, main$, target$ }))\n))\n\n/* Set up component observables */\nconst component$ = document$\n .pipe(\n switchMap(() => content$),\n mergeWith(control$),\n shareReplay(1)\n )\n\n/* Subscribe to all components */\ncomponent$.subscribe()\n\n/* ----------------------------------------------------------------------------\n * Exports\n * ------------------------------------------------------------------------- */\n\nwindow.document$ = document$ /* Document observable */\nwindow.location$ = location$ /* Location subject */\nwindow.target$ = target$ /* Location target observable */\nwindow.keyboard$ = keyboard$ /* Keyboard observable */\nwindow.viewport$ = viewport$ /* Viewport observable */\nwindow.tablet$ = tablet$ /* Media tablet observable */\nwindow.screen$ = screen$ /* Media screen observable */\nwindow.print$ = print$ /* Media print observable */\nwindow.alert$ = alert$ /* Alert subject */\nwindow.progress$ = progress$ /* Progress indicator subject */\nwindow.component$ = component$ /* Component observable */\n", "/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n", "/**\n * Returns true if the object is a function.\n * @param value The value to check\n */\nexport function isFunction(value: any): value is (...args: any[]) => any {\n return typeof value === 'function';\n}\n", "/**\n * Used to create Error subclasses until the community moves away from ES5.\n *\n * This is because compiling from TypeScript down to ES5 has issues with subclassing Errors\n * as well as other built-in types: https://github.com/Microsoft/TypeScript/issues/12123\n *\n * @param createImpl A factory function to create the actual constructor implementation. The returned\n * function should be a named function that calls `_super` internally.\n */\nexport function createErrorClass(createImpl: (_super: any) => any): T {\n const _super = (instance: any) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface UnsubscriptionError extends Error {\n readonly errors: any[];\n}\n\nexport interface UnsubscriptionErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (errors: any[]): UnsubscriptionError;\n}\n\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nexport const UnsubscriptionError: UnsubscriptionErrorCtor = createErrorClass(\n (_super) =>\n function UnsubscriptionErrorImpl(this: any, errors: (Error | string)[]) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n }\n);\n", "/**\n * Removes an item from an array, mutating it.\n * @param arr The array to remove the item from\n * @param item The item to remove\n */\nexport function arrRemove(arr: T[] | undefined | null, item: T) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { SubscriptionLike, TeardownLogic, Unsubscribable } from './types';\nimport { arrRemove } from './util/arrRemove';\n\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nexport class Subscription implements SubscriptionLike {\n /** @nocollapse */\n public static EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n */\n public closed = false;\n\n private _parentage: Subscription[] | Subscription | null = null;\n\n /**\n * The list of registered finalizers to execute upon unsubscription. Adding and removing from this\n * list occurs in the {@link #add} and {@link #remove} methods.\n */\n private _finalizers: Exclude[] | null = null;\n\n /**\n * @param initialTeardown A function executed first as part of the finalization\n * process that is kicked off when {@link #unsubscribe} is called.\n */\n constructor(private initialTeardown?: () => void) {}\n\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n * @return {void}\n */\n unsubscribe(): void {\n let errors: any[] | undefined;\n\n if (!this.closed) {\n this.closed = true;\n\n // Remove this from it's parents.\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n } else {\n _parentage.remove(this);\n }\n }\n\n const { initialTeardown: initialFinalizer } = this;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n } catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n\n const { _finalizers } = this;\n if (_finalizers) {\n this._finalizers = null;\n for (const finalizer of _finalizers) {\n try {\n execFinalizer(finalizer);\n } catch (err) {\n errors = errors ?? [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n } else {\n errors.push(err);\n }\n }\n }\n }\n\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n\n /**\n * Adds a finalizer to this subscription, so that finalization will be unsubscribed/called\n * when this subscription is unsubscribed. If this subscription is already {@link #closed},\n * because it has already been unsubscribed, then whatever finalizer is passed to it\n * will automatically be executed (unless the finalizer itself is also a closed subscription).\n *\n * Closed Subscriptions cannot be added as finalizers to any subscription. Adding a closed\n * subscription to a any subscription will result in no operation. (A noop).\n *\n * Adding a subscription to itself, or adding `null` or `undefined` will not perform any\n * operation at all. (A noop).\n *\n * `Subscription` instances that are added to this instance will automatically remove themselves\n * if they are unsubscribed. Functions and {@link Unsubscribable} objects that you wish to remove\n * will need to be removed manually with {@link #remove}\n *\n * @param teardown The finalization logic to add to this subscription.\n */\n add(teardown: TeardownLogic): void {\n // Only add the finalizer if it's not undefined\n // and don't add a subscription to itself.\n if (teardown && teardown !== this) {\n if (this.closed) {\n // If this subscription is already closed,\n // execute whatever finalizer is handed to it automatically.\n execFinalizer(teardown);\n } else {\n if (teardown instanceof Subscription) {\n // We don't add closed subscriptions, and we don't add the same subscription\n // twice. Subscription unsubscribe is idempotent.\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = this._finalizers ?? []).push(teardown);\n }\n }\n }\n\n /**\n * Checks to see if a this subscription already has a particular parent.\n * This will signal that this subscription has already been added to the parent in question.\n * @param parent the parent to check for\n */\n private _hasParent(parent: Subscription) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n\n /**\n * Adds a parent to this subscription so it can be removed from the parent if it\n * unsubscribes on it's own.\n *\n * NOTE: THIS ASSUMES THAT {@link _hasParent} HAS ALREADY BEEN CHECKED.\n * @param parent The parent subscription to add\n */\n private _addParent(parent: Subscription) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n\n /**\n * Called on a child when it is removed via {@link #remove}.\n * @param parent The parent to remove\n */\n private _removeParent(parent: Subscription) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n } else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n\n /**\n * Removes a finalizer from this subscription that was previously added with the {@link #add} method.\n *\n * Note that `Subscription` instances, when unsubscribed, will automatically remove themselves\n * from every other `Subscription` they have been added to. This means that using the `remove` method\n * is not a common thing and should be used thoughtfully.\n *\n * If you add the same finalizer instance of a function or an unsubscribable object to a `Subscription` instance\n * more than once, you will need to call `remove` the same number of times to remove all instances.\n *\n * All finalizer instances are removed to free up memory upon unsubscription.\n *\n * @param teardown The finalizer to remove from this subscription\n */\n remove(teardown: Exclude): void {\n const { _finalizers } = this;\n _finalizers && arrRemove(_finalizers, teardown);\n\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\n\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\n\nexport function isSubscription(value: any): value is Subscription {\n return (\n value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe))\n );\n}\n\nfunction execFinalizer(finalizer: Unsubscribable | (() => void)) {\n if (isFunction(finalizer)) {\n finalizer();\n } else {\n finalizer.unsubscribe();\n }\n}\n", "import { Subscriber } from './Subscriber';\nimport { ObservableNotification } from './types';\n\n/**\n * The {@link GlobalConfig} object for RxJS. It is used to configure things\n * like how to react on unhandled errors.\n */\nexport const config: GlobalConfig = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n\n/**\n * The global configuration object for RxJS, used to configure things\n * like how to react on unhandled errors. Accessible via {@link config}\n * object.\n */\nexport interface GlobalConfig {\n /**\n * A registration point for unhandled errors from RxJS. These are errors that\n * cannot were not handled by consuming code in the usual subscription path. For\n * example, if you have this configured, and you subscribe to an observable without\n * providing an error handler, errors from that subscription will end up here. This\n * will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onUnhandledError: ((err: any) => void) | null;\n\n /**\n * A registration point for notifications that cannot be sent to subscribers because they\n * have completed, errored or have been explicitly unsubscribed. By default, next, complete\n * and error notifications sent to stopped subscribers are noops. However, sometimes callers\n * might want a different behavior. For example, with sources that attempt to report errors\n * to stopped subscribers, a caller can configure RxJS to throw an unhandled error instead.\n * This will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onStoppedNotification: ((notification: ObservableNotification, subscriber: Subscriber) => void) | null;\n\n /**\n * The promise constructor used by default for {@link Observable#toPromise toPromise} and {@link Observable#forEach forEach}\n * methods.\n *\n * @deprecated As of version 8, RxJS will no longer support this sort of injection of a\n * Promise constructor. If you need a Promise implementation other than native promises,\n * please polyfill/patch Promise as you see appropriate. Will be removed in v8.\n */\n Promise?: PromiseConstructorLike;\n\n /**\n * If true, turns on synchronous error rethrowing, which is a deprecated behavior\n * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe\n * call in a try/catch block. It also enables producer interference, a nasty bug\n * where a multicast can be broken for all observers by a downstream consumer with\n * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BUY TIME\n * FOR MIGRATION REASONS.\n *\n * @deprecated As of version 8, RxJS will no longer support synchronous throwing\n * of unhandled errors. All errors will be thrown on a separate call stack to prevent bad\n * behaviors described above. Will be removed in v8.\n */\n useDeprecatedSynchronousErrorHandling: boolean;\n\n /**\n * If true, enables an as-of-yet undocumented feature from v5: The ability to access\n * `unsubscribe()` via `this` context in `next` functions created in observers passed\n * to `subscribe`.\n *\n * This is being removed because the performance was severely problematic, and it could also cause\n * issues when types other than POJOs are passed to subscribe as subscribers, as they will likely have\n * their `this` context overwritten.\n *\n * @deprecated As of version 8, RxJS will no longer support altering the\n * context of next functions provided as part of an observer to Subscribe. Instead,\n * you will have access to a subscription or a signal or token that will allow you to do things like\n * unsubscribe and test closed status. Will be removed in v8.\n */\n useDeprecatedNextContext: boolean;\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetTimeoutFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearTimeoutFunction = (handle: TimerHandle) => void;\n\ninterface TimeoutProvider {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n delegate:\n | {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n }\n | undefined;\n}\n\nexport const timeoutProvider: TimeoutProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setTimeout(handler: () => void, timeout?: number, ...args) {\n const { delegate } = timeoutProvider;\n if (delegate?.setTimeout) {\n return delegate.setTimeout(handler, timeout, ...args);\n }\n return setTimeout(handler, timeout, ...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return (delegate?.clearTimeout || clearTimeout)(handle as any);\n },\n delegate: undefined,\n};\n", "import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\n\n/**\n * Handles an error on another job either with the user-configured {@link onUnhandledError},\n * or by throwing it on that new job so it can be picked up by `window.onerror`, `process.on('error')`, etc.\n *\n * This should be called whenever there is an error that is out-of-band with the subscription\n * or when an error hits a terminal boundary of the subscription and no error handler was provided.\n *\n * @param err the error to report\n */\nexport function reportUnhandledError(err: any) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n // Execute the user-configured error handler.\n onUnhandledError(err);\n } else {\n // Throw so it is picked up by the runtime's uncaught error mechanism.\n throw err;\n }\n });\n}\n", "/* tslint:disable:no-empty */\nexport function noop() { }\n", "import { CompleteNotification, NextNotification, ErrorNotification } from './types';\n\n/**\n * A completion object optimized for memory use and created to be the\n * same \"shape\" as other notifications in v8.\n * @internal\n */\nexport const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined) as CompleteNotification)();\n\n/**\n * Internal use only. Creates an optimized error notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function errorNotification(error: any): ErrorNotification {\n return createNotification('E', undefined, error) as any;\n}\n\n/**\n * Internal use only. Creates an optimized next notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function nextNotification(value: T) {\n return createNotification('N', value, undefined) as NextNotification;\n}\n\n/**\n * Ensures that all notifications created internally have the same \"shape\" in v8.\n *\n * TODO: This is only exported to support a crazy legacy test in `groupBy`.\n * @internal\n */\nexport function createNotification(kind: 'N' | 'E' | 'C', value: any, error: any) {\n return {\n kind,\n value,\n error,\n };\n}\n", "import { config } from '../config';\n\nlet context: { errorThrown: boolean; error: any } | null = null;\n\n/**\n * Handles dealing with errors for super-gross mode. Creates a context, in which\n * any synchronously thrown errors will be passed to {@link captureError}. Which\n * will record the error such that it will be rethrown after the call back is complete.\n * TODO: Remove in v8\n * @param cb An immediately executed function.\n */\nexport function errorContext(cb: () => void) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context!;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n } else {\n // This is the general non-deprecated path for everyone that\n // isn't crazy enough to use super-gross mode (useDeprecatedSynchronousErrorHandling)\n cb();\n }\n}\n\n/**\n * Captures errors only in super-gross mode.\n * @param err the error to capture\n */\nexport function captureError(err: any) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { Observer, ObservableNotification } from './types';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\n\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber\n */\nexport class Subscriber extends Subscription implements Observer {\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param next The `next` callback of an Observer.\n * @param error The `error` callback of an\n * Observer.\n * @param complete The `complete` callback of an\n * Observer.\n * @return A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n * @nocollapse\n * @deprecated Do not use. Will be removed in v8. There is no replacement for this\n * method, and there is no reason to be creating instances of `Subscriber` directly.\n * If you have a specific use case, please file an issue.\n */\n static create(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber {\n return new SafeSubscriber(next, error, complete);\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected isStopped: boolean = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected destination: Subscriber | Observer; // this `any` is the escape hatch to erase extra type param (e.g. R)\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * There is no reason to directly create an instance of Subscriber. This type is exported for typings reasons.\n */\n constructor(destination?: Subscriber | Observer) {\n super();\n if (destination) {\n this.destination = destination;\n // Automatically chain subscriptions together here.\n // if destination is a Subscription, then it is a Subscriber.\n if (isSubscription(destination)) {\n destination.add(this);\n }\n } else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param {T} [value] The `next` value.\n * @return {void}\n */\n next(value?: T): void {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n } else {\n this._next(value!);\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached `Error`. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param {any} [err] The `error` exception.\n * @return {void}\n */\n error(err?: any): void {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n } else {\n this.isStopped = true;\n this._error(err);\n }\n }\n\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n * @return {void}\n */\n complete(): void {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n } else {\n this.isStopped = true;\n this._complete();\n }\n }\n\n unsubscribe(): void {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null!;\n }\n }\n\n protected _next(value: T): void {\n this.destination.next(value);\n }\n\n protected _error(err: any): void {\n try {\n this.destination.error(err);\n } finally {\n this.unsubscribe();\n }\n }\n\n protected _complete(): void {\n try {\n this.destination.complete();\n } finally {\n this.unsubscribe();\n }\n }\n}\n\n/**\n * This bind is captured here because we want to be able to have\n * compatibility with monoid libraries that tend to use a method named\n * `bind`. In particular, a library called Monio requires this.\n */\nconst _bind = Function.prototype.bind;\n\nfunction bind any>(fn: Fn, thisArg: any): Fn {\n return _bind.call(fn, thisArg);\n}\n\n/**\n * Internal optimization only, DO NOT EXPOSE.\n * @internal\n */\nclass ConsumerObserver implements Observer {\n constructor(private partialObserver: Partial>) {}\n\n next(value: T): void {\n const { partialObserver } = this;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n\n error(err: any): void {\n const { partialObserver } = this;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n } catch (error) {\n handleUnhandledError(error);\n }\n } else {\n handleUnhandledError(err);\n }\n }\n\n complete(): void {\n const { partialObserver } = this;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n}\n\nexport class SafeSubscriber extends Subscriber {\n constructor(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((e?: any) => void) | null,\n complete?: (() => void) | null\n ) {\n super();\n\n let partialObserver: Partial>;\n if (isFunction(observerOrNext) || !observerOrNext) {\n // The first argument is a function, not an observer. The next\n // two arguments *could* be observers, or they could be empty.\n partialObserver = {\n next: (observerOrNext ?? undefined) as (((value: T) => void) | undefined),\n error: error ?? undefined,\n complete: complete ?? undefined,\n };\n } else {\n // The first argument is a partial observer.\n let context: any;\n if (this && config.useDeprecatedNextContext) {\n // This is a deprecated path that made `this.unsubscribe()` available in\n // next handler functions passed to subscribe. This only exists behind a flag\n // now, as it is *very* slow.\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context),\n error: observerOrNext.error && bind(observerOrNext.error, context),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n };\n } else {\n // The \"normal\" path. Just use the partial observer directly.\n partialObserver = observerOrNext;\n }\n }\n\n // Wrap the partial observer to ensure it's a full observer, and\n // make sure proper error handling is accounted for.\n this.destination = new ConsumerObserver(partialObserver);\n }\n}\n\nfunction handleUnhandledError(error: any) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n } else {\n // Ideal path, we report this as an unhandled error,\n // which is thrown on a new call stack.\n reportUnhandledError(error);\n }\n}\n\n/**\n * An error handler used when no error handler was supplied\n * to the SafeSubscriber -- meaning no error handler was supplied\n * do the `subscribe` call on our observable.\n * @param err The error to handle\n */\nfunction defaultErrorHandler(err: any) {\n throw err;\n}\n\n/**\n * A handler for notifications that cannot be sent to a stopped subscriber.\n * @param notification The notification being sent\n * @param subscriber The stopped subscriber\n */\nfunction handleStoppedNotification(notification: ObservableNotification, subscriber: Subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\n\n/**\n * The observer used as a stub for subscriptions where the user did not\n * pass any arguments to `subscribe`. Comes with the default error handling\n * behavior.\n */\nexport const EMPTY_OBSERVER: Readonly> & { closed: true } = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n", "/**\n * Symbol.observable or a string \"@@observable\". Used for interop\n *\n * @deprecated We will no longer be exporting this symbol in upcoming versions of RxJS.\n * Instead polyfill and use Symbol.observable directly *or* use https://www.npmjs.com/package/symbol-observable\n */\nexport const observable: string | symbol = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n", "/**\n * This function takes one parameter and just returns it. Simply put,\n * this is like `(x: T): T => x`.\n *\n * ## Examples\n *\n * This is useful in some cases when using things like `mergeMap`\n *\n * ```ts\n * import { interval, take, map, range, mergeMap, identity } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(5));\n *\n * const result$ = source$.pipe(\n * map(i => range(i)),\n * mergeMap(identity) // same as mergeMap(x => x)\n * );\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * Or when you want to selectively apply an operator\n *\n * ```ts\n * import { interval, take, identity } from 'rxjs';\n *\n * const shouldLimit = () => Math.random() < 0.5;\n *\n * const source$ = interval(1000);\n *\n * const result$ = source$.pipe(shouldLimit() ? take(5) : identity);\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * @param x Any value that is returned by this function\n * @returns The value passed as the first parameter to this function\n */\nexport function identity(x: T): T {\n return x;\n}\n", "import { identity } from './identity';\nimport { UnaryFunction } from '../types';\n\nexport function pipe(): typeof identity;\nexport function pipe(fn1: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction,\n ...fns: UnaryFunction[]\n): UnaryFunction;\n\n/**\n * pipe() can be called on one or more functions, each of which can take one argument (\"UnaryFunction\")\n * and uses it to return a value.\n * It returns a function that takes one argument, passes it to the first UnaryFunction, and then\n * passes the result to the next one, passes that result to the next one, and so on. \n */\nexport function pipe(...fns: Array>): UnaryFunction {\n return pipeFromArray(fns);\n}\n\n/** @internal */\nexport function pipeFromArray(fns: Array>): UnaryFunction {\n if (fns.length === 0) {\n return identity as UnaryFunction;\n }\n\n if (fns.length === 1) {\n return fns[0];\n }\n\n return function piped(input: T): R {\n return fns.reduce((prev: any, fn: UnaryFunction) => fn(prev), input as any);\n };\n}\n", "import { Operator } from './Operator';\nimport { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription, Subscription } from './Subscription';\nimport { TeardownLogic, OperatorFunction, Subscribable, Observer } from './types';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n *\n * @class Observable\n */\nexport class Observable implements Subscribable {\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n source: Observable | undefined;\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n operator: Operator | undefined;\n\n /**\n * @constructor\n * @param {Function} subscribe the function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n constructor(subscribe?: (this: Observable, subscriber: Subscriber) => TeardownLogic) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new Observable by calling the Observable constructor\n * @owner Observable\n * @method create\n * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n * @return {Observable} a new observable\n * @nocollapse\n * @deprecated Use `new Observable()` instead. Will be removed in v8.\n */\n static create: (...args: any[]) => any = (subscribe?: (subscriber: Subscriber) => TeardownLogic) => {\n return new Observable(subscribe);\n };\n\n /**\n * Creates a new Observable, with this Observable instance as the source, and the passed\n * operator defined as the new observable's operator.\n * @method lift\n * @param operator the operator defining the operation to take on the observable\n * @return a new observable with the Operator applied\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * If you have implemented an operator using `lift`, it is recommended that you create an\n * operator by simply returning `new Observable()` directly. See \"Creating new operators from\n * scratch\" section here: https://rxjs.dev/guide/operators\n */\n lift(operator?: Operator): Observable {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n\n subscribe(observerOrNext?: Partial> | ((value: T) => void)): Subscription;\n /** @deprecated Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-arguments */\n subscribe(next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null): Subscription;\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * Use it when you have all these Observables, but still nothing is happening.\n *\n * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n * might be for example a function that you passed to Observable's constructor, but most of the time it is\n * a library implementation, which defines what will be emitted by an Observable, and when it be will emitted. This means\n * that calling `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n * the thought.\n *\n * Apart from starting the execution of an Observable, this method allows you to listen for values\n * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n * of the following ways.\n *\n * The first way is creating an object that implements {@link Observer} interface. It should have methods\n * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular, do\n * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n * do anything, you can simply omit it. Note however, if the `error` method is not provided and an error happens,\n * it will be thrown asynchronously. Errors thrown asynchronously cannot be caught using `try`/`catch`. Instead,\n * use the {@link onUnhandledError} configuration option or use a runtime handler (like `window.onerror` or\n * `process.on('error)`) to be notified of unhandled errors. Because of this, it's recommended that you provide\n * an `error` method to avoid missing thrown errors.\n *\n * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n * This means you can provide three functions as arguments to `subscribe`, where the first function is equivalent\n * of a `next` method, the second of an `error` method and the third of a `complete` method. Just as in case of an Observer,\n * if you do not need to listen for something, you can omit a function by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to the `error` function, as with an Observer, if not provided, errors emitted by an Observable will be thrown asynchronously.\n *\n * You can, however, subscribe with no parameters at all. This may be the case where you're not interested in terminal events\n * and you also handled emissions internally by using operators (e.g. using `tap`).\n *\n * Whichever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n * This object allows you to call `unsubscribe` on it, which in turn will stop the work that an Observable does and will clean\n * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n *\n * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n * It is an Observable itself that decides when these functions will be called. For example {@link of}\n * by default emits all its values synchronously. Always check documentation for how given Observable\n * will behave when subscribed and if its default behavior can be modified with a `scheduler`.\n *\n * #### Examples\n *\n * Subscribe with an {@link guide/observer Observer}\n *\n * ```ts\n * import { of } from 'rxjs';\n *\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() {\n * // We actually could just remove this method,\n * // since we do not really care about errors right now.\n * },\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n * .subscribe(sumObserver);\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Subscribe with functions ({@link deprecations/subscribe-arguments deprecated})\n *\n * ```ts\n * import { of } from 'rxjs'\n *\n * let sum = 0;\n *\n * of(1, 2, 3).subscribe(\n * value => {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * () => console.log('Sum equals: ' + sum)\n * );\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Cancel a subscription\n *\n * ```ts\n * import { interval } from 'rxjs';\n *\n * const subscription = interval(1000).subscribe({\n * next(num) {\n * console.log(num)\n * },\n * complete() {\n * // Will not be called, even when cancelling subscription.\n * console.log('completed!');\n * }\n * });\n *\n * setTimeout(() => {\n * subscription.unsubscribe();\n * console.log('unsubscribed!');\n * }, 2500);\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // 'unsubscribed!' after 2.5s\n * ```\n *\n * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,\n * or the first of three possible handlers, which is the handler for each value emitted from the subscribed\n * Observable.\n * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown asynchronously as unhandled.\n * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.\n * @return {Subscription} a subscription reference to the registered handlers\n * @method subscribe\n */\n subscribe(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((error: any) => void) | null,\n complete?: (() => void) | null\n ): Subscription {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(\n operator\n ? // We're dealing with a subscription in the\n // operator chain to one of our lifted operators.\n operator.call(subscriber, source)\n : source\n ? // If `source` has a value, but `operator` does not, something that\n // had intimate knowledge of our API, like our `Subject`, must have\n // set it. We're going to just call `_subscribe` directly.\n this._subscribe(subscriber)\n : // In all other cases, we're likely wrapping a user-provided initializer\n // function, so we need to catch errors and handle them appropriately.\n this._trySubscribe(subscriber)\n );\n });\n\n return subscriber;\n }\n\n /** @internal */\n protected _trySubscribe(sink: Subscriber): TeardownLogic {\n try {\n return this._subscribe(sink);\n } catch (err) {\n // We don't need to return anything in this case,\n // because it's just going to try to `add()` to a subscription\n // above.\n sink.error(err);\n }\n }\n\n /**\n * Used as a NON-CANCELLABLE means of subscribing to an observable, for use with\n * APIs that expect promises, like `async/await`. You cannot unsubscribe from this.\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * #### Example\n *\n * ```ts\n * import { interval, take } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(4));\n *\n * async function getTotal() {\n * let total = 0;\n *\n * await source$.forEach(value => {\n * total += value;\n * console.log('observable -> ' + value);\n * });\n *\n * return total;\n * }\n *\n * getTotal().then(\n * total => console.log('Total: ' + total)\n * );\n *\n * // Expected:\n * // 'observable -> 0'\n * // 'observable -> 1'\n * // 'observable -> 2'\n * // 'observable -> 3'\n * // 'Total: 6'\n * ```\n *\n * @param next a handler for each value emitted by the observable\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n */\n forEach(next: (value: T) => void): Promise;\n\n /**\n * @param next a handler for each value emitted by the observable\n * @param promiseCtor a constructor function used to instantiate the Promise\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n * @deprecated Passing a Promise constructor will no longer be available\n * in upcoming versions of RxJS. This is because it adds weight to the library, for very\n * little benefit. If you need this functionality, it is recommended that you either\n * polyfill Promise, or you create an adapter to convert the returned native promise\n * to whatever promise implementation you wanted. Will be removed in v8.\n */\n forEach(next: (value: T) => void, promiseCtor: PromiseConstructorLike): Promise;\n\n forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n const subscriber = new SafeSubscriber({\n next: (value) => {\n try {\n next(value);\n } catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n }) as Promise;\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): TeardownLogic {\n return this.source?.subscribe(subscriber);\n }\n\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @method Symbol.observable\n * @return {Observable} this instance of the observable\n */\n [Symbol_observable]() {\n return this;\n }\n\n /* tslint:disable:max-line-length */\n pipe(): Observable;\n pipe(op1: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction,\n ...operations: OperatorFunction[]\n ): Observable;\n /* tslint:enable:max-line-length */\n\n /**\n * Used to stitch together functional operators into a chain.\n * @method pipe\n * @return {Observable} the Observable result of all of the operators having\n * been called in the order they were passed in.\n *\n * ## Example\n *\n * ```ts\n * import { interval, filter, map, scan } from 'rxjs';\n *\n * interval(1000)\n * .pipe(\n * filter(x => x % 2 === 0),\n * map(x => x + x),\n * scan((acc, x) => acc + x)\n * )\n * .subscribe(x => console.log(x));\n * ```\n */\n pipe(...operations: OperatorFunction[]): Observable {\n return pipeFromArray(operations)(this);\n }\n\n /* tslint:disable:max-line-length */\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: typeof Promise): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: PromiseConstructorLike): Promise;\n /* tslint:enable:max-line-length */\n\n /**\n * Subscribe to this Observable and get a Promise resolving on\n * `complete` with the last emission (if any).\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * @method toPromise\n * @param [promiseCtor] a constructor function used to instantiate\n * the Promise\n * @return A Promise that resolves with the last value emit, or\n * rejects on an error. If there were no emissions, Promise\n * resolves with undefined.\n * @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise\n */\n toPromise(promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n let value: T | undefined;\n this.subscribe(\n (x: T) => (value = x),\n (err: any) => reject(err),\n () => resolve(value)\n );\n }) as Promise;\n }\n}\n\n/**\n * Decides between a passed promise constructor from consuming code,\n * A default configured promise constructor, and the native promise\n * constructor and returns it. If nothing can be found, it will throw\n * an error.\n * @param promiseCtor The optional promise constructor to passed by consuming code\n */\nfunction getPromiseCtor(promiseCtor: PromiseConstructorLike | undefined) {\n return promiseCtor ?? config.Promise ?? Promise;\n}\n\nfunction isObserver(value: any): value is Observer {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\n\nfunction isSubscriber(value: any): value is Subscriber {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n", "import { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction } from '../types';\nimport { isFunction } from './isFunction';\n\n/**\n * Used to determine if an object is an Observable with a lift function.\n */\nexport function hasLift(source: any): source is { lift: InstanceType['lift'] } {\n return isFunction(source?.lift);\n}\n\n/**\n * Creates an `OperatorFunction`. Used to define operators throughout the library in a concise way.\n * @param init The logic to connect the liftedSource to the subscriber at the moment of subscription.\n */\nexport function operate(\n init: (liftedSource: Observable, subscriber: Subscriber) => (() => void) | void\n): OperatorFunction {\n return (source: Observable) => {\n if (hasLift(source)) {\n return source.lift(function (this: Subscriber, liftedSource: Observable) {\n try {\n return init(liftedSource, this);\n } catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n", "import { Subscriber } from '../Subscriber';\n\n/**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional teardown logic here. This will only be called on teardown if the\n * subscriber itself is not already closed. This is called after all other teardown logic is executed.\n */\nexport function createOperatorSubscriber(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n onFinalize?: () => void\n): Subscriber {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\n\n/**\n * A generic helper for allowing operators to be created with a Subscriber and\n * use closures to capture necessary state from the operator function itself.\n */\nexport class OperatorSubscriber extends Subscriber {\n /**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional finalization logic here. This will only be called on finalization if the\n * subscriber itself is not already closed. This is called after all other finalization logic is executed.\n * @param shouldUnsubscribe An optional check to see if an unsubscribe call should truly unsubscribe.\n * NOTE: This currently **ONLY** exists to support the strange behavior of {@link groupBy}, where unsubscription\n * to the resulting observable does not actually disconnect from the source if there are active subscriptions\n * to any grouped observable. (DO NOT EXPOSE OR USE EXTERNALLY!!!)\n */\n constructor(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n private onFinalize?: () => void,\n private shouldUnsubscribe?: () => boolean\n ) {\n // It's important - for performance reasons - that all of this class's\n // members are initialized and that they are always initialized in the same\n // order. This will ensure that all OperatorSubscriber instances have the\n // same hidden class in V8. This, in turn, will help keep the number of\n // hidden classes involved in property accesses within the base class as\n // low as possible. If the number of hidden classes involved exceeds four,\n // the property accesses will become megamorphic and performance penalties\n // will be incurred - i.e. inline caches won't be used.\n //\n // The reasons for ensuring all instances have the same hidden class are\n // further discussed in this blog post from Benedikt Meurer:\n // https://benediktmeurer.de/2018/03/23/impact-of-polymorphism-on-component-based-frameworks-like-react/\n super(destination);\n this._next = onNext\n ? function (this: OperatorSubscriber, value: T) {\n try {\n onNext(value);\n } catch (err) {\n destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (this: OperatorSubscriber, err: any) {\n try {\n onError(err);\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._error;\n this._complete = onComplete\n ? function (this: OperatorSubscriber) {\n try {\n onComplete();\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._complete;\n }\n\n unsubscribe() {\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n const { closed } = this;\n super.unsubscribe();\n // Execute additional teardown if we have any and we didn't already do so.\n !closed && this.onFinalize?.();\n }\n }\n}\n", "import { Subscription } from '../Subscription';\n\ninterface AnimationFrameProvider {\n schedule(callback: FrameRequestCallback): Subscription;\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n delegate:\n | {\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n }\n | undefined;\n}\n\nexport const animationFrameProvider: AnimationFrameProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n schedule(callback) {\n let request = requestAnimationFrame;\n let cancel: typeof cancelAnimationFrame | undefined = cancelAnimationFrame;\n const { delegate } = animationFrameProvider;\n if (delegate) {\n request = delegate.requestAnimationFrame;\n cancel = delegate.cancelAnimationFrame;\n }\n const handle = request((timestamp) => {\n // Clear the cancel function. The request has been fulfilled, so\n // attempting to cancel the request upon unsubscription would be\n // pointless.\n cancel = undefined;\n callback(timestamp);\n });\n return new Subscription(() => cancel?.(handle));\n },\n requestAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.requestAnimationFrame || requestAnimationFrame)(...args);\n },\n cancelAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.cancelAnimationFrame || cancelAnimationFrame)(...args);\n },\n delegate: undefined,\n};\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface ObjectUnsubscribedError extends Error {}\n\nexport interface ObjectUnsubscribedErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (): ObjectUnsubscribedError;\n}\n\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nexport const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = createErrorClass(\n (_super) =>\n function ObjectUnsubscribedErrorImpl(this: any) {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n }\n);\n", "import { Operator } from './Operator';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { Observer, SubscriptionLike, TeardownLogic } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A Subject is a special type of Observable that allows values to be\n * multicasted to many Observers. Subjects are like EventEmitters.\n *\n * Every Subject is an Observable and an Observer. You can subscribe to a\n * Subject, and you can call next to feed values as well as error and complete.\n */\nexport class Subject extends Observable implements SubscriptionLike {\n closed = false;\n\n private currentObservers: Observer[] | null = null;\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n observers: Observer[] = [];\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n isStopped = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n hasError = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n thrownError: any = null;\n\n /**\n * Creates a \"subject\" by basically gluing an observer to an observable.\n *\n * @nocollapse\n * @deprecated Recommended you do not use. Will be removed at some point in the future. Plans for replacement still under discussion.\n */\n static create: (...args: any[]) => any = (destination: Observer, source: Observable): AnonymousSubject => {\n return new AnonymousSubject(destination, source);\n };\n\n constructor() {\n // NOTE: This must be here to obscure Observable's constructor.\n super();\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n lift(operator: Operator): Observable {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator as any;\n return subject as any;\n }\n\n /** @internal */\n protected _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n\n next(value: T) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n if (!this.currentObservers) {\n this.currentObservers = Array.from(this.observers);\n }\n for (const observer of this.currentObservers) {\n observer.next(value);\n }\n }\n });\n }\n\n error(err: any) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.error(err);\n }\n }\n });\n }\n\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.complete();\n }\n }\n });\n }\n\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null!;\n }\n\n get observed() {\n return this.observers?.length > 0;\n }\n\n /** @internal */\n protected _trySubscribe(subscriber: Subscriber): TeardownLogic {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n\n /** @internal */\n protected _innerSubscribe(subscriber: Subscriber) {\n const { hasError, isStopped, observers } = this;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(() => {\n this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n }\n\n /** @internal */\n protected _checkFinalizedStatuses(subscriber: Subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n } else if (isStopped) {\n subscriber.complete();\n }\n }\n\n /**\n * Creates a new Observable with this Subject as the source. You can do this\n * to create custom Observer-side logic of the Subject and conceal it from\n * code that uses the Observable.\n * @return {Observable} Observable that the Subject casts to\n */\n asObservable(): Observable {\n const observable: any = new Observable();\n observable.source = this;\n return observable;\n }\n}\n\n/**\n * @class AnonymousSubject\n */\nexport class AnonymousSubject extends Subject {\n constructor(\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n public destination?: Observer,\n source?: Observable\n ) {\n super();\n this.source = source;\n }\n\n next(value: T) {\n this.destination?.next?.(value);\n }\n\n error(err: any) {\n this.destination?.error?.(err);\n }\n\n complete() {\n this.destination?.complete?.();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n return this.source?.subscribe(subscriber) ?? EMPTY_SUBSCRIPTION;\n }\n}\n", "import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\n\n/**\n * A variant of Subject that requires an initial value and emits its current\n * value whenever it is subscribed to.\n *\n * @class BehaviorSubject\n */\nexport class BehaviorSubject extends Subject {\n constructor(private _value: T) {\n super();\n }\n\n get value(): T {\n return this.getValue();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n const subscription = super._subscribe(subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n }\n\n getValue(): T {\n const { hasError, thrownError, _value } = this;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n }\n\n next(value: T): void {\n super.next((this._value = value));\n }\n}\n", "import { TimestampProvider } from '../types';\n\ninterface DateTimestampProvider extends TimestampProvider {\n delegate: TimestampProvider | undefined;\n}\n\nexport const dateTimestampProvider: DateTimestampProvider = {\n now() {\n // Use the variable rather than `this` so that the function can be called\n // without being bound to the provider.\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n", "import { Subject } from './Subject';\nimport { TimestampProvider } from './types';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * A variant of {@link Subject} that \"replays\" old values to new subscribers by emitting them when they first subscribe.\n *\n * `ReplaySubject` has an internal buffer that will store a specified number of values that it has observed. Like `Subject`,\n * `ReplaySubject` \"observes\" values by having them passed to its `next` method. When it observes a value, it will store that\n * value for a time determined by the configuration of the `ReplaySubject`, as passed to its constructor.\n *\n * When a new subscriber subscribes to the `ReplaySubject` instance, it will synchronously emit all values in its buffer in\n * a First-In-First-Out (FIFO) manner. The `ReplaySubject` will also complete, if it has observed completion; and it will\n * error if it has observed an error.\n *\n * There are two main configuration items to be concerned with:\n *\n * 1. `bufferSize` - This will determine how many items are stored in the buffer, defaults to infinite.\n * 2. `windowTime` - The amount of time to hold a value in the buffer before removing it from the buffer.\n *\n * Both configurations may exist simultaneously. So if you would like to buffer a maximum of 3 values, as long as the values\n * are less than 2 seconds old, you could do so with a `new ReplaySubject(3, 2000)`.\n *\n * ### Differences with BehaviorSubject\n *\n * `BehaviorSubject` is similar to `new ReplaySubject(1)`, with a couple of exceptions:\n *\n * 1. `BehaviorSubject` comes \"primed\" with a single value upon construction.\n * 2. `ReplaySubject` will replay values, even after observing an error, where `BehaviorSubject` will not.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n * @see {@link shareReplay}\n */\nexport class ReplaySubject extends Subject {\n private _buffer: (T | number)[] = [];\n private _infiniteTimeWindow = true;\n\n /**\n * @param bufferSize The size of the buffer to replay on subscription\n * @param windowTime The amount of time the buffered items will stay buffered\n * @param timestampProvider An object with a `now()` method that provides the current timestamp. This is used to\n * calculate the amount of time something has been buffered.\n */\n constructor(\n private _bufferSize = Infinity,\n private _windowTime = Infinity,\n private _timestampProvider: TimestampProvider = dateTimestampProvider\n ) {\n super();\n this._infiniteTimeWindow = _windowTime === Infinity;\n this._bufferSize = Math.max(1, _bufferSize);\n this._windowTime = Math.max(1, _windowTime);\n }\n\n next(value: T): void {\n const { isStopped, _buffer, _infiniteTimeWindow, _timestampProvider, _windowTime } = this;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n super.next(value);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._trimBuffer();\n\n const subscription = this._innerSubscribe(subscriber);\n\n const { _infiniteTimeWindow, _buffer } = this;\n // We use a copy here, so reentrant code does not mutate our array while we're\n // emitting it to a new subscriber.\n const copy = _buffer.slice();\n for (let i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i] as T);\n }\n\n this._checkFinalizedStatuses(subscriber);\n\n return subscription;\n }\n\n private _trimBuffer() {\n const { _bufferSize, _timestampProvider, _buffer, _infiniteTimeWindow } = this;\n // If we don't have an infinite buffer size, and we're over the length,\n // use splice to truncate the old buffer values off. Note that we have to\n // double the size for instances where we're not using an infinite time window\n // because we're storing the values and the timestamps in the same array.\n const adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n\n // Now, if we're not in an infinite time window, remove all values where the time is\n // older than what is allowed.\n if (!_infiniteTimeWindow) {\n const now = _timestampProvider.now();\n let last = 0;\n // Search the array for the first timestamp that isn't expired and\n // truncate the buffer up to that point.\n for (let i = 1; i < _buffer.length && (_buffer[i] as number) <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Subscription } from '../Subscription';\nimport { SchedulerAction } from '../types';\n\n/**\n * A unit of work to be executed in a `scheduler`. An action is typically\n * created from within a {@link SchedulerLike} and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action extends Subscription {\n * new (scheduler: Scheduler, work: (state?: T) => void);\n * schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n *\n * @class Action\n */\nexport class Action extends Subscription {\n constructor(scheduler: Scheduler, work: (this: SchedulerAction, state?: T) => void) {\n super();\n }\n /**\n * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed\n * some context object, `state`. May happen at some point in the future,\n * according to the `delay` parameter, if specified.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler.\n * @return {void}\n */\n public schedule(state?: T, delay: number = 0): Subscription {\n return this;\n }\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetIntervalFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearIntervalFunction = (handle: TimerHandle) => void;\n\ninterface IntervalProvider {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n delegate:\n | {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n }\n | undefined;\n}\n\nexport const intervalProvider: IntervalProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setInterval(handler: () => void, timeout?: number, ...args) {\n const { delegate } = intervalProvider;\n if (delegate?.setInterval) {\n return delegate.setInterval(handler, timeout, ...args);\n }\n return setInterval(handler, timeout, ...args);\n },\n clearInterval(handle) {\n const { delegate } = intervalProvider;\n return (delegate?.clearInterval || clearInterval)(handle as any);\n },\n delegate: undefined,\n};\n", "import { Action } from './Action';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncAction extends Action {\n public id: TimerHandle | undefined;\n public state?: T;\n // @ts-ignore: Property has no initializer and is not definitely assigned\n public delay: number;\n protected pending: boolean = false;\n\n constructor(protected scheduler: AsyncScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (this.closed) {\n return this;\n }\n\n // Always replace the current state with the new state.\n this.state = state;\n\n const id = this.id;\n const scheduler = this.scheduler;\n\n //\n // Important implementation note:\n //\n // Actions only execute once by default, unless rescheduled from within the\n // scheduled callback. This allows us to implement single and repeat\n // actions via the same code path, without adding API surface area, as well\n // as mimic traditional recursion but across asynchronous boundaries.\n //\n // However, JS runtimes and timers distinguish between intervals achieved by\n // serial `setTimeout` calls vs. a single `setInterval` call. An interval of\n // serial `setTimeout` calls can be individually delayed, which delays\n // scheduling the next `setTimeout`, and so on. `setInterval` attempts to\n // guarantee the interval callback will be invoked more precisely to the\n // interval period, regardless of load.\n //\n // Therefore, we use `setInterval` to schedule single and repeat actions.\n // If the action reschedules itself with the same delay, the interval is not\n // canceled. If the action doesn't reschedule, or reschedules with a\n // different delay, the interval will be canceled after scheduled callback\n // execution.\n //\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n\n // Set the pending flag indicating that this action has been scheduled, or\n // has recursively rescheduled itself.\n this.pending = true;\n\n this.delay = delay;\n // If this action has already an async Id, don't request a new one.\n this.id = this.id ?? this.requestAsyncId(scheduler, this.id, delay);\n\n return this;\n }\n\n protected requestAsyncId(scheduler: AsyncScheduler, _id?: TimerHandle, delay: number = 0): TimerHandle {\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n\n protected recycleAsyncId(_scheduler: AsyncScheduler, id?: TimerHandle, delay: number | null = 0): TimerHandle | undefined {\n // If this action is rescheduled with the same delay time, don't clear the interval id.\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n // Otherwise, if the action's delay time is different from the current delay,\n // or the action has been rescheduled before it's executed, clear the interval id\n if (id != null) {\n intervalProvider.clearInterval(id);\n }\n\n return undefined;\n }\n\n /**\n * Immediately executes this action and the `work` it contains.\n * @return {any}\n */\n public execute(state: T, delay: number): any {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n } else if (this.pending === false && this.id != null) {\n // Dequeue if the action didn't reschedule itself. Don't call\n // unsubscribe(), because the action could reschedule later.\n // For example:\n // ```\n // scheduler.schedule(function doWork(counter) {\n // /* ... I'm a busy worker bee ... */\n // var originalAction = this;\n // /* wait 100ms before rescheduling the action */\n // setTimeout(function () {\n // originalAction.schedule(counter + 1);\n // }, 100);\n // }, 1000);\n // ```\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n\n protected _execute(state: T, _delay: number): any {\n let errored: boolean = false;\n let errorValue: any;\n try {\n this.work(state);\n } catch (e) {\n errored = true;\n // HACK: Since code elsewhere is relying on the \"truthiness\" of the\n // return here, we can't have it return \"\" or 0 or false.\n // TODO: Clean this up when we refactor schedulers mid-version-8 or so.\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n\n unsubscribe() {\n if (!this.closed) {\n const { id, scheduler } = this;\n const { actions } = scheduler;\n\n this.work = this.state = this.scheduler = null!;\n this.pending = false;\n\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n\n this.delay = null!;\n super.unsubscribe();\n }\n }\n}\n", "import { Action } from './scheduler/Action';\nimport { Subscription } from './Subscription';\nimport { SchedulerLike, SchedulerAction } from './types';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an `Action`.\n *\n * ```ts\n * class Scheduler {\n * now(): number;\n * schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @class Scheduler\n * @deprecated Scheduler is an internal implementation detail of RxJS, and\n * should not be used directly. Rather, create your own class and implement\n * {@link SchedulerLike}. Will be made internal in v8.\n */\nexport class Scheduler implements SchedulerLike {\n public static now: () => number = dateTimestampProvider.now;\n\n constructor(private schedulerActionCtor: typeof Action, now: () => number = Scheduler.now) {\n this.now = now;\n }\n\n /**\n * A getter method that returns a number representing the current time\n * (at the time this function was called) according to the scheduler's own\n * internal clock.\n * @return {number} A number that represents the current time. May or may not\n * have a relation to wall-clock time. May or may not refer to a time unit\n * (e.g. milliseconds).\n */\n public now: () => number;\n\n /**\n * Schedules a function, `work`, for execution. May happen at some point in\n * the future, according to the `delay` parameter, if specified. May be passed\n * some context object, `state`, which will be passed to the `work` function.\n *\n * The given arguments will be processed an stored as an Action object in a\n * queue of actions.\n *\n * @param {function(state: ?T): ?Subscription} work A function representing a\n * task, or some unit of work to be executed by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler itself.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @return {Subscription} A subscription in order to be able to unsubscribe\n * the scheduled work.\n */\n public schedule(work: (this: SchedulerAction, state?: T) => void, delay: number = 0, state?: T): Subscription {\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Action } from './Action';\nimport { AsyncAction } from './AsyncAction';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncScheduler extends Scheduler {\n public actions: Array> = [];\n /**\n * A flag to indicate whether the Scheduler is currently executing a batch of\n * queued actions.\n * @type {boolean}\n * @internal\n */\n public _active: boolean = false;\n /**\n * An internal ID used to track the latest asynchronous task such as those\n * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n * others.\n * @type {any}\n * @internal\n */\n public _scheduled: TimerHandle | undefined;\n\n constructor(SchedulerAction: typeof Action, now: () => number = Scheduler.now) {\n super(SchedulerAction, now);\n }\n\n public flush(action: AsyncAction): void {\n const { actions } = this;\n\n if (this._active) {\n actions.push(action);\n return;\n }\n\n let error: any;\n this._active = true;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()!)); // exhaust the scheduler queue\n\n this._active = false;\n\n if (error) {\n while ((action = actions.shift()!)) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n *\n * Async Scheduler\n *\n * Schedule task as if you used setTimeout(task, duration)\n *\n * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript\n * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating\n * in intervals.\n *\n * If you just want to \"defer\" task, that is to perform it right after currently\n * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),\n * better choice will be the {@link asapScheduler} scheduler.\n *\n * ## Examples\n * Use async scheduler to delay task\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * const task = () => console.log('it works!');\n *\n * asyncScheduler.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n * ```\n *\n * Use async scheduler to repeat task in intervals\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * function task(state) {\n * console.log(state);\n * this.schedule(state + 1, 1000); // `this` references currently executing Action,\n * // which we reschedule with new state and delay\n * }\n *\n * asyncScheduler.schedule(task, 3000, 0);\n *\n * // Logs:\n * // 0 after 3s\n * // 1 after 4s\n * // 2 after 5s\n * // 3 after 6s\n * ```\n */\n\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\n\n/**\n * @deprecated Renamed to {@link asyncScheduler}. Will be removed in v8.\n */\nexport const async = asyncScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { QueueScheduler } from './QueueScheduler';\nimport { SchedulerAction } from '../types';\nimport { TimerHandle } from './timerHandle';\n\nexport class QueueAction extends AsyncAction {\n constructor(protected scheduler: QueueScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (delay > 0) {\n return super.schedule(state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n }\n\n public execute(state: T, delay: number): any {\n return delay > 0 || this.closed ? super.execute(state, delay) : this._execute(state, delay);\n }\n\n protected requestAsyncId(scheduler: QueueScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n\n if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n\n // Otherwise flush the scheduler starting with this action.\n scheduler.flush(this);\n\n // HACK: In the past, this was returning `void`. However, `void` isn't a valid\n // `TimerHandle`, and generally the return value here isn't really used. So the\n // compromise is to return `0` which is both \"falsy\" and a valid `TimerHandle`,\n // as opposed to refactoring every other instanceo of `requestAsyncId`.\n return 0;\n }\n}\n", "import { AsyncScheduler } from './AsyncScheduler';\n\nexport class QueueScheduler extends AsyncScheduler {\n}\n", "import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\n\n/**\n *\n * Queue Scheduler\n *\n * Put every next task on a queue, instead of executing it immediately\n *\n * `queue` scheduler, when used with delay, behaves the same as {@link asyncScheduler} scheduler.\n *\n * When used without delay, it schedules given task synchronously - executes it right when\n * it is scheduled. However when called recursively, that is when inside the scheduled task,\n * another task is scheduled with queue scheduler, instead of executing immediately as well,\n * that task will be put on a queue and wait for current one to finish.\n *\n * This means that when you execute task with `queue` scheduler, you are sure it will end\n * before any other task scheduled with that scheduler will start.\n *\n * ## Examples\n * Schedule recursively first, then do something\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(() => {\n * queueScheduler.schedule(() => console.log('second')); // will not happen now, but will be put on a queue\n *\n * console.log('first');\n * });\n *\n * // Logs:\n * // \"first\"\n * // \"second\"\n * ```\n *\n * Reschedule itself recursively\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(function(state) {\n * if (state !== 0) {\n * console.log('before', state);\n * this.schedule(state - 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * console.log('after', state);\n * }\n * }, 0, 3);\n *\n * // In scheduler that runs recursively, you would expect:\n * // \"before\", 3\n * // \"before\", 2\n * // \"before\", 1\n * // \"after\", 1\n * // \"after\", 2\n * // \"after\", 3\n *\n * // But with queue it logs:\n * // \"before\", 3\n * // \"after\", 3\n * // \"before\", 2\n * // \"after\", 2\n * // \"before\", 1\n * // \"after\", 1\n * ```\n */\n\nexport const queueScheduler = new QueueScheduler(QueueAction);\n\n/**\n * @deprecated Renamed to {@link queueScheduler}. Will be removed in v8.\n */\nexport const queue = queueScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nimport { SchedulerAction } from '../types';\nimport { animationFrameProvider } from './animationFrameProvider';\nimport { TimerHandle } from './timerHandle';\n\nexport class AnimationFrameAction extends AsyncAction {\n constructor(protected scheduler: AnimationFrameScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n protected requestAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay is greater than 0, request as an async action.\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n // Push the action to the end of the scheduler queue.\n scheduler.actions.push(this);\n // If an animation frame has already been requested, don't request another\n // one. If an animation frame hasn't been requested yet, request one. Return\n // the current animation frame request id.\n return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(() => scheduler.flush(undefined)));\n }\n\n protected recycleAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle | undefined {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if (delay != null ? delay > 0 : this.delay > 0) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n // If the scheduler queue has no remaining actions with the same async id,\n // cancel the requested animation frame and set the scheduled flag to\n // undefined so the next AnimationFrameAction will request its own.\n const { actions } = scheduler;\n if (id != null && actions[actions.length - 1]?.id !== id) {\n animationFrameProvider.cancelAnimationFrame(id as number);\n scheduler._scheduled = undefined;\n }\n // Return undefined so the action knows to request a new async id if it's rescheduled.\n return undefined;\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\nexport class AnimationFrameScheduler extends AsyncScheduler {\n public flush(action?: AsyncAction): void {\n this._active = true;\n // The async id that effects a call to flush is stored in _scheduled.\n // Before executing an action, it's necessary to check the action's async\n // id to determine whether it's supposed to be executed in the current\n // flush.\n // Previous implementations of this method used a count to determine this,\n // but that was unsound, as actions that are unsubscribed - i.e. cancelled -\n // are removed from the actions array and that can shift actions that are\n // scheduled to be executed in a subsequent flush into positions at which\n // they are executed within the current flush.\n const flushId = this._scheduled;\n this._scheduled = undefined;\n\n const { actions } = this;\n let error: any;\n action = action || actions.shift()!;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n\n this._active = false;\n\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\n\n/**\n *\n * Animation Frame Scheduler\n *\n * Perform task when `window.requestAnimationFrame` would fire\n *\n * When `animationFrame` scheduler is used with delay, it will fall back to {@link asyncScheduler} scheduler\n * behaviour.\n *\n * Without delay, `animationFrame` scheduler can be used to create smooth browser animations.\n * It makes sure scheduled task will happen just before next browser content repaint,\n * thus performing animations as efficiently as possible.\n *\n * ## Example\n * Schedule div height animation\n * ```ts\n * // html:

\n * import { animationFrameScheduler } from 'rxjs';\n *\n * const div = document.querySelector('div');\n *\n * animationFrameScheduler.schedule(function(height) {\n * div.style.height = height + \"px\";\n *\n * this.schedule(height + 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * }, 0, 0);\n *\n * // You will see a div element growing in height\n * ```\n */\n\nexport const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\n\n/**\n * @deprecated Renamed to {@link animationFrameScheduler}. Will be removed in v8.\n */\nexport const animationFrame = animationFrameScheduler;\n", "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n\n/**\n * A simple Observable that emits no items to the Observer and immediately\n * emits a complete notification.\n *\n * Just emits 'complete', and nothing else.\n *\n * ![](empty.png)\n *\n * A simple Observable that only emits the complete notification. It can be used\n * for composing with other Observables, such as in a {@link mergeMap}.\n *\n * ## Examples\n *\n * Log complete notification\n *\n * ```ts\n * import { EMPTY } from 'rxjs';\n *\n * EMPTY.subscribe({\n * next: () => console.log('Next'),\n * complete: () => console.log('Complete!')\n * });\n *\n * // Outputs\n * // Complete!\n * ```\n *\n * Emit the number 7, then complete\n *\n * ```ts\n * import { EMPTY, startWith } from 'rxjs';\n *\n * const result = EMPTY.pipe(startWith(7));\n * result.subscribe(x => console.log(x));\n *\n * // Outputs\n * // 7\n * ```\n *\n * Map and flatten only odd numbers to the sequence `'a'`, `'b'`, `'c'`\n *\n * ```ts\n * import { interval, mergeMap, of, EMPTY } from 'rxjs';\n *\n * const interval$ = interval(1000);\n * const result = interval$.pipe(\n * mergeMap(x => x % 2 === 1 ? of('a', 'b', 'c') : EMPTY),\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following to the console:\n * // x is equal to the count on the interval, e.g. (0, 1, 2, 3, ...)\n * // x will occur every 1000ms\n * // if x % 2 is equal to 1, print a, b, c (each on its own)\n * // if x % 2 is not equal to 1, nothing will be output\n * ```\n *\n * @see {@link Observable}\n * @see {@link NEVER}\n * @see {@link of}\n * @see {@link throwError}\n */\nexport const EMPTY = new Observable((subscriber) => subscriber.complete());\n\n/**\n * @param scheduler A {@link SchedulerLike} to use for scheduling\n * the emission of the complete notification.\n * @deprecated Replaced with the {@link EMPTY} constant or {@link scheduled} (e.g. `scheduled([], scheduler)`). Will be removed in v8.\n */\nexport function empty(scheduler?: SchedulerLike) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\n\nfunction emptyScheduled(scheduler: SchedulerLike) {\n return new Observable((subscriber) => scheduler.schedule(() => subscriber.complete()));\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport function isScheduler(value: any): value is SchedulerLike {\n return value && isFunction(value.schedule);\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\n\nfunction last(arr: T[]): T | undefined {\n return arr[arr.length - 1];\n}\n\nexport function popResultSelector(args: any[]): ((...args: unknown[]) => unknown) | undefined {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\n\nexport function popScheduler(args: any[]): SchedulerLike | undefined {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\n\nexport function popNumber(args: any[], defaultValue: number): number {\n return typeof last(args) === 'number' ? args.pop()! : defaultValue;\n}\n", "export const isArrayLike = ((x: any): x is ArrayLike => x && typeof x.length === 'number' && typeof x !== 'function');", "import { isFunction } from \"./isFunction\";\n\n/**\n * Tests to see if the object is \"thennable\".\n * @param value the object to test\n */\nexport function isPromise(value: any): value is PromiseLike {\n return isFunction(value?.then);\n}\n", "import { InteropObservable } from '../types';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being Observable (but not necessary an Rx Observable) */\nexport function isInteropObservable(input: any): input is InteropObservable {\n return isFunction(input[Symbol_observable]);\n}\n", "import { isFunction } from './isFunction';\n\nexport function isAsyncIterable(obj: any): obj is AsyncIterable {\n return Symbol.asyncIterator && isFunction(obj?.[Symbol.asyncIterator]);\n}\n", "/**\n * Creates the TypeError to throw if an invalid object is passed to `from` or `scheduled`.\n * @param input The object that was passed.\n */\nexport function createInvalidObservableTypeError(input: any) {\n // TODO: We should create error codes that can be looked up, so this can be less verbose.\n return new TypeError(\n `You provided ${\n input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`\n } where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`\n );\n}\n", "export function getSymbolIterator(): symbol {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator' as any;\n }\n\n return Symbol.iterator;\n}\n\nexport const iterator = getSymbolIterator();\n", "import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being an Iterable */\nexport function isIterable(input: any): input is Iterable {\n return isFunction(input?.[Symbol_iterator]);\n}\n", "import { ReadableStreamLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport async function* readableStreamLikeToAsyncGenerator(readableStream: ReadableStreamLike): AsyncGenerator {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n return;\n }\n yield value!;\n }\n } finally {\n reader.releaseLock();\n }\n}\n\nexport function isReadableStreamLike(obj: any): obj is ReadableStreamLike {\n // We don't want to use instanceof checks because they would return\n // false for instances from another Realm, like an + + + +

+
https://www.youtube.com/EMBED/videoID
The Working Solution, responsive: `iframe in div with css`:  
+<div class='video-container'> <!--(1)!-->
+  <iframe src='https://www.youtube.com/embed/CF6ZGbz59gE' allowfullscreen></iframe>
+</div>
+
+
    +
  1. add /embed/ to the code
  2. +
+

The Working Solution, responsive: iframe in div with css:

+
+ +
+ +

Pdf

+
embedding pdf
<iframe src='../assets/pdf/poster_mi24_final.pdf' width=100% height=700px>This browser does not support PDFs. Please download the PDF to view it: <a href='../assets/pdf/poster_mi24_final.pdf'>Download PDF</a>
+</iframe>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..06da1fc --- /dev/null +++ b/index.html @@ -0,0 +1,720 @@ + + + + + + + + + + + + + + + + + + + + + Home - MkDocs-material Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + + + +
+
+
+ + + + +
+
+ + + + + + + + + + + + + + + + + + + + +

Using Mkdocs-material for learning material: a documentation

+


+Welcome to the documentation page for learning material using Mkdocs-material!

+

Overview

+

The Overview page highlights:
+- a quick introduction,
+- links to external documentations,
+- examples,
+- and template
+for setting up a new project.

+

Setting up

+

The Setting up page provides basic commands and setting for:
+- the functionality
+- and appearance
+of a page.

+

Editing a page

+

In the Editing a page, there are links or examples of using
+- icons,
+- flowchart,
+- admonitions,
+- video,
+- pdf etc.
+in a page.

+

Code blocks

+

The Code blocks page discusses
+- building of code block
+- line numbering,
+- syntax highlight,
+- note etc.
+for educational purpose.

+ + + + + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/js/custom.js b/js/custom.js new file mode 100644 index 0000000..0b3d572 --- /dev/null +++ b/js/custom.js @@ -0,0 +1,30 @@ +// creating the Feedback Email button auxiliary to the Search box in the header +document.addEventListener('DOMContentLoaded', function() { + const ellipsisContainer = document.querySelector('.md-search'); + if (ellipsisContainer) { + const mailtoLink = document.createElement('a'); + mailtoLink.href = '#'; + mailtoLink.classList.add('custom-email-link'); + + // Create a text node saying 'Feedback'' + const textNode = document.createTextNode('Feedback'); + + // Create an icon element + const icon = document.createElement('i'); + icon.classList.add('fa-regular', 'fa-envelope'); + icon.setAttribute('aria-hidden', 'true'); + + // Append the icon and text node to the link element + mailtoLink.appendChild(icon); + mailtoLink.appendChild(textNode); + + mailtoLink.addEventListener('click', function(event) { + event.preventDefault(); + const subject = 'HAMK New BYOD feedback'; + const body = `I have some feedback about the page titled: ${document.title} at the URL: ${window.location.href}`; + const mailtoURL = `mailto:firstname.lastname@hamk.fi?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`; + window.location.href = mailtoURL; + }); + ellipsisContainer.appendChild(mailtoLink); + } +}); diff --git a/overview/index.html b/overview/index.html new file mode 100644 index 0000000..83ed393 --- /dev/null +++ b/overview/index.html @@ -0,0 +1,793 @@ + + + + + + + + + + + + + + + + + + + + + + + Overview - MkDocs-material Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + + + +
+
+
+ + + + +
+
+ + + + + + + + + + + + + + + + + + + + +

Overview

+

Documentation

+

This Documentation is a quick guide for the most frequently used features in this template.
+- It is a collection of the most used features from MkDocs-material for the learning materials at HAMK.
+Mkdocs has a powerful search function.
+- Please use the search box ⬆ (in the header) to find a setting.
+- If the topic not included in this site, please refer to the full documentation from Mkdocs-material below.

+

MkDocs(-material) external documentation

+

+ - MkDocs-material ( + + Getting started + | + + Setup + | + + Reference + | +Plugins)
+ + - MkDocs-material Repository +
+ + - https://www.mkdocs.org/ +
+ + - https://github.com/mkdocs/catalog +
+- Markdown Extensions

+

Template

+
    +
  • The Template is prebuilt with HAMK colors and fonts, available for customization with your content.
  • +
+

Email placeholder

+
+ in the template, replace firstname.lastname@hamk.fi with your email +

Replace the placeholder firstname.lastname@hamk.fi with your own email in 2 places
+- Refer to the documentation setting up

+
+

Example pages

+
    +
  • The BYOD page is an example of applying Mkdocs-material to the BYOD content.
  • +
  • This page itself is an example of using mkdocs-material.
  • +
+ +

Mkdocs-material has a strong search function.
+Search for a tool or setting. If not covered in this documentation, look for it in the full documentations

+ +
+

Tip

+

Search 'nav' or 'toc' for setting.
+Search 'integrate' for how to integrate the toc to the nav.

+
+

See more in setting up
+- The left-side menu is called nav (navigation)
+- The right-side menu is called the toc (table of content)
+ - For small pages (such as this one), the toc can be integrated into the nav (search integrate for guidance)

+ + + + + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/search/search_index.json b/search/search_index.json new file mode 100644 index 0000000..c20f1d6 --- /dev/null +++ b/search/search_index.json @@ -0,0 +1 @@ +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Using Mkdocs-material for learning material: a documentation","text":"

Welcome to the documentation page for learning material using Mkdocs-material!

"},{"location":"#overview","title":"Overview","text":"

The Overview page highlights: - a quick introduction, - links to external documentations, - examples, - and template for setting up a new project.

"},{"location":"#setting-up","title":"Setting up","text":"

The Setting up page provides basic commands and setting for: - the functionality - and appearance of a page.

"},{"location":"#editing-a-page","title":"Editing a page","text":"

In the Editing a page, there are links or examples of using - icons, - flowchart, - admonitions, - video, - pdf etc. in a page.

"},{"location":"#code-blocks","title":"Code blocks","text":"

The Code blocks page discusses - building of code block - line numbering, - syntax highlight, - note etc. for educational purpose.

"},{"location":"codeBlocks/","title":"Code blocks","text":""},{"location":"codeBlocks/#making-code-blocks","title":"Making Code blocks","text":"

!!! Making code blocks with 3 backticks ``` better supported (more features) than by indentation.

documentation: Code block

Documentation for code blocks

"},{"location":"codeBlocks/#code-copy-and-paste","title":"Code copy and paste","text":"

documentation: Code copy button

MkDocs-material Code copy button

mkdocs.yml
theme:\n  features:\n    - content.code.copy\n
"},{"location":"codeBlocks/#code-line-numbering","title":"Code line numbering","text":"

documentation: adding line number for the code blocks by ```

MkDocs-material Adding line numbers This add line numbers to specific blocks with this only.

linenums=\"1\" // (1)!\n

  1. add this code after the 3 backtick (e.g. ``` linenums=\"1\")

adding line number for the code blocks by indentation

Method for adding line numbers different for the case of code block by indentation (4 indents in each line). Add the following code to mkdocs.yml

Warning

This option will add line numbers to all code blocks. To selectively add line numbers to a particular blocks, use the above method. mkdocs.yml

markdown_extensions:\n  - codehilite:\n    linenums: true # this is required for the code block by indentation only\n

"},{"location":"codeBlocks/#highlight-entire-row-of-code","title":"Highlight entire row of code","text":"

documentation

MkDocs-material Code highlighting

hl_lines=\"3-5 11 13\" // (1)!\n// this will highlight lines 3, 4, 5, 11 and 13\n
  1. add this code after the 3 backticks (``` hl_lines=\"3-5 11 13\")
example with lines 3-5 11 13
# Code block with ``` (3 backticks)\n# for line numbering: linenums=\"1\", to highlight lines: hl_lines=\"3-5 11 13\"\nmkdocs.yml    # The configuration file.\ndocs/\n   index.md  # The documentation homepage.\n   ...       # Other markdown pages, images and other files.\n# useful links:\nhamk.fi\ngithub.com\n# comment\nthe 11th line is highlighted\n# comment\nreplace the following with your own 'username' and 'password'\n
"},{"location":"codeBlocks/#in-line-highlight","title":"In line highlight","text":"

documentation

MkDocs-material Highlighting inline code blocks

mkdocs.yml
markdown_extensions:\n  - pymdownx.highlight:\n    anchor_linenums: true\n  - pymdownx.inlinhilite # in line highlight\n  - pymdownx.snipets\n

Examples of inline highlight (inlinehilite): 1. Here is some code: import pymdownx; pymdownx.__version__. 2. The python range() function is used to generate a sequence of numbers. 2b. The python range() function is used to generate a sequence of numbers. 3. The mock shebang will be treated like code here: var text = 'HAMK';. 3b. The mock shebang will be treated like text here: #!js var text = 'HAMK';. 4. Do not expose your password.

"},{"location":"codeBlocks/#syntax-highlight","title":"Syntax highlight","text":"

documentation

  1. MkDocs-material Syntax Highlighting
  2. details in MkDocs-material Python Markdown Extensions Highlight
  3. A 'solution' work around for php
  4. FacelessUser Syntax InlineHilite
  5. For bash, see the discussions/6504
  6. SR Linux Syntax Highlighting with Pygments
  7. Cusomization Pygments with MkDocs-material Custom syntax theme
mkdocs.yml
markdown_extensions:\n  - pymdownx.highlight\n  - pymdownx.inlinehilite\n
the following is not currently used in this project
#markdown_extensions:\n#  - pymdownx.highlight:\n#      anchor_linenums: true\n#      line_spans: __span\n#      use_pygments: true\n#      pygments_lang_class: true\n
"},{"location":"codeBlocks/#bash-suboptimal","title":"bash (suboptimal)","text":"

Currently bash highlighted but suboptimal Start at this discussion 6504 on bash/sh/shell codeblock syntax highlight Bash

# this is bash\nwsl --set-default-version 2\nwsl --list --verbose\n\nwsl -u root -d Ubuntu-24.04 bash -c \"touch /etc/wsl.conf\"\nwsl -u root -d Ubuntu-24.04 bash -c \"echo [boot] >> /etc/wsl.conf\" \nwsl -u root -d Ubuntu-24.04 bash -c \"echo systemd=true >> /etc/wsl.conf\" \nwsl -t Ubuntu-24.04\n\nwsl --export Ubuntu \"G:\\My Drive\\Ubuntu_wsl_backup_24.04.tar\"\n\n#!/bin/bash\necho \"Today is \" `date`\necho -e \"\\nenter the path to directory\"\nread the_path\necho -e \"\\n you path has the following files and folders: \"\nls $the_path\n

"},{"location":"codeBlocks/#css","title":"css \u2713","text":"CSS
/*this is css*/\n/*HAMK branding colors*/\n.md-header {\n    background-color: #003755;\n    scrollbar-color: #7300F0;\n}\n\n/*this is correct, do not remove it*/\n\n.md-tabs {\n    background-color: #7300F0;\n}\n
"},{"location":"codeBlocks/#html-js","title":"html (& js) \u2713","text":"HTML
<!-- this is html -->\n<!DOCTYPE html>\n<html>\n<body>\n<h1>My First Web Page</h1>\n<p id=\"demo\">My First Paragraph</p>\n<script>\ndocument.getElementById(\"demo\").innerHTML = 5 + 6;\n</script>\n</body>\n</html>\n
"},{"location":"codeBlocks/#java","title":"java \u2713","text":"Java
// this is java\npublic class Main {\n  public static void main(String[] args) {\n    System.out.println(\"Hello World\");\n  }\n}\n
"},{"location":"codeBlocks/#js","title":"js \u2713","text":"JavaScript
// this is js\ndocument.getElementById(\"demo\").innerHTML = \"Hello JavaScript\";\n
"},{"location":"codeBlocks/#json","title":"json \u2713","text":"JSON
{\n\"name\": \"Your Name\",\n\"school\": \"HAMK\"\n}\n
"},{"location":"codeBlocks/#php-suboptimal","title":"php (suboptimal)","text":"

Currently, php highlighted but required <? 'Solution': work around for php

PHP
// this is php //(1)! //This annotation is not enabled\necho \"Hello, world!\";\nfunction myMessage() {\n  echo \"Hello world!\";\n}\nmyMessage();\n\n// the same code below\n// until <? //(2)! //This annotation is enabled thanks to the php opening tag\necho \"Hello, world!\";\nfunction myMessage() {\n  echo \"Hello world!\";\n}\nmyMessage();\n
  1. (1) This annotation is not enabled
  2. (2) The code in lines 2-6 are not highlighted. The same code, lines 10-14, are higlighted thanks to the [short] opening PHP tag <?, even commented as in line 9. Missing the tag also inactivates the annotation (1) above.
"},{"location":"codeBlocks/#powershell","title":"powershell \u2713","text":"PowerShell
# this is powershell\n$contentToAdd = @\"\n[wsl2]\nmemory=4GB # Limits VM memory in WSL 2 to 4 GB\nprocessors=2 # Makes the WSL 2 VM use two virtual processors\n[experimental]\nautoMemoryReclaim=true\n\"@\n\nNew-Item $home\\.wslconfig\nAdd-Content $home\\.wslconfig $contentToAdd\nnotepad++ $home\\.wslconfig\n\nNew-Item -Path 'D:\\temp\\Test Folder' -ItemType Directory\n
"},{"location":"codeBlocks/#python","title":"python \u2713","text":"Python
# this is python\ndata = 'hello world'\nprint(data[0])\nprint(len(data))\nprint(data)\n
"},{"location":"codeBlocks/#sh-suboptimal","title":"sh (suboptimal)","text":"Bash
# this is sh (similar appearance as bash)\nwsl --set-default-version 2\nwsl --list --verbose\n\nwsl -u root -d Ubuntu-24.04 bash -c \"touch /etc/wsl.conf\"\nwsl -u root -d Ubuntu-24.04 bash -c \"echo [boot] >> /etc/wsl.conf\" \nwsl -u root -d Ubuntu-24.04 bash -c \"echo systemd=true >> /etc/wsl.conf\" \nwsl -t Ubuntu-24.04\n\nwsl --export Ubuntu \"G:\\My Drive\\Ubuntu_wsl_backup_24.04.tar\"\n\n#!/bin/bash\necho \"Today is \" `date`\necho -e \"\\nenter the path to directory\"\nread the_path\necho -e \"\\n you path has the following files and folders: \"\nls $the_path\n
"},{"location":"codeBlocks/#yaml","title":"yaml \u2713","text":"YAML
# this is yaml\n  language: en\n  palette: \n    - scheme: slate # put slate first to make dark mode the default one\n      toggle:\n        icon: material/toggle-switch\n        name: Switch to light mode\n        primary: red\n        accent: lime\n    - scheme: default\n      toggle:\n        icon: material/toggle-switch-off-outline\n        name: Switch to dark mode\n        primary: indigo\n
"},{"location":"codeBlocks/#code-annotation","title":"Code annotation","text":"

Each line can host only one annotation.

documentation

MkDocs-material Code annotation Configuration MkDocs-material Code annotation Usage

"},{"location":"codeBlocks/#bash-annotate","title":"bash annotate \u2713","text":"Bash
# this is bash\nwsl --set-default-version 2\nwsl --list --verbose # (1)!\n\nwsl -u root -d Ubuntu-24.04 bash -c \"touch /etc/wsl.conf\"\nwsl -u root -d Ubuntu-24.04 bash -c \"echo [boot] >> /etc/wsl.conf\" \nwsl -u root -d Ubuntu-24.04 bash -c \"echo systemd=true >> /etc/wsl.conf\" \nwsl -t Ubuntu-24.04\n\nwsl --export Ubuntu \"G:\\My Drive\\Ubuntu_wsl_backup_24.04.tar\"\n\n#!/bin/bash\necho \"Today is \" `date`\necho -e \"\\nenter the path to directory\"\nread the_path\necho -e \"\\n you path has the following files and folders: \"\nls $the_path\n
  1. this should be more colorful
"},{"location":"codeBlocks/#css-annotate","title":"css annotate \u2713","text":"CSS
/*this is css*/\n/*HAMK branding colors*/\n.md-header {\n    background-color: #003755; /* (1)! */\n    scrollbar-color: #7300F0;\n}\n\n/*this is correct, do not remove it*/\n\n.md-tabs {\n    background-color: #7300F0;\n}\n
  1. this is the background color
"},{"location":"codeBlocks/#html-js-annotate","title":"html (& js) annotate \u2713","text":"HTML
<!-- this is html -->\n<!DOCTYPE html>\n<html>\n<body>\n<h1>My First Web Page</h1> <!-- (1)! -->\n<p id=\"demo\">My First Paragraph</p>\n<script>\ndocument.getElementById(\"demo\").innerHTML = 5 + 6; // (2)\n</script>\n</body>\n</html>\n
  1. including a h1 element to improve SEO
  2. script
"},{"location":"codeBlocks/#java-annotate","title":"java annotate \u2713","text":"Java
// this is java\npublic class Main {\n  public static void main(String[] args) {\n    System.out.println(\"Hello World\"); // (1)!\n  }\n}\n
  1. testing the annotation
"},{"location":"codeBlocks/#js-annotate","title":"js annotate \u2713","text":"JavaScript
// this is js\ndocument.getElementById(\"demo\").innerHTML = \"Hello JavaScript\"; // (1)!\n
  1. testing the annotation for js
"},{"location":"codeBlocks/#json-annotate","title":"json annotate \u2713","text":"JSON
{\n\"name\": \"Your Name\", /*(1)!*/\n\"school\": \"HAMK\"\n}\n
  1. Replace with your name
"},{"location":"codeBlocks/#php-annotate","title":"php annotate \u2713","text":"

Currently, php highlighted but required the opening PHP tag <?php 'Solution': work around for php

PHP
// this is php\necho \"Hello, world!\";\n/* not highlighted until leaded by the opening PHP tag, even commented, as shown right below */\nfunction myMessage() {\n  echo \"Hello world!\";\n}\nmyMessage();\n\n// until <?php\necho \"Hello, world!\"; // (1)!\n// this is php\nfunction myMessage() {\n  echo \"Hello world!\";\n}\nmyMessage();\n
  1. echo to print to console
"},{"location":"codeBlocks/#powershell-annotate","title":"powershell annotate \u2713","text":"PowerShell
# this is powershell\n$contentToAdd = @\"\n[wsl2]\nmemory=4GB # Limits VM memory in WSL 2 to 4 GB\nprocessors=2 # Makes the WSL 2 VM use two virtual processors\n[experimental]\nautoMemoryReclaim=true\n\"@\n\nNew-Item $home\\.wslconfig # (1)!\nAdd-Content $home\\.wslconfig $contentToAdd\nnotepad++ $home\\.wslconfig\n\nNew-Item -Path 'D:\\temp\\Test Folder' -ItemType Directory\n
  1. Adding new item
"},{"location":"codeBlocks/#python-annotate","title":"python annotate \u2713","text":"Python
# this is python\ndata = 'hello world'\nprint(data[0]) # (1)!\nprint(len(data))\nprint(data)\n
  1. The python print() is to print to terminal
"},{"location":"codeBlocks/#sh-annotate","title":"sh annotate \u2713","text":"Bash
# this is sh (similar appearance as bash)\nwsl --set-default-version 2\nwsl --list --verbose\n\nwsl -u root -d Ubuntu-24.04 bash -c \"touch /etc/wsl.conf\"\nwsl -u root -d Ubuntu-24.04 bash -c \"echo [boot] >> /etc/wsl.conf\" \nwsl -u root -d Ubuntu-24.04 bash -c \"echo systemd=true >> /etc/wsl.conf\" \nwsl -t Ubuntu-24.04\n\nwsl --export Ubuntu \"G:\\My Drive\\Ubuntu_wsl_backup_24.04.tar\"\n\n#!/bin/bash\necho \"Today is \" `date`\necho -e \"\\nenter the path to directory\" # (1)!\nread the_path\necho -e \"\\n you path has the following files and folders: \"\nls $the_path\n
  1. \\n to go to next line and print the content after \\n (in this example, \"enter the path to directory\" will be printed in the next line)
"},{"location":"codeBlocks/#yaml-annotate","title":"yaml annotate \u2713","text":"YAML
# this is yaml\ntheme:\n  features:\n    - content.code.annotate # (1)!\n
  1. I'm a code annotation for yaml! I can contain code, formatted text, images, ... basically anything that can be written in Markdown.
"},{"location":"editing/","title":"Editing","text":""},{"location":"editing/#tabs","title":"Tabs","text":"

code

=== \"tab 1\"\n    content of tab 1\n=== \"tab 2\"\n    content of tab 2\n
Result:

tab 1tab 2

content of tab 1

content of tab 2

"},{"location":"editing/#flowcharts-and-diagrams","title":"Flowcharts and Diagrams","text":"
  • Flowcharts and many types of diagrams
"},{"location":"editing/#admonition","title":"Admonition","text":"

abstract, bug, danger, example, info, note, question, quote, success, tip, warning.

"},{"location":"editing/#example","title":"Example","text":"

content always displayed

Content always displayed Use \"customized title\" to give a title to the admonition Use !!! to start an admonition

content hidden by default and need to click on the title bar to open

Use ??? to start an admonition

content displayed by default and can click on the title bar to hide

Use ???+ to start an admonition

  • Code can be inside an admonition, as the examples in code blocks/code line numbering
"},{"location":"editing/#icons","title":"Icons","text":""},{"location":"editing/#search-for-an-icon","title":"Search for an icon","text":"

MkDocs-material Search for an icon

"},{"location":"editing/#icons-with-md","title":"Icons with .md","text":"mkdocs.yml
# to use mkdocs-material library of icons (md)\nmarkdown_extensions:\n  - attr_list\n  - pymdownx.emoji:\n      emoji_index: !!python/name:material.extensions.emoji.twemoji\n      emoji_generator: !!python/name:material.extensions.emoji.to_svg\n
"},{"location":"editing/#icons-with-html","title":"Icons with .html","text":"mkdocs.yml
extra_css:\n  - https://cdn.jsdelivr.net/npm/@mdi/font@6.5.95/css/materialdesignicons.min.css\n

Differences syntax for icon in md and in html:

In md :material-*:In html i class ='mdi mdi-*'

The icon is achieved in .md Markdown

The icon :material-flask-outline: is achieved in .md\n

The icon is achieved in .html HTML

The icon <i class=\"mdi mdi-flask-outline\"></i> is achieved in .html\n

"},{"location":"editing/#examples","title":"Examples","text":"

html mdi mdi-folder-download/ md :material-folder-download: Similarly html / md html / md html / md html / md Using in a button Download the template .zip html / Download the template .zip md

"},{"location":"editing/#videos","title":"Videos","text":"documentation

See the discussion at discussions/3984

"},{"location":"editing/#google-drive","title":"Google Drive","text":"

In the .md file, attn to the src syntax ending 'preview' for googledrive

<div class='video-container'> <!--(1)!-->\n  <iframe src='https://drive.google.com/file/d/[FILE_ID]/preview' allowfullscreen></iframe>\n</div>\n

  1. /file/d/[FILE_ID]/preview

css for the video frame

.video-container {\n    position: relative; /* allows the iframe element inside it to be positioned relative to this container. */\n    width: 100%; /* makes the container take up 100% of the width of its parent element */\n    padding-bottom: 56.25%; /* 16:9 aspect ratio */\n    height: 0; /*  height set to 0 because padding is used to define the aspect ratio of the container */\n    overflow: hidden; /* ensures that the iframe content doesn't spill out of the container */\n    max-width: 100%; /* ensures the container doesn't grow larger than its parent element, maintaining responsive behavior. */\n    background: #000; /* placeholder color before the video loads */\n}\n.video-container iframe {\n    position: absolute; /* sets the position of the iframe to absolute, so it will be positioned relative \n        to the nearest positioned ancestor (in this case, .video-container which is set to relative above) */\n    top: 0; /* positions the top edge of the iframe at the top of the container*/\n    left: 0; /* positions the left edge of the iframe at the left of the container */\n    width: 100%; /* makes the iframe take up 100% of the width of the container */\n    height: 100%; /* makes the iframe take up 100% of the height of the container. */\n    border: 0; /* removes any default border that might be applied to the iframe */\n}\n
The Working Solution, responsive: iframe in div with css:

"},{"location":"editing/#youtube","title":"YouTube","text":"https://www.youtube.com/EMBED/videoID
The Working Solution, responsive: `iframe in div with css`:  \n<div class='video-container'> <!--(1)!-->\n  <iframe src='https://www.youtube.com/embed/CF6ZGbz59gE' allowfullscreen></iframe>\n</div>\n
  1. add /embed/ to the code

The Working Solution, responsive: iframe in div with css:

"},{"location":"editing/#pdf","title":"Pdf","text":"embedding pdf
<iframe src='../assets/pdf/poster_mi24_final.pdf' width=100% height=700px>This browser does not support PDFs. Please download the PDF to view it: <a href='../assets/pdf/poster_mi24_final.pdf'>Download PDF</a>\n</iframe>\n
This browser does not support PDFs. Please download the PDF to view it: Download PDF"},{"location":"overview/","title":"Overview","text":""},{"location":"overview/#documentation","title":"Documentation","text":"

This Documentation is a quick guide for the most frequently used features in this template. - It is a collection of the most used features from MkDocs-material for the learning materials at HAMK. Mkdocs has a powerful search function. - Please use the search box (in the header) to find a setting. - If the topic not included in this site, please refer to the full documentation from Mkdocs-material below.

"},{"location":"overview/#mkdocs-material-external-documentation","title":"MkDocs(-material) external documentation","text":"

- MkDocs-material ( Getting started | Setup | Reference | Plugins) - MkDocs-material Repository - https://www.mkdocs.org/ - https://github.com/mkdocs/catalog - Markdown Extensions

"},{"location":"overview/#template","title":"Template","text":"
  • The Template is prebuilt with HAMK colors and fonts, available for customization with your content.
"},{"location":"overview/#email-placeholder","title":"Email placeholder","text":"in the template, replace firstname.lastname@hamk.fi with your email

Replace the placeholder firstname.lastname@hamk.fi with your own email in 2 places - Refer to the documentation setting up

"},{"location":"overview/#example-pages","title":"Example pages","text":"
  • The BYOD page is an example of applying Mkdocs-material to the BYOD content.
  • This page itself is an example of using mkdocs-material.
"},{"location":"overview/#search","title":"Search","text":"

Mkdocs-material has a strong search function. Search for a tool or setting. If not covered in this documentation, look for it in the full documentations

"},{"location":"overview/#navigation","title":"Navigation","text":"

Tip

Search 'nav' or 'toc' for setting. Search 'integrate' for how to integrate the toc to the nav.

See more in setting up - The left-side menu is called nav (navigation) - The right-side menu is called the toc (table of content) - For small pages (such as this one), the toc can be integrated into the nav (search integrate for guidance)

"},{"location":"settingUp/","title":"Setting up the page","text":"Info

mkdocs.yml custom css custom js (/docs/js/custom.js) override, see Customization settings

"},{"location":"settingUp/#email","title":"Email","text":"replace with your email in 2 places

Replace the placeholder with your own email in 2 places. Click on the signs in the code below 1. in the mkdocs.yml file

extra:\nsocial:\n    - icon: fontawesome/solid/paper-plane\n      link: mailto:firstname.lastname@hamk.fi #(1)!\n

  1. Replace with your email
2. in the /js/custom.js file, line 24
document.addEventListener('DOMContentLoaded', function() {\n    const ellipsisContainer = document.querySelector('.md-search');\n    if (ellipsisContainer) {\n        const mailtoLink = document.createElement('a');\n        mailtoLink.href = '#';\n        mailtoLink.classList.add('custom-email-link');\n\n        // Create a text node saying 'Feedback''\n        const textNode = document.createTextNode('Feedback');\n\n        // Create an icon element\n        const icon = document.createElement('i');\n        icon.classList.add('far', 'fa-envelope'); // 'far' for Regular (outlined) envelope, 'fas' for solid (S)\n        icon.setAttribute('aria-hidden', 'true');\n\n        // Append the icon and text node to the link element\n        mailtoLink.appendChild(icon);\n        mailtoLink.appendChild(textNode);\n\n        mailtoLink.addEventListener('click', function(event) {\n            event.preventDefault();\n            const subject = 'HAMK New BYOD feedback';\n            const body = `I have some feedback about the page titled: ${document.title} at the URL: ${window.location.href}`;\n            const mailtoURL = /*(1)!*/ `mailto:firstname.lastname@hamk.fi?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;\n            window.location.href = mailtoURL;\n        });\n        ellipsisContainer.appendChild(mailtoLink);\n    }\n});\n
  1. Replace with your email
"},{"location":"settingUp/#basic-mkdocs-commands","title":"Basic MkDocs commands","text":"
  • mkdocs -h - Print help message.
  • mkdocs build - Build the documentation site.
  • mkdocs serve - Start the live-reloading docs server.
  • mkdocs gh-deploy - Deploy the documents from github page.
for automatic deployment using githubaction
  • View the documentation on Publishing your site with GitHub Actions
"},{"location":"settingUp/#search-function","title":"Search function","text":"

documentation: Setting up site search

MkDocs-material Setting up site search

mkdocs.yml
theme:\n  features:\n    - search\n    - search.sidebar\n    - search.suggest\n    - search.highlight\n    - search.share\n# the below is not used in this project\nplugins: # if plugins off, search still works with the feature settings above\n  - search # must be on if plugins on\n
"},{"location":"settingUp/#theme-color-font-and-mode","title":"Theme, color, font, and mode","text":""},{"location":"settingUp/#custom-css","title":"Custom CSS","text":"mkdocs.yml
extra_css:\n  - css/custom.css # for further customization.\n
"},{"location":"settingUp/#overriding","title":"Overriding","text":"

and more Customization settings.

"},{"location":"settingUp/#changing-the-color","title":"Changing the color","text":"

Changing the color

"},{"location":"settingUp/#hamk-branding-and-themes","title":"HAMK branding and themes","text":"

HAMK documentation

1 hamkin-brandi 2 mediapankki 3 hamk-renewed-its-brand 4 hamk.mediaflowportal

"},{"location":"settingUp/#hamk-colors","title":"HAMK colors","text":"documentation

MkDocs-material Changing the colors and MkDocs root css color variables

HAMK colors
HAMK dark blue  = HEX #003755 = rgb(0, 55, 85)\nHAMK pink = HEX #7300F0 = rgb(115, 0, 240)\nHAMK light pink = HEX #D7AFFF = rgb(215, 175, 255)\n
"},{"location":"settingUp/#hamk-logo-favicon","title":"HAMK logo & favicon","text":"documentation

MkDocs-material Changing the logo and icons

HAMK logo (white on transparent) used as logo and favicon. Other HAMK logo, black on transparent

Logo and Favicon: mkdocs.yml

theme:\n  name: material\n  logo: assets/logo_light_pink.png # or logo_white.png\n  favicon: assets/favicon/favicon.png\n

"},{"location":"settingUp/#hamk-fonts","title":"HAMK fonts","text":"documentation

MkDocs-material Changing the fonts

Customizing: h elements (TT Rounds Neue DemiBold) vs body (Inter).

CSS settings for font families (from the HAMKin brandi page)

TT Rounds Neue DemiBold, actual settings of this site
:root { /* from the hamkin-brandi page, together with guidance in the .pptx file */\n    --font-family-sans: 'Inter', Helvetica, Arial, sans-serif; \n    --font-family-serif: 'TT Rounds Neue DemiBold', 'Arial Rounded MT', serif; \n}\n@font-face {/* adapted from the HAMK font .zip file */\n    font-family: 'TT Rounds Neue DemiBold';\n    src: url('../assets/fonts/tt_rounds_neue_demibold-webfont.woff2') format('woff2'),\n         url('../assets/fonts/tt_rounds_neue_demibold-webfont.woff') format('woff');\n    font-weight: normal;\n    font-style: normal;\n}\n\n@font-face {/* from the HAMK font .zip file. The Condensed (Narrowed) is not used */\n    font-family: 'TT Rounds Neue Condensed DemiBold';\n    src: url('../assets/fonts/tt_rounds_neue_condensed_demibold-webfont.woff2') format('woff2'),\n         url('../assets/fonts/tt_rounds_neue_condensed_demibold-webfont.woff') format('woff');\n    font-weight: normal;\n    font-style: normal;\n}\n
Inter (from Google Font), actual settings of this site
extra_css:\n  - https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\n
"},{"location":"settingUp/#dark-mode-as-default","title":"Dark mode as default","text":"documentation

MkDocs-material Color palette toggle

To set dark mode as default: put - scheme: slate as the 1st scheme in palette (when the user first visits our site, the media queries are evaluated in the order of their definition.)

"},{"location":"settingUp/#permalink","title":"Permalink","text":"
  • Permalink (permalink) inserts an anchor link with the symbol \u00b6 at the end of each headline, directly link to a subpart of the document, for easy sharing. mkdocs.yml to use permalink
    markdown_extensions:\n  - toc:\n      permalink: true\n
"}]} \ No newline at end of file diff --git a/settingUp/index.html b/settingUp/index.html new file mode 100644 index 0000000..c0c1738 --- /dev/null +++ b/settingUp/index.html @@ -0,0 +1,991 @@ + + + + + + + + + + + + + + + + + + + + + + + Setting up - MkDocs-material Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + + + +
+
+
+ + + + +
+
+ + + + + + + + + + + + + + + + + + + + +

Setting up the page

+
+Info +

mkdocs.yml
+custom css
+custom js (/docs/js/custom.js)
+override, see Customization settings

+
+

Email

+
+replace with your email in 2 places +

Replace the placeholder with your own email in 2 places. Click on the signs in the code below
+

1. in the mkdocs.yml file
extra:
+social:
+    - icon: fontawesome/solid/paper-plane
+      link: mailto:firstname.lastname@hamk.fi #(1)!
+

+
    +
  1. Replace with your email
  2. +
+
2. in the /js/custom.js file, line 24
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
document.addEventListener('DOMContentLoaded', function() {
+    const ellipsisContainer = document.querySelector('.md-search');
+    if (ellipsisContainer) {
+        const mailtoLink = document.createElement('a');
+        mailtoLink.href = '#';
+        mailtoLink.classList.add('custom-email-link');
+
+        // Create a text node saying 'Feedback''
+        const textNode = document.createTextNode('Feedback');
+
+        // Create an icon element
+        const icon = document.createElement('i');
+        icon.classList.add('far', 'fa-envelope'); // 'far' for Regular (outlined) envelope, 'fas' for solid (S)
+        icon.setAttribute('aria-hidden', 'true');
+
+        // Append the icon and text node to the link element
+        mailtoLink.appendChild(icon);
+        mailtoLink.appendChild(textNode);
+
+        mailtoLink.addEventListener('click', function(event) {
+            event.preventDefault();
+            const subject = 'HAMK New BYOD feedback';
+            const body = `I have some feedback about the page titled: ${document.title} at the URL: ${window.location.href}`;
+            const mailtoURL = /*(1)!*/ `mailto:firstname.lastname@hamk.fi?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;
+            window.location.href = mailtoURL;
+        });
+        ellipsisContainer.appendChild(mailtoLink);
+    }
+});
+
+
    +
  1. Replace with your email
  2. +
+
+

Basic MkDocs commands

+
    +
  • mkdocs -h - Print help message.
  • +
  • mkdocs build - Build the documentation site.
  • +
  • mkdocs serve - Start the live-reloading docs server.
  • +
  • mkdocs gh-deploy - Deploy the documents from github page.
  • +
+
+for automatic deployment using githubaction + +
+

Search function

+
+

documentation: Setting up site search

+

MkDocs-material Setting up site search

+
+
mkdocs.yml
theme:
+  features:
+    - search
+    - search.sidebar
+    - search.suggest
+    - search.highlight
+    - search.share
+# the below is not used in this project
+plugins: # if plugins off, search still works with the feature settings above
+  - search # must be on if plugins on
+
+

Theme, color, font, and mode

+

Custom CSS

+
mkdocs.yml
extra_css:
+  - css/custom.css # for further customization.
+
+

Overriding

+

and more Customization settings.

+

Changing the color

+

Changing the color

+

HAMK branding and themes

+ +

HAMK colors

+
+documentation +

MkDocs-material Changing the colors and +MkDocs root css color variables

+
+
HAMK colors
HAMK dark blue  = HEX #003755 = rgb(0, 55, 85)
+HAMK pink = HEX #7300F0 = rgb(115, 0, 240)
+HAMK light pink = HEX #D7AFFF = rgb(215, 175, 255)
+
+

HAMK logo & favicon

+
+documentation +

MkDocs-material Changing the logo and icons

+
+

HAMK logo (white on transparent) used as logo and favicon.
+Other HAMK logo, black on transparent

+

Logo and Favicon:
+

mkdocs.yml
theme:
+  name: material
+  logo: assets/logo_light_pink.png # or logo_white.png
+  favicon: assets/favicon/favicon.png
+

+

HAMK fonts

+
+documentation +

MkDocs-material Changing the fonts

+
+

Customizing: h elements (TT Rounds Neue DemiBold) vs body (Inter).

+

CSS settings for font families (from the HAMKin brandi page)

+
TT Rounds Neue DemiBold, actual settings of this site
:root { /* from the hamkin-brandi page, together with guidance in the .pptx file */
+    --font-family-sans: 'Inter', Helvetica, Arial, sans-serif; 
+    --font-family-serif: 'TT Rounds Neue DemiBold', 'Arial Rounded MT', serif; 
+}
+@font-face {/* adapted from the HAMK font .zip file */
+    font-family: 'TT Rounds Neue DemiBold';
+    src: url('../assets/fonts/tt_rounds_neue_demibold-webfont.woff2') format('woff2'),
+         url('../assets/fonts/tt_rounds_neue_demibold-webfont.woff') format('woff');
+    font-weight: normal;
+    font-style: normal;
+}
+
+@font-face {/* from the HAMK font .zip file. The Condensed (Narrowed) is not used */
+    font-family: 'TT Rounds Neue Condensed DemiBold';
+    src: url('../assets/fonts/tt_rounds_neue_condensed_demibold-webfont.woff2') format('woff2'),
+         url('../assets/fonts/tt_rounds_neue_condensed_demibold-webfont.woff') format('woff');
+    font-weight: normal;
+    font-style: normal;
+}
+
+
Inter (from Google Font), actual settings of this site
extra_css:
+  - https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap
+
+

Dark mode as default

+
+documentation +

MkDocs-material Color palette toggle

+
+

To set dark mode as default:
+put - scheme: slate as the 1st scheme in palette (when the user first visits our site, the media queries are evaluated in the order of their definition.)

+ +
    +
  • Permalink (permalink) inserts an anchor link with the symbol ¶ at the end of each headline, directly link to a subpart of the document, for easy sharing. +
    mkdocs.yml to use permalink
    markdown_extensions:
    +  - toc:
    +      permalink: true
    +
  • +
+ + + + + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..0f8724e --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..09e4dd4e0e475033c3ac6060f3196eb44e540181 GIT binary patch literal 127 zcmV-_0D%7=iwFn+T(xEb|8r?{Wo=<_E_iKh04<9_3V)_WXo8&M?ytk3HC}0~zlG)Vu

YouTube