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..2e7a5a7 --- /dev/null +++ b/404.html @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + 404 Page not found | Dynamis.gg + + + + + + + + + +
+ +
+
+
+

404 :(

+

Page not found, maybe moved. Try searching or go to homepage.

+ + +
+
+ + + diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..08d3135 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +dynamis.gg \ No newline at end of file diff --git a/FRU.webp b/FRU.webp new file mode 100644 index 0000000..0fc1323 Binary files /dev/null and b/FRU.webp differ diff --git a/_headers b/_headers new file mode 100644 index 0000000..ccca3e1 --- /dev/null +++ b/_headers @@ -0,0 +1,68 @@ +# This _headers file is used to set headers on cloudflare pages: https://developers.cloudflare.com/pages/configuration/headers/ +# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy (disabled everything except autoplay, local-fonts, screen-wake-lock, speaker-selection) +# opt out of Federated Learning of Cohorts (aka "FLoC") - https://amifloced.org/ +/* + X-Frame-Options: DENY + X-Content-Type-Options: nosniff + X-XSS-Protection: 1; mode=block + Referrer-Policy: strict-origin-when-cross-origin + Strict-Transport-Security: max-age=63072000; includeSubdomains + Permissions-Policy: interest-cohort=(), accelerometer=(), ambient-light-sensor=(), battery=(), bluetooth=(), browsing-topics=(), camera=(), display-capture=(), document-domain=(), encrypted-media=(), execution-while-not-rendered=(), execution-while-out-of-viewport=(), fullscreen=(), gamepad=(), geolocation=(), gyroscope=(), hid=(), identity-credentials-get=(), idle-detection=(), magnetometer=(), microphone=(), midi=(), otp-credentials=(), payment=(), picture-in-picture=(), publickey-credentials-create=(), publickey-credentials-get=(), serial=(), storage-access=(), sync-xhr=(), usb=(), web-share=(), window-management=(), xr-spatial-tracking=() + Content-Security-Policy: default-src 'none'; frame-ancestors 'none'; object-src 'none'; base-uri 'self'; manifest-src 'self'; worker-src 'self'; form-action 'self'; connect-src 'self' *.hyvor.com ws://*.hyvor.com; script-src 'self' talk.hyvor.com; img-src 'self' data: talk.hyvor.com cdn.cloudflare.com; frame-src 'self' www.youtube-nocookie.com player.vimeo.com streamable.com www.streamable.com; media-src 'self' data: cdn.cloudflare.com www.youtube-nocookie.com player.vimeo.com; font-src 'self' cdn.cloudflare.com cdn.jsdelivr.net fonts.gstatic.com; style-src 'self' talk.hyvor.com cdn.cloudflare.com cdn.jsdelivr.net fonts.googleapis.com; + +/*.js + Cache-Control: public, max-age=604800, must-revalidate + +/*.css + Cache-Control: public, max-age=604800, must-revalidate + +/*.svg + Cache-Control: public, max-age=604800 + +/*.png + Cache-Control: public, max-age=604800 + +/*.ico + Cache-Control: public, max-age=604800 + +/*.jpg + Cache-Control: public, max-age=604800 + +/*.jpeg + Cache-Control: public, max-age=604800 + +/*.gif + Cache-Control: public, max-age=604800 + +/*.webp + Cache-Control: public, max-age=604800 + +/*.avif + Cache-Control: public, max-age=604800 + +/*.mp4 + Cache-Control: public, max-age=604800 + +/*.webm + Cache-Control: public, max-age=604800 + +/*.mp3 + Cache-Control: public, max-age=604800 + +/*.ogg + Cache-Control: public, max-age=604800 + +/*.otf + Cache-Control: public, max-age=604800 + +/*.eot + Cache-Control: public, max-age=604800 + +/*.ttf + Cache-Control: public, max-age=604800 + +/*.woff + Cache-Control: public, max-age=604800 + +/*.woff2 + Cache-Control: public, max-age=604800 diff --git a/about/index.html b/about/index.html new file mode 100644 index 0000000..9a9b4ff --- /dev/null +++ b/about/index.html @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + About | Dynamis.gg + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+

This site has some raid resources by Tvnariea Reksane@Seraph. I am +@spectria.limina on Discord.

+ +
+
+ + + diff --git a/abridge.css b/abridge.css new file mode 100644 index 0000000..f0e8efa --- /dev/null +++ b/abridge.css @@ -0,0 +1 @@ +:root{--hl:#f90}:root.switch{--hl:#c40}:root{--ff:Roboto,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue","Noto Sans",Helvetica,Arial,sans-serif;--fm:ui-monospace,Menlo,Monaco,Consolas,"SF Mono","Cascadia Mono","Segoe UI Mono","DejaVu Sans Mono","Liberation Mono","Roboto Mono","Oxygen Mono","Ubuntu Monospace","Ubuntu Mono","Source Code Pro","Fira Mono","Droid Sans Mono","Courier New",Courier,monospace;color-scheme:var(--cs);--s1: .5rem;--s2: 1rem;--rc: .5rem;--br: 0.25rem;--bw: 0.0625rem;--ow: 0.1875rem;--fs: 1rem;--lh: 1.5;--lhh: 1.2;--fw: 400;--fh: 700}@media (min-width: 576px){:root{--fs: 1rem}}@media (min-width: 768px){:root{--fs: 1.04rem}}@media (min-width: 992px){:root{--fs: 1.08rem}}@media (min-width: 1200px){:root{--fs: 1.12rem}}:root:not(.switch){--cs:dark;--f1:#ccc;--f2:#ddd;--c1:#111;--c2:#222;--c3:#333;--c4:#888;--a1:#f90;--a2:#fb0;--a3:#f90;--a4:#f90;--cg:#593;--cr:#e33;--h0:#191919;--h1:#ddd;--h2:#888;--h3:#e65;--h4:#e83;--h5:#eb6;--h6:#ac3;--h7:#8db;--h8:#6ae;--h9:#d6e;--ha:160%}:root.switch{--cs:light;--f1:#333;--f2:#222;--c1:#fff;--c2:#eee;--c3:#ddd;--c4:#555;--a1:#c40;--a2:#e60;--a3:#f90;--a4:#c40;--cg:#373;--cr:#d33;--h0:#f7f7f7;--h1:#222;--h2:#666;--h3:#a21;--h4:#930;--h5:#a50;--h6:#350;--h7:#286;--h8:#059;--h9:#a3c;--ha:92%}*,*::before,*::after{box-sizing:border-box}html{text-rendering:optimizeLegibility;background-color:var(--c1);color:var(--f1);font-family:var(--ff);font-weight:var(--fw);font-size:var(--fs);line-height:var(--lh)}big,h1,h2,h3,h4,h5,h6{padding-left:0;color:var(--f2);margin:var(--s2) 0 var(--s1);font-weight:var(--fh);font-size:var(--fs);line-height:var(--lhh)}big,h1{font-size:2rem}h2{font-size:1.75rem}h3{font-size:1.5rem}h4{font-size:1.25rem}h5{font-size:1.125rem}header h1{margin:0}a{color:var(--a1);text-decoration:none;font-weight:500}a:hover{color:var(--a2);text-decoration:underline}a:visited{color:var(--a4)}big a,h1 a,h2 a,main nav a,header li>a{color:var(--f2);text-decoration:none;font-weight:var(--fh)}big a:visited,h1 a:visited,h2 a:visited,main nav a:visited,header li>a:visited{color:var(--f2)}big a:hover,h1 a:hover,h2 a:hover,main nav a:hover,header li>a:hover{color:var(--a3);text-decoration:none}article{padding:1rem 0rem}abbr[title]{border-bottom:var(--bw) dotted;text-decoration:none;cursor:help}mark{background-color:var(--c4);color:var(--c1);vertical-align:baseline;padding:.1rem .4rem}blockquote{margin-left:0;padding:.5rem 0 .5rem 1.5rem;border-left:.25rem solid var(--c3)}blockquote>:last-child{margin-bottom:0}small{font-size:.875rem}.footnote-definition sup,.footnote-definition p{display:inline}sub,sup{font-size:.75em;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}details summary{cursor:pointer}address,blockquote,dl,figure,form,ol,p,pre,table,ul{margin:.7rem 0;color:var(--f1);font-style:normal;font-weight:var(--fw);font-size:var(--fs)}ul,ol{padding-right:0;padding-left:var(--s2)}li{margin-bottom:.2rem}ins{color:var(--cg);text-decoration:none}del{color:var(--cr)}main{display:flex}main article,main div{flex:1 1 0;min-width:0}body{width:100%;margin:0}header,main,footer{width:100%;margin-right:auto;margin-left:auto;padding:var(--s1)}@media (min-width: 1200px){header,main,footer{min-width:1200px;max-width:70%}}header,main{padding-top:0;margin-top:0;padding-bottom:0;margin-bottom:0}header hr,main hr{margin:.1rem 0}footer{line-height:var(--lhh)}footer hr,footer p{margin:.2rem 0}header>nav>div{padding-top:var(--s2)}footer>div{padding-top:var(--s1)}header>nav,header>nav>div:nth-child(2){display:flex;flex-direction:column;flex-wrap:wrap;justify-content:space-between;align-items:center}header>nav ul{margin:0;display:flex;flex-wrap:wrap;justify-content:center;align-items:center}header>nav>div:nth-child(2){margin-left:auto;justify-content:center}header nav{margin:var(--s1) auto 0;flex-direction:column}header nav div:nth-child(2){margin:auto}nav{align-items:center;justify-content:center;display:flex}nav li{display:inline-block;margin:0 var(--s2) 0 0}.dropdown{display:inline-block;position:relative;z-index:1;font-weight:var(--fh);font-size:var(--fs)}.dropdown-content{display:none;position:absolute;cursor:pointer;text-align:center;right:-1rem;z-index:1;font-weight:var(--fh);font-size:var(--fs);background:var(--c2)}.dropdown-content a,.dropdown-content span{margin:0 var(--s1);display:block;text-decoration:none}.dropdown:hover .dropdown-content{display:block}article nav div:last-child{text-align:right}footer nav a{margin:.2rem}footer nav i{margin-bottom:.2rem}main nav{margin-top:var(--s2)}main nav a,main nav span{margin:.2rem}.on,.on:visited{font-weight:var(--fh);border:.1rem solid var(--c4);border-radius:var(--br);padding:.1rem var(--s1)}.on:hover{border-color:var(--a3)}.on:hover .svgh{background:var(--a3);opacity:1}.outp{padding:0 .26rem .2rem}.dis{color:var(--c4);font-weight:var(--fh)}.off{color:var(--c4);font-weight:var(--fh);border:.1rem solid var(--c3);border-radius:var(--br)}.off .svgh{background:var(--c3);opacity:1}.on{font-weight:var(--fh);border:.1rem solid var(--c4);border-radius:var(--br)}.mode:hover,.cnav{background-color:var(--c2)}@media (min-width: 768px){header nav,header>nav>div:nth-child(2){flex-direction:row;margin:0 0 0 auto}header>nav>div{padding-top:var(--s1)}}.yvi{position:absolute;top:0;left:0}.yv{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}img,video,svg{max-width:100%;height:auto}embed,iframe,object{max-width:100%}iframe{border-style:none;width:100%;height:100%;border:0;overflow:hidden}.fi{display:inline-block}.fi img,.fi video{vertical-align:top}.fi figcaption{padding-bottom:var(--s1);text-align:center}table{border-collapse:collapse;width:100%;text-indent:0}table caption{margin-bottom:.5rem}tr{border-bottom:var(--bw) solid var(--c3)}td,th{padding:var(--s1)}th{text-align:left}tbody tr:nth-child(even){background-color:var(--c2)}thead tr{border-top:var(--bw) solid var(--c3);background-color:var(--c2)}pre,code,kbd,samp,tt,var{border-radius:var(--br);background:var(--c2);font-family:var(--fm);overflow-x:auto;line-height:initial;font-size:.8rem;padding:.3rem .2rem}pre{position:relative;padding:2rem .5rem .3rem;display:block;overflow-x:auto;-ms-overflow-style:scrollbar;white-space:pre}pre>code{display:block;background:rgba(0,0,0,0)}kbd{background-color:var(--f2);color:var(--c1);vertical-align:baseline;font-size:1rem;padding:.2rem}pre code[data-lang]::before{content:attr(data-lang);padding:.3rem;display:block;background-color:var(--c3);color:var(--h1);width:100%;position:absolute;top:0;left:0;padding-left:1rem;text-transform:uppercase}code table{font-size:.8rem;margin:0;color:var(--h1)}code mark{display:block;color:unset;padding:0;background-color:var(--h0);filter:brightness(var(--ha))}code td,code th,code tr{padding:0;border-bottom:none}code tbody td:first-child{text-align:center;user-select:none;min-width:60px}code tbody tr:nth-child(even),code thead tr{background-color:unset}.cc{cursor:pointer;z-index:9;position:absolute;top:.2rem;right:.5rem}.cc:hover{background:var(--a3);opacity:1}hr{box-sizing:content-box;height:0;overflow:visible;border:none;border-top:1px solid var(--f1)}header hr,footer hr{border-top:1px solid var(--c4)}figure{display:block;margin:0;padding:0;overflow-x:auto}button,input,select,textarea{margin:0;padding:.2rem var(--s1);max-width:100%;background:var(--c2);border:0;border-radius:.25rem;font:inherit;line-height:var(--fs);color:var(--f1)}button.del{color:var(--cr)}button,[type=button i],[type=submit i],[type=reset i]{display:inline-block;text-align:center;white-space:nowrap;color:var(--f1);border:0;cursor:pointer;transition:opacity .25s}button:hover,[type=button i]:hover,[type=submit i]:hover,[type=reset i]:hover{opacity:.75}button[disabled],[type=button i][disabled],[type=submit i][disabled],[type=reset i][disabled]{opacity:.5}fieldset{padding:.5rem .75rem;border:var(--bw) solid var(--c3);border-radius:.25rem}legend{padding:0 .25rem}label{cursor:pointer;display:block;margin-bottom:.25rem}[type=color i]{min-height:2.125rem}select:not([multiple]):not([size]){padding-right:1.5rem;background-repeat:no-repeat;background-position:right .5rem center;-moz-appearance:none;-webkit-appearance:none;appearance:none}textarea{width:100%;resize:vertical}textarea:not([rows]){height:8rem}.topout{position:sticky;bottom:1px;padding:20px;place-self:end;margin-top:110vh;pointer-events:none}.topleft{margin-left:calc(100% - 80px)}.top{pointer-events:all;padding:9px;border-radius:9px;font-weight:700;color:var(--a1);background:var(--c2)}.top:hover{text-decoration:none;color:var(--c2);background:var(--a1)}.top:hover .svgh{background:var(--c2);opacity:1}div:empty{display:none}#suggestions{z-index:9;background:var(--c1);border:2px solid var(--c3);position:static;left:0;width:100%;margin-top:var(--s1);max-height:500px;overflow:auto}#suggestions a,#results a{display:block;text-decoration:none;padding:var(--s1);margin:0 var(--s1)}#suggestions a:hover,#suggestions a:focus,#results a:hover,#results a:focus{background:var(--c2)}#suggestions span,#results span{line-height:1.5;display:block}#suggestions span:first-child,#results span:first-child{font-weight:var(--fh)}#suggestions span:nth-child(2),#results span:nth-child(2){color:var(--f1)}.results{display:block;position:relative;width:100%}.searchd{display:flex;position:relative;align-items:center;white-space:nowrap}.searchd>input{max-width:100%;flex-grow:1;padding-right:2rem}.searchd>button{position:absolute;right:.5rem}@media (min-width: 768px){.searchd>input{width:15rem;flex-grow:0}#suggestions{position:absolute;right:0;left:unset;width:500px}}.sticky{position:sticky;top:var(--s2)}.block{max-width:30rem;margin:var(--s2) auto}.blockdiv{border-radius:var(--br);border-top:5px solid var(--a1);background-color:var(--c2);margin-top:var(--s2);padding:.2rem 0 var(--s2) var(--s2);max-height:100vh;overflow:auto;overflow-wrap:break-word}.blockdiv a{color:var(--f1)}.blockdiv a:hover{color:var(--a2)}.blockdiv ol{margin:0}.blockdiv .scur{font-weight:var(--fh);color:var(--a1)}.sblock{width:15rem;max-width:15rem;margin-left:var(--s1);display:none}.sblock details:not([open])+.hidden_li{height:0;visibility:hidden;overflow:hidden}.sblock summary{filter:brightness(.7)}.sblock ol,.sblock ul{font-size:1em}.desc{display:none}@media (min-width: 768px){.sblock,.desc{display:unset}.block{display:none}}.img-swap-div .img-main{display:block}.img-swap-div .img-swap{display:none}.img-swap-div:hover .img-swap{display:block}.img-swap-div:hover .img-main{display:none}[style*="--c:"],section>section{flex:var(--c, 1);margin:var(--s1);color:var(--f2);padding:var(--s1);text-align:center}section{display:flex;flex-flow:row wrap}section article{padding:20px 30px;min-width:340px}section article div{text-align:center}section article h1,section article h2,section article h3{text-align:center}.adjust{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='none' stroke-width='1' fill='%23000' viewBox='0 0 24 24'%3E%3Cpath d='M12 0C6 0 0 6 0 12s5 12 12 12 12-5 12-12S19 0 12 0Zm0 4c5 0 8 3 8 8s-3 8-8 8V4Z'/%3E%3C/svg%3E");background:var(--f2)}.angu{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='%23000' stroke-width='3' fill='none' viewBox='0 0 24 24'%3E%3Cpath d='m4 16 8-8 8 8'/%3E%3C/svg%3E");background:var(--f2)}.world{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='%23000' stroke-width='2' fill='none' viewBox='0 0 24 24'%3E%3Cpath d='M1 12a11 11 90 0 0 22 0 11 11 90 0 0-22 0m1-4h20M2 16h20M11 1a21 21 90 0 0 0 22m2-22a21 21 90 0 1 0 22'/%3E%3C/svg%3E");background:var(--f2)}.copy{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='%23000' stroke-width='2' fill='none' viewBox='0 0 24 24'%3E%3Cpath d='M11 1a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1ZM7 9H3a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1v-4'/%3E%3C/svg%3E");background:var(--f2)}.copy.yes{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='%23000' stroke-width='2' fill='none' viewBox='0 0 24 24'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");background:var(--cg)}.copy.err{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='%23000' stroke-width='2' fill='none' viewBox='0 0 24 24'%3E%3Cpath d='M1 12a1 1 0 0 0 22 0 1 1 0 0 0-22 0m11-7v9m0 5v-2'/%3E%3C/svg%3E");background:var(--cr)}.search{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='%23000' stroke-width='3' fill='none' viewBox='0 0 24 24'%3E%3Ccircle cx='9.5' cy='9.5' r='8'/%3E%3Cpath d='m23 23-9-9'/%3E%3C/svg%3E");background:var(--f2)}.github{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='%23888' stroke-width='2' fill='none' viewBox='0 0 24 24'%3E%3Cpath d='M9 19c-5 1.5-5-2.5-7-3m14 6v-3.9a3.4 3.4 0 0 0-1-2.6c3.2-.3 6.5-1.5 6.5-7A5.4 5.4 0 0 0 20 4.8 5 5 0 0 0 20 1s-1.3-.3-4 1.5a13.4 13.4 0 0 0-7 0C6.3.6 5 1 5 1a5 5 0 0 0 0 3.8 5.4 5.4 0 0 0-1.5 3.7c0 5.5 3.3 6.7 6.4 7a3.4 3.4 0 0 0-.9 2.6V22'/%3E%3C/svg%3E")}.mail{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='%23888' stroke-width='2' fill='none' viewBox='0 0 24 24'%3E%3Cpath d='m22 6-10 7L2 6m2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2Z'/%3E%3C/svg%3E")}.rss{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='%23e94' stroke-width='2' fill='none' viewBox='0 0 24 24'%3E%3Cpath d='M4 11a9 9 0 0 1 9 9M4 4a16 16 0 0 1 16 16'/%3E%3Ccircle cx='5' cy='19' r='1'/%3E%3C/svg%3E")}.x{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='%23f00' stroke-width='3' fill='none' viewBox='0 0 24 24'%3E%3Cpath d='M21 3 3 21M3 3l18 18'/%3E%3C/svg%3E")}.svg{width:1.8rem;height:1.8rem;display:inline-block;text-align:center;vertical-align:middle}.svgs{width:var(--fs);height:var(--fs);display:inline-block;text-align:center;vertical-align:middle}.svgm{min-width:24px;min-height:24px}.fa-a:hover{color:var(--a3);opacity:1}.sum,.sum p{margin:.2rem 0}.s150{font-size:1.5em}.s140{font-size:1.4em}.s130{font-size:1.3em}.s120{font-size:1.2em}.s110{font-size:1.1em}.s95{font-size:.95em}.s90{font-size:.9em}.s85{font-size:.85em}.s80{font-size:.8em}.s75{font-size:.75em}.s70{font-size:.7em}.hpad{padding:0 var(--s1)}.rpad{padding-right:var(--s1)}.vpad{padding:var(--s1) 0}.tpad{padding-top:var(--s1)}.b{font-weight:var(--fh)}.b1 video,.b1 audio,.b1 picture,.b1 img{border:1px solid var(--c4)}.c{text-align:center}.fl{float:left}.fr{float:right}.ci{display:block;margin:0 auto}.z-code{color:var(--h1);background-color:var(--h0)}.z-comment{color:var(--h2);font-style:italic}.z-variable{color:var(--h1)}.z-string{color:var(--h6)}.z-constant.z-numeric{color:var(--h4)}.z-constant.z-character.z-escape{color:var(--h7)}.z-constant.z-language{color:var(--h4)}.z-constant.z-other{color:var(--h4)}.z-keyword{color:var(--h8)}.z-keyword.z-operator{color:var(--h9)}.z-punctuation.z-separator,.z-punctuation.z-terminator{color:var(--h1)}.z-punctuation.z-section{color:var(--h1)}.z-punctuation.z-accessor{color:var(--h4)}.z-punctuation.z-definition.z-annotation{color:var(--h1)}.z-storage{color:var(--h8)}.z-storage.z-type{color:var(--h8)}.z-entity.z-name.z-function{color:var(--h5)}.z-entity.z-name{color:var(--h5)}.z-variable.z-parameter{color:var(--h4)}.z-variable.z-language{color:var(--h5);font-style:italic}.z-entity.z-name.z-tag{color:var(--h8)}.z-punctuation.z-definition.z-tag.z-end,.z-punctuation.z-definition.z-tag.z-begin,.z-punctuation.z-definition.z-tag{color:var(--h8)}.z-entity.z-other.z-attribute-name{color:var(--h5)}.z-variable.z-function,.z-variable.z-annotation{color:var(--h5)}.z-support.z-function,.z-support.z-macro{color:var(--h3)}.z-support.z-type,.z-support.z-class{color:var(--h8);font-style:italic}.z-support.z-type.z-property-name{color:var(--h8)}.z-key.z-json{color:var(--h4)}.buff{display:inline-flex;align-items:baseline;vertical-align:baseline;padding:0 .05em}.buff img{display:inline-block;height:.9lh;margin-top:-100%;padding-top:1mm}.buff-table{margin:0 2.5%;display:table}.buff-table th{text-align:center}.buff-table td>.buff-icon img{min-width:3mm;max-width:6mm}.buff-icon{position:relative;flex-direction:column}span.buff-icon{display:inline-flex}div.buff-icon{display:flex}.buff-cleansable{display:inline !important;position:absolute;height:8%;width:80%;background-color:#b1efef;margin-left:auto;margin-right:auto;top:-.42lh;left:0;right:0;box-shadow:1px 1px 1px #b1efef,1px -1px 1px #b1efef,-1px -1px 1px #b1efef,-1px 1px 1px #b1efef}.buff-table .buff-cleansable{top:0}.buff-duration{position:absolute;font-size:.7em;left:0;right:0;margin:0 -100%;text-align:center;text-shadow:1px 1px var(--c2),1px -1px var(--c2),-1px -1px var(--c2),-1px 1px var(--c2)}.buff-name{font-weight:bold;color:var(--f2)}.buff .buff-name{padding-left:.15em}.tooltip .buff-name{text-align:center}.buff-params{font-weight:500}.buff-explanation{font-size:.95em}.buff-explanation p{font-size:inherit;margin:.5em .1em .3em .1em}.buff-description{font-size:.75em;font-style:italic;margin:0 .2em;text-align:center}:root{--collapse-speed: 0.35s}.collapse-heading>button{text-align:inherit;white-space:inherit;color:inherit;padding:0;max-width:none;line-height:inherit;background:inherit}.collapse-heading>button::after{display:inline-block;--btn-size: 1.8rem;width:var(--btn-size);height:var(--btn-size);margin-left:.5rem;vertical-align:middle;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23f90'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");transition:transform var(--collapse-speed) ease-in-out}.switch .collapse-heading>button::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23c40'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.collapse-heading.collapsed>button::after{transform:rotate(.5turn)}.collapse-heading:not(.collapsed){color:#f90}.collapse{margin:0;padding:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height var(--collapse-speed) ease-in-out}@media (prefers-reduced-motion: reduce){*{transition:none !important}}.hl-fire,.hl-elec,.hl-water,.hl-ice,.hl-earth,.hl-wind,.hl-light,.hl-dark,.hl-cast,.hl-tank,.hl-dps,.hl-healer,.hl-support{font-weight:bold}.hl-elec{color:#aa27bb}.hl-fire{color:#d4360e}.hl-ice{color:#9ccedc}.hl-water{color:#5940e6}.hl-light{color:#ded28a}.hl-dark{color:#8a19a3}.hl-tank{color:#2d3a80}.hl-dps{color:#732828}.hl-healer{color:#346624}.hl-support{color:#30505c}.hl-cast{color:var(--f2)}.hl-mob{font-weight:200}.switch .hl-mob{font-weight:300}.index{padding:.2rem var(--s1) var(--s1) var(--s1)}.index-head{font-size:1.4em;font-weight:bold;margin-bottom:.2em}.toc .index-head{font-size:1.3em}.scur{pointer-events:none}.index ol{padding-left:.5em}.index>ol>li{list-style:none;margin-left:.2em;margin-top:.15em;margin-bottom:0}.index>ol>li ::first-letter{margin-left:-.2em}.index>ol>ol li{list-style-type:"-";list-style-position:inside;margin:0;font-size:.85em}.index a{font-weight:inherit}article{max-width:30cm;margin:auto}table{width:unset}mark{color:inherit;background-color:inherit;padding:0}.unconfirmed{font-style:italic}.unconfirmed ::before{content:"Unconfirmed:";color:var(--c4);text-decoration:underline 1px;padding-right:.5ch}.tooltip{max-width:9cm;padding:.4rem .5rem;border-top:2px solid var(--hl);border-bottom:1px solid var(--c4);border-left:1px solid var(--c4);border-right:1px solid var(--c4)}.tooltip hr{margin:.3rem -.2rem}table{margin:0 auto}th{border-bottom:solid var(--hl) var(--bw)}tr{border-left:var(--bw) solid var(--c3);border-right:var(--bw) solid var(--c3)}thead tr{background-color:var(--c1)}@counter-style decimal-wide{system:numeric;symbols:"0" "1" "2" "3" "4" "5" "6" "7" "8" "9";prefix:"";suffix:".  "}ul,ol{padding-inline-start:1.6em}li li{margin-block-end:.2em}li ul,li ol{margin:.35em 0 0}main hr{border-top:1px solid var(--hl);margin:.9rem .3rem}.footnotes-list{font-size:.82em;padding-inline:2em 3em;list-style:decimal-wide}.footnotes-list>li::marker{font-size:1em;font-weight:600}.footnotes-list li{margin-block:.7em}.footnotes-list li p{margin-block:.28em;font-size:inherit} \ No newline at end of file diff --git a/android-chrome-192x192.png b/android-chrome-192x192.png new file mode 100644 index 0000000..33bf405 Binary files /dev/null and b/android-chrome-192x192.png differ diff --git a/android-chrome-512x512.png b/android-chrome-512x512.png new file mode 100644 index 0000000..665a714 Binary files /dev/null and b/android-chrome-512x512.png differ diff --git a/apple-touch-icon.png b/apple-touch-icon.png new file mode 100644 index 0000000..48a8788 Binary files /dev/null and b/apple-touch-icon.png differ diff --git a/banner.png b/banner.png new file mode 100644 index 0000000..b80b8e9 Binary files /dev/null and b/banner.png differ diff --git a/browserconfig.xml b/browserconfig.xml new file mode 100644 index 0000000..c76c07c --- /dev/null +++ b/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #333333 + + + diff --git a/elasticlunr.min.js b/elasticlunr.min.js new file mode 100644 index 0000000..79dad65 --- /dev/null +++ b/elasticlunr.min.js @@ -0,0 +1,10 @@ +/** + * elasticlunr - http://weixsong.github.io + * Lightweight full-text search engine in Javascript for browser search and offline search. - 0.9.6 + * + * Copyright (C) 2017 Oliver Nightingale + * Copyright (C) 2017 Wei Song + * MIT Licensed + * @license + */ +!function(){function e(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.9.5",lunr=t,t.utils={},t.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),t.utils.toString=function(e){return void 0===e||null===e?"":e.toString()},t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var e=Array.prototype.slice.call(arguments),t=e.pop(),n=e;if("function"!=typeof t)throw new TypeError("last argument must be a function");n.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},t.EventEmitter.prototype.removeListener=function(e,t){if(this.hasHandler(e)){var n=this.events[e].indexOf(t);-1!==n&&(this.events[e].splice(n,1),0==this.events[e].length&&delete this.events[e])}},t.EventEmitter.prototype.emit=function(e){if(this.hasHandler(e)){var t=Array.prototype.slice.call(arguments,1);this.events[e].forEach(function(e){e.apply(void 0,t)},this)}},t.EventEmitter.prototype.hasHandler=function(e){return e in this.events},t.tokenizer=function(e){if(!arguments.length||null===e||void 0===e)return[];if(Array.isArray(e)){var n=e.filter(function(e){return null===e||void 0===e?!1:!0});n=n.map(function(e){return t.utils.toString(e).toLowerCase()});var i=[];return n.forEach(function(e){var n=e.split(t.tokenizer.seperator);i=i.concat(n)},this),i}return e.toString().trim().toLowerCase().split(t.tokenizer.seperator)},t.tokenizer.defaultSeperator=/[\s\-]+/,t.tokenizer.seperator=t.tokenizer.defaultSeperator,t.tokenizer.setSeperator=function(e){null!==e&&void 0!==e&&"object"==typeof e&&(t.tokenizer.seperator=e)},t.tokenizer.resetSeperator=function(){t.tokenizer.seperator=t.tokenizer.defaultSeperator},t.tokenizer.getSeperator=function(){return t.tokenizer.seperator},t.Pipeline=function(){this._queue=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in t.Pipeline.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[n]=e},t.Pipeline.getRegisteredFunction=function(e){return e in t.Pipeline.registeredFunctions!=!0?null:t.Pipeline.registeredFunctions[e]},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.getRegisteredFunction(e);if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i+1,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i,0,n)},t.Pipeline.prototype.remove=function(e){var t=this._queue.indexOf(e);-1!==t&&this._queue.splice(t,1)},t.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,i=this._queue.length,o=0;n>o;o++){for(var r=e[o],s=0;i>s&&(r=this._queue[s](r,o,e),void 0!==r&&null!==r);s++);void 0!==r&&null!==r&&t.push(r)}return t},t.Pipeline.prototype.reset=function(){this._queue=[]},t.Pipeline.prototype.get=function(){return this._queue},t.Pipeline.prototype.toJSON=function(){return this._queue.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.DocumentStore,this.index={},this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var e=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,e)},t.Index.prototype.off=function(e,t){return this.eventEmitter.removeListener(e,t)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;n._fields=e.fields,n._ref=e.ref,n.documentStore=t.DocumentStore.load(e.documentStore),n.pipeline=t.Pipeline.load(e.pipeline),n.index={};for(var i in e.index)n.index[i]=t.InvertedIndex.load(e.index[i]);return n},t.Index.prototype.addField=function(e){return this._fields.push(e),this.index[e]=new t.InvertedIndex,this},t.Index.prototype.setRef=function(e){return this._ref=e,this},t.Index.prototype.saveDocument=function(e){return this.documentStore=new t.DocumentStore(e),this},t.Index.prototype.addDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.addDoc(i,e),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));this.documentStore.addFieldLength(i,n,o.length);var r={};o.forEach(function(e){e in r?r[e]+=1:r[e]=1},this);for(var s in r){var u=r[s];u=Math.sqrt(u),this.index[n].addToken(s,{ref:i,tf:u})}},this),n&&this.eventEmitter.emit("add",e,this)}},t.Index.prototype.removeDocByRef=function(e){if(e&&this.documentStore.isDocStored()!==!1&&this.documentStore.hasDoc(e)){var t=this.documentStore.getDoc(e);this.removeDoc(t,!1)}},t.Index.prototype.removeDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.hasDoc(i)&&(this.documentStore.removeDoc(i),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));o.forEach(function(e){this.index[n].removeToken(e,i)},this)},this),n&&this.eventEmitter.emit("remove",e,this))}},t.Index.prototype.updateDoc=function(e,t){var t=void 0===t?!0:t;this.removeDocByRef(e[this._ref],!1),this.addDoc(e,!1),t&&this.eventEmitter.emit("update",e,this)},t.Index.prototype.idf=function(e,t){var n="@"+t+"/"+e;if(Object.prototype.hasOwnProperty.call(this._idfCache,n))return this._idfCache[n];var i=this.index[t].getDocFreq(e),o=1+Math.log(this.documentStore.length/(i+1));return this._idfCache[n]=o,o},t.Index.prototype.getFields=function(){return this._fields.slice()},t.Index.prototype.search=function(e,n){if(!e)return[];e="string"==typeof e?{any:e}:JSON.parse(JSON.stringify(e));var i=null;null!=n&&(i=JSON.stringify(n));for(var o=new t.Configuration(i,this.getFields()).get(),r={},s=Object.keys(e),u=0;u0&&t.push(e);for(var i in n)"docs"!==i&&"df"!==i&&this.expandToken(e+i,t,n[i]);return t},t.InvertedIndex.prototype.toJSON=function(){return{root:this.root}},t.Configuration=function(e,n){var e=e||"";if(void 0==n||null==n)throw new Error("fields should not be null");this.config={};var i;try{i=JSON.parse(e),this.buildUserConfig(i,n)}catch(o){t.utils.warn("user configuration parse failed, will use default configuration"),this.buildDefaultConfig(n)}},t.Configuration.prototype.buildDefaultConfig=function(e){this.reset(),e.forEach(function(e){this.config[e]={boost:1,bool:"OR",expand:!1}},this)},t.Configuration.prototype.buildUserConfig=function(e,n){var i="OR",o=!1;if(this.reset(),"bool"in e&&(i=e.bool||i),"expand"in e&&(o=e.expand||o),"fields"in e)for(var r in e.fields)if(n.indexOf(r)>-1){var s=e.fields[r],u=o;void 0!=s.expand&&(u=s.expand),this.config[r]={boost:s.boost||0===s.boost?s.boost:1,bool:s.bool||i,expand:u}}else t.utils.warn("field name in user configuration not found in index instance fields");else this.addAllFields2UserConfig(i,o,n)},t.Configuration.prototype.addAllFields2UserConfig=function(e,t,n){n.forEach(function(n){this.config[n]={boost:1,bool:e,expand:t}},this)},t.Configuration.prototype.get=function(){return this.config},t.Configuration.prototype.reset=function(){this.config={}},lunr.SortedSet=function(){this.length=0,this.elements=[]},lunr.SortedSet.load=function(e){var t=new this;return t.elements=e,t.length=e.length,t},lunr.SortedSet.prototype.add=function(){var e,t;for(e=0;e1;){if(r===e)return o;e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o]}return r===e?o:-1},lunr.SortedSet.prototype.locationFor=function(e){for(var t=0,n=this.elements.length,i=n-t,o=t+Math.floor(i/2),r=this.elements[o];i>1;)e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o];return r>e?o:e>r?o+1:void 0},lunr.SortedSet.prototype.intersect=function(e){for(var t=new lunr.SortedSet,n=0,i=0,o=this.length,r=e.length,s=this.elements,u=e.elements;;){if(n>o-1||i>r-1)break;s[n]!==u[i]?s[n]u[i]&&i++:(t.add(s[n]),n++,i++)}return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){var t,n,i;this.length>=e.length?(t=this,n=e):(t=e,n=this),i=t.clone();for(var o=0,r=n.toArray();o \ No newline at end of file diff --git a/fonts/KaTeX_AMS-Regular.woff2 b/fonts/KaTeX_AMS-Regular.woff2 new file mode 100644 index 0000000..0acaaff Binary files /dev/null and b/fonts/KaTeX_AMS-Regular.woff2 differ diff --git a/fonts/KaTeX_Caligraphic-Bold.woff2 b/fonts/KaTeX_Caligraphic-Bold.woff2 new file mode 100644 index 0000000..f390922 Binary files /dev/null and b/fonts/KaTeX_Caligraphic-Bold.woff2 differ diff --git a/fonts/KaTeX_Caligraphic-Regular.woff2 b/fonts/KaTeX_Caligraphic-Regular.woff2 new file mode 100644 index 0000000..75344a1 Binary files /dev/null and b/fonts/KaTeX_Caligraphic-Regular.woff2 differ diff --git a/fonts/KaTeX_Fraktur-Bold.woff2 b/fonts/KaTeX_Fraktur-Bold.woff2 new file mode 100644 index 0000000..395f28b Binary files /dev/null and b/fonts/KaTeX_Fraktur-Bold.woff2 differ diff --git a/fonts/KaTeX_Fraktur-Regular.woff2 b/fonts/KaTeX_Fraktur-Regular.woff2 new file mode 100644 index 0000000..735f694 Binary files /dev/null and b/fonts/KaTeX_Fraktur-Regular.woff2 differ diff --git a/fonts/KaTeX_Main-Bold.woff2 b/fonts/KaTeX_Main-Bold.woff2 new file mode 100644 index 0000000..ab2ad21 Binary files /dev/null and b/fonts/KaTeX_Main-Bold.woff2 differ diff --git a/fonts/KaTeX_Main-BoldItalic.woff2 b/fonts/KaTeX_Main-BoldItalic.woff2 new file mode 100644 index 0000000..5931794 Binary files /dev/null and b/fonts/KaTeX_Main-BoldItalic.woff2 differ diff --git a/fonts/KaTeX_Main-Italic.woff2 b/fonts/KaTeX_Main-Italic.woff2 new file mode 100644 index 0000000..b50920e Binary files /dev/null and b/fonts/KaTeX_Main-Italic.woff2 differ diff --git a/fonts/KaTeX_Main-Regular.woff2 b/fonts/KaTeX_Main-Regular.woff2 new file mode 100644 index 0000000..eb24a7b Binary files /dev/null and b/fonts/KaTeX_Main-Regular.woff2 differ diff --git a/fonts/KaTeX_Math-BoldItalic.woff2 b/fonts/KaTeX_Math-BoldItalic.woff2 new file mode 100644 index 0000000..2965702 Binary files /dev/null and b/fonts/KaTeX_Math-BoldItalic.woff2 differ diff --git a/fonts/KaTeX_Math-Italic.woff2 b/fonts/KaTeX_Math-Italic.woff2 new file mode 100644 index 0000000..215c143 Binary files /dev/null and b/fonts/KaTeX_Math-Italic.woff2 differ diff --git a/fonts/KaTeX_SansSerif-Bold.woff2 b/fonts/KaTeX_SansSerif-Bold.woff2 new file mode 100644 index 0000000..cfaa3bd Binary files /dev/null and b/fonts/KaTeX_SansSerif-Bold.woff2 differ diff --git a/fonts/KaTeX_SansSerif-Italic.woff2 b/fonts/KaTeX_SansSerif-Italic.woff2 new file mode 100644 index 0000000..349c06d Binary files /dev/null and b/fonts/KaTeX_SansSerif-Italic.woff2 differ diff --git a/fonts/KaTeX_SansSerif-Regular.woff2 b/fonts/KaTeX_SansSerif-Regular.woff2 new file mode 100644 index 0000000..a90eea8 Binary files /dev/null and b/fonts/KaTeX_SansSerif-Regular.woff2 differ diff --git a/fonts/KaTeX_Script-Regular.woff2 b/fonts/KaTeX_Script-Regular.woff2 new file mode 100644 index 0000000..b3048fc Binary files /dev/null and b/fonts/KaTeX_Script-Regular.woff2 differ diff --git a/fonts/KaTeX_Size1-Regular.woff2 b/fonts/KaTeX_Size1-Regular.woff2 new file mode 100644 index 0000000..c5a8462 Binary files /dev/null and b/fonts/KaTeX_Size1-Regular.woff2 differ diff --git a/fonts/KaTeX_Size2-Regular.woff2 b/fonts/KaTeX_Size2-Regular.woff2 new file mode 100644 index 0000000..e1bccfe Binary files /dev/null and b/fonts/KaTeX_Size2-Regular.woff2 differ diff --git a/fonts/KaTeX_Size3-Regular.woff2 b/fonts/KaTeX_Size3-Regular.woff2 new file mode 100644 index 0000000..249a286 Binary files /dev/null and b/fonts/KaTeX_Size3-Regular.woff2 differ diff --git a/fonts/KaTeX_Size4-Regular.woff2 b/fonts/KaTeX_Size4-Regular.woff2 new file mode 100644 index 0000000..680c130 Binary files /dev/null and b/fonts/KaTeX_Size4-Regular.woff2 differ diff --git a/fonts/KaTeX_Typewriter-Regular.woff2 b/fonts/KaTeX_Typewriter-Regular.woff2 new file mode 100644 index 0000000..771f1af Binary files /dev/null and b/fonts/KaTeX_Typewriter-Regular.woff2 differ diff --git a/fonts/Roboto-Bold.woff2 b/fonts/Roboto-Bold.woff2 new file mode 100644 index 0000000..771fbec Binary files /dev/null and b/fonts/Roboto-Bold.woff2 differ diff --git a/fonts/Roboto-Italic.woff2 b/fonts/Roboto-Italic.woff2 new file mode 100644 index 0000000..e1b7a79 Binary files /dev/null and b/fonts/Roboto-Italic.woff2 differ diff --git a/fonts/Roboto-Mono-Italic.woff2 b/fonts/Roboto-Mono-Italic.woff2 new file mode 100644 index 0000000..ece53bd Binary files /dev/null and b/fonts/Roboto-Mono-Italic.woff2 differ diff --git a/fonts/Roboto-Mono.woff2 b/fonts/Roboto-Mono.woff2 new file mode 100644 index 0000000..f8894ba Binary files /dev/null and b/fonts/Roboto-Mono.woff2 differ diff --git a/fonts/Roboto.woff2 b/fonts/Roboto.woff2 new file mode 100644 index 0000000..020729e Binary files /dev/null and b/fonts/Roboto.woff2 differ diff --git a/fru/arenas/fatebreaker.png b/fru/arenas/fatebreaker.png new file mode 100644 index 0000000..27085a2 Binary files /dev/null and b/fru/arenas/fatebreaker.png differ diff --git a/fru/buffs/index.html b/fru/buffs/index.html new file mode 100644 index 0000000..91514c9 --- /dev/null +++ b/fru/buffs/index.html @@ -0,0 +1,2261 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Appendix: Buffs | Dynamis.gg + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+

Appendix: Buffs

+ + + + +

All Phases

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BuffDescriptionNotes
+
+ + +
+
Damage DownDamage dealt is reduced.

This is a 90% damage reduction.

+
+
+ + +
+
Magic Vulnerability UpMagic damage taken is increased.

Magic damage is lethal.

+
+
+ + +
+
Mark of MortalityBranded with a mark of mortality. Damage dealt is reduced. Too many stacks will result in KO.

This is a 90% damage down, which stacks with a regular Damage Down to produce a 99% damage down. +Two or more stacks is instantly lethal.

+
+
+ + +
+
Physical Vulnerability UpPhysical damage taken is increased.

Physical damage is lethal.

+

Phase 1

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BuffDescriptionNotes
+
+ + +
+
BleedingSustaining damage over time.

This is a very strong bleed from the raidwide.

+
+
+ + +
+
Fated Burn MarkEmblazoned with a fateful burn mark that will cause you to explode with a vengeance when you are KO'd.

If you die before the debuff falls off, it’s a heavy raidwide with a Damge Down, but not an automatic wipe.

+
+
+ + +
+
Floating FettersBound in midair and unable to move.

You can still take actions.

+
+
+ + +
+
Powder Mark TrailEmblazoned with a gunpowder mark that will cause you and the nearest ally to explode when this effect expires.

Both players are hit by large AoE tankbusters. The explosions will go off immediately if the bearer dies.

+
+
+ + +
+
PreyMarked as prey.

You are tethered and will be hit by a mechanic from the tethered boss/clone.

+

Phase 2

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BuffDescriptionNotes
+
+ + +
+
BleedingSustaining damage over time.

This is a massive dot as a penalty for standing in a Sinbound Holy puddle. +It is so strong that it typically one-shots.

+

Technically, it is two separate debuffs. +The first one has indefinite duration, but when it ticks it replaces itself with a 30-second version.

+
+
+ + +
+
Chains of Everlasting LightBound with chains of everlasting light. Will be subject to a Curse of Everlasting Light when this effect expires.

You are tethered to two other players, but have no restrictions yet.

+
+
+ + +
+
Curse of Everlasting LightCursed by everlasting light. Close proximity to the player to whom you are bound will result in unaspected damage to those nearby.

You are tethered to two other players.

+
+
+ + +
+
Deep FreezeYour body is encased in ice, preventing action and dealing damage over time.

Unable to move or take actions.

+
+
+ + +
+
LightsteepedOverflowing with astral energy. Upon accumulating 5 stacks, you will deal unaspected damage to those nearby.

At 5 stacks, explodes in a raidwide that inflicts an additional stack on everyone. The ensuing chain reaction will almost invariably wipe the party.

+
+
+ + + + +
+
Physical Vulnerability UpPhysical damage taken is increased.

Physical damage is lethal. Unlike in other phases, this can be cleansed with Esuna or Warden’s Paean.

+
+
+ + +
+
StunUnable to execute actions.

Can’t move or take actions.

+
+
+ + +
+
The Weight of LightWill unleash Powerful Light when this effect expires.

A gold orb appears above your head. Powerful Light is light party stack AoE that inflicts one stack of Lightsteeped on anyone hit.

+
+
+ + +
+
Thin IceHaving trouble maintaining a solid foothold upon ice-covered ground.

You will slide quite a long distance in whatever direction you try to move. Almost the entire width of the arena.

+

Phase 2 Intermission

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BuffDescriptionNotes
+
+ + +
+
BleedingSustaining damage over time.

This is a massive dot as a penalty for standing in a Sinbound Holy puddle. +It is so strong that it typically one-shots.

+

Technically, it is two separate debuffs. +The first one has indefinite duration, but when it ticks it replaces itself with a 30-second version.

+
+
+ + +
+
InvincibilityInvulnerable to all damage.

The Ice Veil is immune to all damage while any crystals are tethered to it.

+
+
+ + +
+
Vulnerability DownDamage taken is reduced.

The crystals receive this buff if they are hit by one of the cleaves.

+

The Ice Veil receives it in place of Invicincibility if all the light crystals are killed and all dark crystals are left alive.

+

Phase 3

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BuffDescriptionNotes
+
+ + +
+
DoomCertain death when counter reaches zero.

Death really is certain.

+
+
+ + +
+
Fire Resistance Down IIFire resistance is significantly reduced.

Fire damage is lethal.

+
+
+ + +
+
ReturnAetherially entwined with the temporal manifold. You will be stunned and drawn back to your aetherial trace when this effect expires.

When this expires, you will be returned to the snapshotted position and stunned for a few seconds.

+
+
+ + +
+
Spell-in-Waiting RefrainThe next spell cast will activate in stages after a delay.

This buff is purely an indicator that the Oracle’s Dark Water III during Apocalypse will be broken into stages. There’s no other effect.

+
+
+ + +
+
Spell-in-Waiting: Dark Blizzard IIIDesignated target of Dark Blizzard III, which will activate when this effect expires.

Dark Blizzard III is a donut AoE.

+
+
+ + +
+
Spell-in-Waiting: Dark EruptionDesignated target of Dark Eruption, which will activate when this effect expires.

Dark Eruption is a circle AoE.

+
+
+ + +
+
Spell-in-Waiting: Dark Fire IIIDesignated target of Dark Fire III, which will activate when this effect expires.

Dark Fire III is a large circle AoE.

+
+
+ + +
+
Spell-in-Waiting: Dark Water IIIDesignated target of Dark Water III, which will activate when this effect expires.

Dark Water III is a light party stack AoE. Will inflict a stack of Mark of Mortality if not soaked by 4+ players.

+
+
+ + +
+
Spell-in-Waiting: ReturnDesignated target of Return, which will activate when this effect expires.

When this expires, your position will be snapshotted and a blue marker appears to indicate where it was snapshot. +When the Return buff expires, you will be returned to the snapshotted position.

+
+
+ + +
+
Spell-in-Waiting: ShadoweyeDesignated target of Shadoweye, which will activate when this effect expires.

Shadoweye will inflict Doom, which is guaranteed death, on any player who isn’t looking away.

+
+
+ + +
+
Spell-in-Waiting: Unholy DarknessDesignated target of Unholy Darkness, which will activate when this effect expires.

Unholy Darkness is a large party stack. Will inflict Mark of Mortality if not soaked by 5+ players.

+
+
+ + +
+
StunUnable to execute actions.

Can’t move or take actions.

+

Phase 4

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BuffDescriptionNotes
+
+ + +
+
Darkness's DesignSubject to the Oracle of Darkness's design. Damage taken from certain targets is increased.

Damage from the Usurper of Frost is lethal.

+
+
+ + +
+
Light's DesignSubject to the Oracle of Light's design. Damage taken from certain targets is increased.

Damage from the Oracle of Darkness is lethal.

+
+
+ + +
+
LightsteepedOverflowing with astral energy. Upon accumulating 5 stacks, you will deal unaspected damage to those nearby.

At 5 stacks, explodes in a raidwide that inflicts an additional stack on everyone. The ensuing chain reaction will almost invariably wipe the party.

+
+
+ + +
+
Refulgent ChainBound with chains of light. Your Refulgent Fate will be sealed when this effect expires.

You are tethered to two other players, but have no restrictions yet.

+
+
+ + +
+
Refulgent FateCursed by binding light. If the distance between you and the player to whom you are bound becomes too great or too small, you will deal unaspected damage to those nearby.

You are tethered to two other players. You must stay at roughly the distance between the two towers.

+
+
+ + +
+
ReturnAetherially entwined with the temporal manifold. You will be stunned and drawn back to your aetherial trace when this effect expires.

When this expires, you will be returned to the snapshotted position and stunned for a few seconds.

+
+
+ + +
+
Spell-in-Waiting: Dark Aero IIIDesignated target of Dark Aero III, which will activate when this effect expires.

Dark Aero III is a large circle AoE. Any other player hit by the AoE is knocked back a long way.

+
+
+ + +
+
Spell-in-Waiting: Dark Blizzard IIIDesignated target of Dark Blizzard III, which will activate when this effect expires.

Dark Blizzard III is a donut AoE.

+
+
+ + +
+
Spell-in-Waiting: Dark EruptionDesignated target of Dark Eruption, which will activate when this effect expires.

Dark Eruption is a circle AoE.

+
+
+ + +
+
Spell-in-Waiting: Dark Water IIIDesignated target of Dark Water III, which will activate when this effect expires.

Dark Water III is a light party stack AoE. Will inflict a stack of Mark of Mortality if not soaked by 4+ players.

+
+
+ + +
+
Spell-in-Waiting: QuietusDesignated target of Quietus, which will activate when this effect expires.

Quietus is a raidwide with no additional effects.

+
+
+ + +
+
Spell-in-Waiting: ReturnDesignated target of Return, which will activate when this effect expires.

When this expires, your position will be snapshotted and a blue marker appears to indicate where it was snapshot. +When the Return buff expires, you will be returned to the snapshotted position.

+
+
+ + +
+
Spell-in-Waiting: Unholy DarknessDesignated target of Unholy Darkness, which will activate when this effect expires.

Unholy Darkness is a large party stack. Will inflict Mark of Mortality if not soaked by 5+ players.

+
+
+ + +
+
StunUnable to execute actions.

Can’t move or take actions.

+
+
+ + +
+
WyrmclawShredded by draconic talons. KO will occur when countdown reaches 0.

Must be cleansed by touching a dragon head. This will cause an AoE and leave a blue puddle on the ground.

+
+
+ + +
+
WyrmfangTorn by draconic teeth. KO will occur when countdown reaches 0.

Must be cleansed by touching a blue puddle left behind by someone cleansing Wyrmclaw.

+

Phase 5

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BuffDescriptionNotes
+
+ + +
+
Dark Resistance Down IIDark resistance is significantly reduced.

Dark damage is lethal.

+
+
+ + +
+
Down for the CountUnable to move or execute actions.

Given during the transition to phase 5.

+
+
+ + +
+
Light Resistance Down IILight resistance is significantly reduced.

Light damage is lethal.

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

© 2024 Tvnariea Reksane
Final Fantasy XIV assets are © Square Enix and used under license

+

Powered by Zola & Abridge

+
+
+ + diff --git a/fru/i1/index.html b/fru/i1/index.html new file mode 100644 index 0000000..08c28c2 --- /dev/null +++ b/fru/i1/index.html @@ -0,0 +1,330 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Intermission: Crystals | Dynamis.gg + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+

Intermission: Crystals

+ + + + +

Assuming the Usurper of Frost was successfully brought below 20% in her phase, +there’s a short intermission phase before phase 3. +After the Absolute Zero cast, Shiva knocks everyone back from center +and inflicts + + + + Deep Freeze + on everyone, forcing you to wait for a brief scene. +Shiva becomes encased in ice, just like in +E8N, +and the arena becomes a bright icy blue.

+

16 seconds later, the + + + + lifts, and the crystals spawn. +4 Crystals of Light spawn on the cardinals far away from the boss, +while 4 Crystals of Darkness spawn on the intercardinals close to the boss. +The crystal covering the Usurper of Frost is called the Ice Veil, +and it almost immediately begins casting Endless Ice Age, the enrage for the phase. +You must destroy the Veil before the cast completes to progress to phase 3.

+

The crystals are all tethered to the Ice Veil, granting it + + + + Invincibility +. +If you destroy all the adds, the + + + + will be removed +and the Ice Veil will fall rapidly.

+

Gaia will also appear, channeling darkness energy into the crystal in an attempt to free Ryne. +It doesn’t seem to be doing much, though…

+

Crystal Attacks

+

There isn’t much in the way of mechanics in this intermission. +Periodically, each of the Crystals of Light +will target a large, circular +AoE at the nearest player, +while each fo the Crystals of Darkness will target the nearest player +with a narrow cone.

+

Oddly, there’s no castbar for the big circles, +but the narrow cones are called Sinbound Blizzard. +You must be careful about aiming the cones, because if they hit a crystal, +that crystal will receive + + + + Vulnerability Down + for the remainder of the phase. +The + + + + Vulnerability Down + lowers the damage done to a Crystal of Darkness or +the Ice Veil by 80%, but makes a Crystal of Light invulnerable.

+

Note: Due to a graphical glitch, +sometimes the cone +omens do not render correctly. +They’re still there, and they can still hurt you.

+

With the second wave of AoEs, the Crystals of Light will target the nearest players +with passable tethers. +After the third wave, the targeted players will be hit by a series of three +Hiemal Ray, small circular AoEs leaving behind puddles that inflict a + +DoT.

+

The Eternal Ice Fragment

+

If you destroy all the crystals and the Ice Veil, +then the crystal holding Shiva shatters and the transition to phase 3 begins. +An interactable Eternal Ice Fragment appears on the ground +just in front of Shiva, but it shatters before anyone can interact with it. +If you remember your lore, one of Gaia’s key memories you saved during +E12N +was of Ryne and Gaia making the fragment into a necklace. +Its destruction seems portentious…

+

And in actual fact, while you can proceed to the end of phase 4 +withotu the Eternal Ice Fragment, +you will be unable to enter phase 5 and clear the fight. +Gaia’s voice line near the end of the phase, “Is my darkness not enough?!” +is the clue to the alternate solution to the phase that’s required to clear.

+

Instead of killing the Crystals of Darkness, they must all be left alive. +If all four survive while the Crystals of Light die, +they will begin channeling dark energy into Gaia and the Ice Veil. +Note that using caster LB3 will instantly defeat the Crystals of Darkness, +so it can’t be used if you want to clear the fight. +That said, LB3 is still a great prog tool, because the Ice Veil +absolutely melts[1] if all the crystals are dead.

+

The Ice Veil will lose its + + + + Invincibility + +and gain a + + + + Vulnerability Down + in its place, reducing incoming damage by 50% +To make up for it, Gaia’s channeling will complete successfully, +and near the end of the Endless Ice Age cast, +Gaia will do her enormous hammer slam from +E12N +and remove a full half of the Ice Veil’s health bar.

+

If you complete the phase in this way, then instead of shattering, +the Eternal Ice Fragment will be absorbed into Shiva +and you will be on the path to clearing the fight.

+

Acknowledgments

+

Special thanks for this section go to Silent Bramble and Nova, +with usual thanks to PoV uploaders.

+
    +
  1. +

    hehehe

    +
  2. +
+ + +
+ + +
+
+
+ + + +

© 2024 Tvnariea Reksane
Final Fantasy XIV assets are © Square Enix and used under license

+

Powered by Zola & Abridge

+
+
+ + + + diff --git a/fru/index.html b/fru/index.html new file mode 100644 index 0000000..7ceffeb --- /dev/null +++ b/fru/index.html @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Dynamis.gg | Dynamis.gg Raid Resources + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + + + + +
+ +
+
+
+ + + +

© 2024 Tvnariea Reksane
Final Fantasy XIV assets are © Square Enix and used under license

+

Powered by Zola & Abridge

+
+
+ + diff --git a/fru/p1/burnt-strike.css b/fru/p1/burnt-strike.css new file mode 100644 index 0000000..35ae7d6 --- /dev/null +++ b/fru/p1/burnt-strike.css @@ -0,0 +1 @@ +.strat{width:500px;height:500px}.svg-background{fill:rgba(0,0,0,0)}.arena-size{cx:0;cy:0;r:20px;x:-20px;y:-20px;width:40px;height:40px}#boss{x:-5px;y:-5px;width:10px;height:10px;transform:rotate(.5turn)}.player-icon{cx:0;cy:0;r:.75px;x:-.75px;y:-.75px;width:1.5px;height:1.5px}#mt{y:-6.5}#ot{x:.5;y:2}#h1{x:2;y:5}#h2{x:-2.5;y:2}#m1{x:2;y:1}#m2{x:-.5;y:3.5}#r1{x:-3;y:4}#r2{x:3;y:3.5} \ No newline at end of file diff --git a/fru/p1/burnt-strike.svg b/fru/p1/burnt-strike.svg new file mode 100644 index 0000000..207970e --- /dev/null +++ b/fru/p1/burnt-strike.svg @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fru/p1/index.html b/fru/p1/index.html new file mode 100644 index 0000000..a7dce38 --- /dev/null +++ b/fru/p1/index.html @@ -0,0 +1,616 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Phase 1: Fatebreaker | Dynamis.gg + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+

Phase 1: Fatebreaker

+ + + + +

The fight begins with Fatebreaker, the boss from +E8S. +The mechanics will be quite familiar if you’ve done E11S, although there are no light attacks. +To clear the phase, Fatebreaker must be defeated completely.

+

This phase is largely uptime, with a single downtime mechanic.

+

Unless otherwise noted, any attack other than a spread, stack, raidwide, or tankbuster inflicts + + + + 2m + + Damage Down +, and all spreads and stacks inflict + + + 2 + + Magic Vulnerability Up +.

+

Sequence 1: Cyclonic Break

+

Fatebreaker immediately jumps into a mechanic sequence +with a Cyclonic Break cast. +During this cast, he will be surrounded by either fire or lightning. +This will determine whether you need to stack in pairs or +spread during the mechanic.

+

The attack executes a narrow (22.5°) conal spread targeting each player, without an + +omen. +These inflict + + + 2 + + Physical Vulnerability Up +, so any player hit by two or more will die. +The location of these cones is saved and will be used for the rest of the mechanic.

+

2 seconds after the first cones, a second set of cones go out on the same location. +These must be dodged. +At the same time, players will be hit by a fire or lightning attack:

+
    +
  • +

    If it is fire, then each DPS will be hit +by Sinsmoke, a +pair stack +AoE. +For each dead DPS, the attack will hit a random support instead, +doubling up if fewer than four players are alive.

    +
  • +
  • +

    If it is lightning, then all players will be hit by Sinsmite, a +spread AoE.

    +
  • +
+

After the second set of cones and stack/spread, two more sets of cones go out, one after the other. +Each is rotated clockwise from the previous by 1/16th of a circle +(22.5°, i.e. one cone’s width). +Like the second set, these must be dodged.

+

Powder Mark Trail

+

As Cyclonic Break resolves, +Fatebreaker casts Power Mark Trail, +a single-target tankbuster that inflicts both + + + 16 + + Powder Mark Trail + and + + + + 14 + + Physical Vulnerability Up +. +The + + + + will explode if the tank dies or at the start of the next +mechanic. +while the + + + + will cause subsequent auto-attacks to be lethal.

+

Sequence 2: Unbroken Sky

+

Fatebreaker begins casting Unbroken sky, +and once again is surrounded by fire or lightning. +As before, this signals the upcoming spread or stack.

+

Once the cast completes, Fatebreaker goes untargetable and disappears, +and the arena is be covered in a deep fog. +If you’ve played +E11S, +you will recognize this from Prismatic Deception. +Eight Fatebreaker clones—Fatebreaker's Image—will +appear just outside the arena, one in each +principal direction. +Due to the fog, they can only be seen if you are nearby. +Right after they appear, the + + + + from earlier will expire, +causing large +AoE tankbusters to hit both the player originally hit by +Powder Mark Trail and the player nearest to them.

+

Three of the clones will raise their gunblades to point straight up and begin casting +Blasting Zone, +while the rest will keep theirs facing downwards and at an angle before disappearing. +Fatebreaker reappears just before the casts complete, and begins charging a new +Cyclonic Break. The fire or lightning element need not be the same as before.

+

When the Blasting Zone completes, +the three clones will cleave in front of them in a line. +At the same time, players will be hit by an attack depending on the element +charged during the Unbroken Sky cast:

+
    +
  • Sinbound Fire III, an +LP stack AoE.
  • +
  • Sinbound Thunder III, a spread AoE.
  • +
+

When Fatebreaker finishes casting, +the second Cyclonic Break is exactly the same as the first, +except that the element is random and may be different from before.

+

Turn of the Heavens

+

During the execution of Cyclonic Break, two more clones will appear: +one just north of Fatebreaker, and one at the west side of the arena. +The one next to Fatebreaker casts Turn of the Heavens +with either fire or lightning, +while the one on the edge will cast Burnt Strike.

+

As the cast completes:

+
    +
  • Four Halo of Flame and four Halo of Levin appear +near the outside of the arena at cardinals and intercardinals. They are always positioned with +Flame halos on the west or east side, and Levin halos on the other. +The halos begin casting Brightfire.
  • +
  • Two clones appear at random intercardinals, tethered to two random players, +and begin casting Bound of Faith. +The tethered players also receive + + + + Prey + and + + + 15 + + Fated Burn Mark +.
  • +
  • One more clone appears at the north end of the arena, +casting Burnt Strike.
  • +
+

After the new adds begin casting, the first Burnt Strike goes off, +cleaving in a line from west to east. +The cleave repeats immediately, but is substantially wider the second time. +A few seconds later, the second Burnt Strike goes off, cleaving from north to south. +The follow-up strike will hit all players with a knockback east or west, away from the center. +These knockbacks cannot be resisted.

+

Shortly afterwards, all the halos explode, dealing lethal damage in a circle. +The halos that do not match the element of the Turn of the Heavens cast only explode +directly underneath themselves. +The halos that do match will explode inside the larger circle denoted on the floor.

+

At the same time, the two tethered players are lifted into the air with + + + + 3 + + Floating Fetters +, then charged by the adds and hit with Sinsmoke. +Unlike earlier, this Sinsmoke is an +LP stack that inflicts + + + + 2m + + Mark of Mortality + if it hits fewer than 4 players. +If the tethered player died, a random player will be targeted instead.

+

Burnished Glory

+

Fatebreaker reappears shortly after Sinsmoke, +and is immediately targetable. +The sequence wraps up with Burnished Glory, +a raidwide that inflicts a heavy + + + 15 + + Bleeding +.

+

Sequence 3: Fall of Faith

+

The third sequence begins with a Fall of Faith cast. +Fatebreaker will glow with fire or lightning energy, +and mark a player with a tether and + + + + Prey +. +The tether will glow red or blue depending on the element being charged.

+

Over the course of the cast, three clones will appear at the NW, N, and NE edges of the arena, +in that order. +Each will begin casting its own Fall of Faith with its own tether and + + + + +, for a total of four on four different targets.

+

When the casts complete, similar to the end of the previous sequence, +the boss or clone will lift their target into the air with + + + 3 + + Floating Fetters + and charge +at them. +The attack is either Sinblaze or Sinsmite, +depending on the element, but with completely new mechanics:

+
    +
  • Sinblaze hits the targeted player as well as producing a 90° cone originating from +the target, aimed towards the nearest player. +The entire attack is an +LP stack +so to satisfy the stack, there must be at least three players inside the cone, +plus the main target. +If there are fewer than four players total hit by the attack, +it will inflict + + + 2m + + Mark of Mortality +.
  • +
  • Sinsmite hits the targeted player +and produces three 120° cones originating from them, aimed towards the three nearest players. +Because these are so wide, positioning is critical.
  • +
+

Both Sinblaze and Sinsmite inflict + + + 4 + + Magic Vulnerability Up +, +which lasts until after the next attack in the sequence. +Thus, a player hit by two consecutive attacks will die.

+

Fatebreaker completes the sequence with another Burnished Glory +and another Powder Mark Trail. +Note that the +DoT from the Burnished Glory will make the tankbuster +require more mitigation/healing than the first time.

+

Sequence 4: Burnt Strike

+

Fatebreaker casts Burnt Strike, glowing with fire or lightning. +As he does so, three towers appear along the east or west edge of the arena. +The total number of players required for the towers is always 6, +but the distribution is random: it could be 1/1/4, 1/2/3, or 2/2/2 in any order.

+

The Burnt Strike is a north-south line cleave, followed by:

+
    +
  • For fire, all players are knocked back east or west away from the center.
  • +
  • For lightning, a second, wider line cleave.
  • +
+

Right after the follow-up attack, the towers will go off and, at the same time, +the + + + + Powder Mark Trail + detonates on its target and the newest player +If a tower is missed, it explodes in a heavy raidwide +with + + + 2m + +.

+

Enrage

+

Fatebreaker now casts Burnished Glory for a third and final time, +with a long castbar. +If the cast succeeds, the party wipes. +To proceed to the next phase, Fatebreaker must be killed before the cast completes.

+

Acknowledgments

+

Thanks to various players in the NAUR discord for answering my questions and running tests, +particularly Cia, Bonafide Bovine, Unit, HopeP, +and Ewaen Enjinia. +Thanks also to everyone who has progged this fight early and uploaded PoVs for my reference.

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

© 2024 Tvnariea Reksane
Final Fantasy XIV assets are © Square Enix and used under license

+

Powered by Zola & Abridge

+
+
+ + + + diff --git a/fru/p2/index.html b/fru/p2/index.html new file mode 100644 index 0000000..46f52c4 --- /dev/null +++ b/fru/p2/index.html @@ -0,0 +1,846 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Phase 2: Usurper of Frost | Dynamis.gg + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+

Phase 2: Usurper of Frost

+ + + + +

As soon as Fatebreaker dies, the arena transitions to Shiva’s arena from + +E8S, and Shiva herself appears. +Although she looks the same, Ryne is possessed by Mitron +and is called the Usurper of Frost. +But everyone still calls her Shiva.

+

This phase is the closest that FRU has to a trio phase, with two long downtime mechanics. +Unlike a traditional trio phase, however, there is a little bit of uptime mechanic sprinkled in. +To complete the phase, she must be brought down below 20% health before the end of the enrage. +Also, unlike in the original fight, the edge of the arena is not a cliff +but stays as the traditional Ultimate deathwall.

+

As before, unless otherwise noted, any attack +other than a spread, stack, raidwide, or tankbuster inflicts + + + 2m + + Damage Down +, +and all spreads and stacks inflict + + + 2 + + Magic Vulnerability Up + +to prevent players from taking multiple hits.

+

Intro

+

Shiva kicks things off with Quadruple Slap, +a tankbuster that only actually has two hits. +It’s a typical one-two buster with room for a tank swap. +It inflicts a cleansable + + + + 15 + + Physical Vulnerability Up +, +forcing a swap, cleanse, or invuln.[1]

+

After one follow-up auto—which can also be lethal, thanks to the vuln—Shiva +teleports to south of center, faces north, and begins casting Mirror Image. +This cast has no associated attack, but summons a light-form clone, +the Oracle's Reflection, directly in the center of the arena. +The Usurper of Frost herself remains in ice form. +The two of them will bounce around a lot during the next mechanic.

+

Sequence 1: Diamond Dust

+

AoE Hell

+

Once the Reflection appears, Shiva casts Diamond Dust, +a raidwide that kicks off the real mechanic. +Note that the raidwide is slightly delayed from the end of the cast. +Don’t mitigate too early. +Shiva herself disappears, kicking off the long downtime mechanic.

+

Three different things happen in rapid succession:

+
    +
  1. It wouldn’t be a Shiva fight without the classic circular AoEs +around the oustide of the arena.
  2. +
  3. The Oracle's Reflection begins casting +either Axe Kick or Scythe Kick.
  4. +
  5. Four players–all DPS or all supports–are +targeted by markers with a circular yellow omen.
  6. +
+

All of these mechanics, and more, need to be solved simultaneously.

+
    +
  1. +

    +Omens for the classic circle AoEs—the true +Diamond Dust—appear in the +principal directions in three waves. +The first wave has two circles, appearing opposite one another.

    +

    The second wave spreads out from the first wave: +If the first wave was on a pair of cardinals, +then the second wave will be on the four intercardinals. +Conversely, if the first wave was on intercardinals, +then the second wave will be on the four cardinals.

    +

    The third wave will hit the two remaining cardinals or intercardinals, +at 90° from the first wave. +All three waves must be completely dodged.

    +
  2. +
  3. +

    The Oracle's Reflection’s cast will be either +a point-blank (Axe Kick) or a donut (Scythe Kick). +These AoEs are very big:

    +
      +
    1. +

      The point-blank Axe Kick goes all the way out to the outer +line[2] on the floor.

      +
    2. +
    3. +

      The donut Scythe Kick extends +to well within the Reflection’s hitbox. +The safe area is only as wide as the small four-pointed star within the inner circle.

      +
    4. +
    +

    At the same time as the point-blank or donut, +the Reflection also shoots out four The House of Light cones +at the four nearest players, +These cones, combined with the four marker AoEs, create an 8-way spread.

    +
  4. +
  5. +

    The four circular markers go off moments after the kick, +hitting their targets with Frigid Stone +at the same time as the first Diamond Dust circles go off. +These drop a second set of AoEs, 8-way lines, +with the omens appearing a few seconds after the Frigid Stones hit. +These 8-way lines are similar to the ones during Icelit Dragonsong +in phase 2 of +E8S.

    +
  6. +
  7. +

    The Oracle's Reflection moves out towards a principal direction +and begins casting Sinbound Holy, +while the Usurper of Frost reappears in the center of the arena. +You will likely want to pay attention to the Reflection’s location, +as it’s important later.

    +

    Without any warning, the Usurper performs Heavenly Strike, +a knockback raidwide, and disappears. +This is the point where the second set of Diamond Dust AoEs go off. +You must get knocked back into a spot that’s safe from both the line AoEs +and Diamond Dust, +with the final circles going off almost simultaneous with the lines.

    +
  8. +
+

After all of this, it isn’t even over.

+

Thin Ice

+

Right after the lines go off, Sinbound Holy targets both healers +with four +LP stacks each, in quick succession. +Each hit leaves behind a puddle that inflicts + + + + Bleeding +, +forcing the party to keep moving.

+

As players run away from Sinbound Holy, +the Usurper of Frost moves to the edge of the arena, +in a random +principal direction.

+

About 4 seconds after the last puddle drops, without any other warning, +she uses Shining Armor. +This is a gaze attack that inflicts + + + 2m + + +and + + + 8 + + Stun +. +The stun will make impossible to pass the next part of the mechanic, +so you can’t look at Shiva no matter how hot she is.

+

Additionally, the arena will become + + + + icy. +Moving will now send a player sliding most of the way across the arena. +Two bosses will also swap appearances. +The Usurper of Frost changes to light form, +and will remain so for the rest of the phase, +at the same time as the Oracle's Reflection changes to ice form.

+

Stillness & Silence

+

The Usurper will disappear while the Reflection begins casting +either Twin Stillness or Twin Silence. +Which attack she is using is also telegraphed by her voice line (and accompanying caption): +either "In stillness freeze!" or "Sink into silence!"

+

If she uses Stillness, she will first cleave a massive 270° in front of her, +leaving only a small safe area behind. +She will then cleave 90° her, hitting exactly the small area that was just safe. +If she uses Silence, she does the exact opposite, +first with a small cleave behind then a very large cleave in front. +Both cleaves are one-shots.

+

The snapshot on the first attack is right at the end of the first cast bar, +with the second coming earlier than you might expect. +In practice, the long slide required to get behind her, +versus the short slide to get in front of her, +mean that you have to move slightly earlier for Stillness.

+

The sequence finally wraps up as the Usurper of Frost reappears, targetable, +in the center of the arena.

+

Sequence 2: Mirror, Mirror

+

Hallowed Ray

+

Immediately after reappearing, the Usurper begins casting Hallowed Ray. +This is a +full-party stack line +AoE on a random player.

+

The only thing of note is that the attack direction snapshots quite early, +so it’s actually possible for the targeted player to dodge it entirely. +This is not consistent, however, so it can’t be used to avoid the mechanic.

+

Mirror, Mirror

+

Her next cast is Mirror, Mirror. +This move summons three Frozen Mirrors around the edge of the arena at + +principal directions. +There will be two red mirrors and one blue mirror. +The red mirrors will always be 90° apart, +but the blue mirror can be anywhere, including in between them.

+

The Usurper begins casting Scythe Kick which is the same as before: +a large donut with a very small hole, +and four protean cones at the nearest four players. +At exactly the same time, however, the blue mirror will also use the exact same move. +Since Scythe Kick on its own is a four-way spread, +two copies of it make for an eight-way spread.

+

Right afterwards, the two red mirrors cast Reflected Scythe Kick. +Unsurprisingly, this is the exact same move. +But it must be solved so that none of the players clip each other.

+

Each of the mirrors disappears shortly after

+

Banish III

+

Shiva’s last cast in this segment is Banish III, +which she begins casting right as the Reflected Scythe Kicks +During the cast, she’ll have a ring of light above her head, +with either a single orb or four orbs orbiting on it.

+

If there’s only one orb, the attack is a +pair stack targeted on DPS. +If there’s four, it’s a spread targeted on DPS. +Unlike in +E8S, there are no indicators over individual players’ heads.

+

Sequence 3: Light Rampant

+

The infamous mechanic from +E8S is back, although it’s arguably not even as bad. +Naturally enough, +it kicks off with a teleport to center and the Light Rampant castbar. +There’s a raidwide on this one, so make sure mits and shields are up.

+

This mechanic makes use of the + + + + Lightsteeped + debuff, given out by various attacks +through the mechanic:

+ + + + + + +
SourceTotal Stacks
Light Rampant6
First wave towers6
Powerful Light stacks8
Second wave tower4
House of Light spread8
+

This is a total of 32 stacks, +which is exactly enough to give + + + + to every player. +This is very convenient, because + + + + causes a wipe. +Everyone must get exactly four stacks.

+

The initial raidwide doles out several markers and debuffs. +It is believed that these are given out completely at random, with no role-based patterns.

+
    +
  • +

    Two players receive a pink marker with a circular +AoE +omen.

    +
  • +
  • +

    The remaining six players each receive + + + 10 + + Chains of Everlasting Light +, +visibly displaying as tethers connecting them to two other players. +These tethers are not yet active.

    +
      +
    • Two of these players receive + + + 16 + + The Weight of Light +, +indicated by large golden orbs above their heads.
    • +
    +
  • +
  • +

    Six stacks of + + + 36 + + are distributed. +The players with markers each receive one stack, +and the remaining four are distributed randomly amongst all eight players.

    +

    So a player with a marker can receive 1 or 2 stacks, +while a player with a tether can receive 0 or 1.

    +
  • +
+

While the debuffs are mostly random, the tethers are not. +The two players with golden orbs are always tethered together. +Additionally, provided the players stand roughly equally spaced, +the tethers will not spawn crossed.[3]

+

First Wave Towers

+

A moment after the cast, Shiva disappears and six towers appear. +The orientation is always the same: a perfect hexagon with points to the north and south.

+

The markers begin going off first +with a series of four Luminous Hammer attacks each. +These inflict + + + 1 + + Magic Vulnerability Up +, +but more importantly they drop lethal puddles on the ground like Sinbound Holy. +Don’t stand in bad.[4]

+

The towers go off simultaneously with the third set of puddles, +inflicting + + + 36 + + +A missed tower is a heavy raidwide with a + + + 2m + +. +Although the towers do not inflict a + + + + themselves, +they are magic damage, +so players taking a tower cannot also be hit by a Luminous Hammer.

+

At the same time as the towers go off, the + + + + expire, +becoming + + + 9 + + Curse of Everlasting Light +. +This is indicated by the orbs in the middle of the tethers growing more brightly. +Unlike in the original Light Rampant, for these tethers there is no maximum distance, +but if any two tethered players get too close together before the debuffs expire, +they will explode and cause a wipe.

+

Orbs

+

The six silver orbs that descended on the towers, Holy Lights, +hover in place above the ground.

+

Three of them, in an equilateral triangle, +begin casting Burst and display large circular +omens. +The other three follow suit shortly after. +This is very similar to the fists during the phase 4 transition of +TOP, +if you are familiar with that fight.

+

As the second wave of omens appears, +the + + + + denotate in a small circular +AoE. +This is Powerful Light, +a +LP stack that inflicts + + + 36 + +. +If fewer than 4 players are in the stack, it additionally inflicts + + + 2m + + Mark of Mortality +. +A 4-stack tower also appears in the center of the arena at the same time.

+

After the Powerful Light—but not right after, so don’t move too soon!—the first +wave of orbs explodes. +The puddles begin disappearing in the sequence they were dropped, +and the second wave of orbs explodes as Shiva reappears in the center. +She remains untargetable as she begins casting Banish III. +The telegraph and effects are identical to the first time she used it.

+

Second Wave Tower

+

4 players must soak the tower to prevent the + + + 2m + + Damage Down + raidwide +and receive a stack of + + + 36 + +. +Care must be taken that nobody takes on too many stacks. +Banish III resolves a few seconds later.

+

Shiva wraps the mechanic up by casting House of Light, +becoming targetable at the start of the cast. +House of Light is an 8-way cone spread. +This inflicts a final stack of + + + 36 + + +on every player. +If executed correctly, everyone should now have 4 stacks. +They will fall off harmlessly during the transition to the intermission.

+

Enrage

+

The phase ends with Shiva casting Absolute Zero, the enrage. +If the party does not bring her below 20% HP before it completes, +it deals infinite damage and wipes the party. +If she is brought below 20%, however, it is only a heavy raidwide. +As the transition to the intermission begins, she knocks every back from the center, +so don’t stand too far out and get pushed into the wall.

+

Acknowledgments

+

Thanks in particular go out to Mikah Tayuun, Aleretha Nyana, +Esey Faye, Nicky, Seba, and felty fan +for helping me with mechanics in this phase. +As always, thanks also to everyone else in the NAUR discord who helped, +as well as anyone who’s uploaded PoVs and guides.

+
    +
  1. +

    Personally, I suggest not passing up this rare opportunity +to yell at the bard, instead of a tank or healer, +when the main tank unexpectedly dies to the second hit.

    +
  2. +
  3. +

    Sometimes the lines are circles.

    +
  4. +
  5. +

    It was initially believed that they could never spawn in with two tethers crossed, +however, this was shown to be untrue.

    +

    Our best theory on the actual mechanics of the tethers is that, +after two players are randomly chosen as the marker players, +one player is randomly chosen as the starting player for the tethers. +This player is tethered to the closest player (without a marker), +who is then tethered to the next closest player, +and so on, until everyone either has a marker or a tether, +and then one more tether is added to close the loop. +The orbs go out to two random tethered players.

    +
  6. +
  7. +

    For black mages: It’s okay, it’s a downtime phase again.

    +
  8. +
+ + +
+ + +
+
+
+ + + +

© 2024 Tvnariea Reksane
Final Fantasy XIV assets are © Square Enix and used under license

+

Powered by Zola & Abridge

+
+
+ + + + diff --git a/fru/p3/index.html b/fru/p3/index.html new file mode 100644 index 0000000..c404e78 --- /dev/null +++ b/fru/p3/index.html @@ -0,0 +1,932 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Phase 3: Oracle of Darkness | Dynamis.gg + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+

Phase 3: Oracle of Darkness

+ + + + +

UNDER CONSTRUCTION MAY BE INACURAT AND INKOMPLETE

+

After the Ice Veil is broken and the intermission is completed, +enjoy a long break through the lead-in of The Extreme +as Gaia is possessed by Loghrif’s memories +and takes up her role as the Oracle of Darkness.

+

As you might expect, this phase reprises mechanics from phase 2 of +E12S. +It’s a straightforward full-uptime phase where, again, +you need to get the boss below 20% before enrage to proceed to the next phase.

+

Intro

+

After the 37 seconds or so of downtime for the transition, +the Oracle of Darkness—or just Gaia, as everyone calls +her—becomes targetable. +She kicks things off with Hell's Judgment, +which inflicts damage on everyone equal to their HP-1, ignoring migitation and shields.

+

The usual effect of this is to set everyone to 1, +but there’s a brief gap between the moment when damage is computed and when it’s applied. +If your current HP changes in this time, you won’t go to exactly 1. +Pay careful attention to the cooldowns of Max HP-increasing abilities, +as it’s possible to die if they fall off after the snapshot.

+

Sequence 1: Ultimate Relativity

+

The first sequence is Ultimate Relativity, +with its classically over-the-top cast animation. +The cast is a raidwide in addition to starting the mechanic off, +but unlike the {{cast(n=(“Relativity”))}} casts from E12S, +it seems like it is simply a normal raidwide rather than shared damage.[1] +The message “The laws of time are in chaos!” appears on the screen, +although it’s purely for flavour.

+

The arena floor changes from dark blue to a bright teal colour for the duration of the mechanic, +but this is a purely cosmetic effect.

+

Spells-in-Waiting

+

What’s actually in chaos is everyone’s debuff bars, as everyone receives three spells-in-waiting. +From left to right on the debuff bar, they are as follows:

+
    +
  1. +

    Every player receives a 10-, 20-, or 30-second + + + + +or + + + +:

    +
      +
    1. Two supports and one DPS +each receive + + + 30 + + Spell-in-Waiting: Dark Fire III +.
    2. +
    3. One support and one DPS each receive + + + 20 + + Spell-in-Waiting: Dark Fire III +.
    4. +
    5. Two DPS and one support each receive + + + 10 + + Spell-in-Waiting: Dark Fire III +.
    6. +
    7. I lied a little bit. +Either the support with + + + 10 + + +or the DPS with + + + 30 + + +actually receives + + + 20 + + Spell-in-Waiting: Dark Blizzard III + instead.
    8. +
    +

    However, for the rest of the debuff breakdown, +I’m going to pretend the + + + + doesn’t exist, +and all players receive + + + +. +It simplifies the explanations.

    +
  2. +
  3. +

    Every player receives a 16- or 26-second + + + +.

    +
      +
    1. The three players with + + + 30 + + receive + + + + 26 + + Spell-in-Waiting: Return +,
    2. +
    3. The other five players receive + + + 16 + + Spell-in-Waiting: Return +.
    4. +
    +
  4. +
  5. +

    Every player receives a 43-second + + + +, + + + + +, or + + + +:

    +
      +
    1. The three players with + + + 30 + + receive + + + + 43 + + Spell-in-Waiting: Shadoweye +.
    2. +
    3. The DPS with + + + 20 + + receives + + + + 43 + + Spell-in-Waiting: Dark Water III +.
    4. +
    5. The remaining four players all receive + + + 43 + + Spell-in-Waiting: Dark Eruption +.
    6. +
    +
  6. +
+

It perhaps comes as a bit of a surprise how tightly role-based the assignments are, +given that this is an ultimate. +Thankfully, though, it means that everything can be summarized in a single small table:

+ + + +
Role
Support + + + 30 + + + + + 26 + + + + + 43 + + + + + 20 + + + + + 16 + + + + + 43 + +( + + + 10 + +/ + + + 20 + +) + + + 16 + + + + + 43 + +
DPS + + + 10 + + + + + 16 + + + + + 43 + + + + + 20 + + + + + 16 + + + + + 43 + +( + + + 20 + +/ + + + 30 + +) + + + 26 + + + + + 43 + +
+

When + + + + Spell-in-Waiting: Return + expires, +the position of its bearer will be recorded with a blue marker, +and the bearer will receive + + + + Return +. +The duration of the + + + + Return + debuff will be either 24 or 14 seconds, +so that the + + + + expires 40 seconds after the start of the mechanic.

+

Hourglasses

+

In addition to the debuffs, Ultimate Relativity summons +eight Delight's Hourglass, one on each +principal direction. +Because of their three-lobed appearance, and the various colours they had in E12S, +they’re often called “traffic lights” in the community.[2] +They are all green in this fight, however, so the anology doesn’t work so well.

+

Right after the Hourglasses appear, Gaia casts Speed. +As she does so, three yellow lines +and two purple lines—with bright orbs in the middle—connect +her to some of the Hourglasses. +Although the orientation is random, the pattern is always the same: +the three yellow lines make a Y shape, +while the two purple lines are horizontal relative to the Y. +Note that Gaia herself does not change facing during this cast.

+

The effect of Speed is +to set up the order in which the Hourglasses use their one attack, +Sinbound Meltdown. +The yellow-marked Hourglasses make up the first wave, +the unmarked ones the second wave, +and the purple ones the third wave. +The three waves happen approximately 16, 26, and 36 seconds after the start of the mechanic, +with the first two corresponding to the expiry of the + + + + Spell-in-Waiting: Return + debuffs.

+

As the Hourglasses cast Sinbound Meltdown, +there is an advance warning with either a clockwise yellow indicator, +or a counterclockwise blue indicator, +randomly selected for each Hourglass. +This indicates the direction the attack will rotate.

+

The attack itself is a laser +targeted on the nearest player to the Hourglass in question. +Two seconds later, the second laser fires, rotated a bit in the direction indicated. +Eight more follow, one second apart, creating a total arc of roughly 120° across ten shots.[3]

+

Overall Timeline

+

To come…

+

At the end of the sequence, +Gaia casts Shockwave Pulsar, a heavy raidwide, +followed by Black Halo, a 2-stack tankbuster.

+

Sequence 2: Sextuple Apocalypse

+

To come…

+

Enrage

+

Gaia casts Shockwave Pulsar a second time +before diving into Memory's End, her enrage cast. +There is a very brief opportunity to reposition her a little bit in between the casts, +which can technically affect the initial position of the phase 4 boss, +although in practice it’s unlikely you can move her far enough to make a difference. +Get her below 20% HP before the end of the castbar to turn it into “only” a heavy raidwide, +and clear the phase.

+

In E12S, the enrage cast was notable for traveling relatively slowly out from the center, +allowing players to put distance between them and the Oracle of Darkness +in order to get an extra fraction of a second. +That niche strat unfortunately isn’t applicable here, +as whether or not you advance to the next phase is determined when the cast goes off.

+

Acknowledgements

+

Thanks to Silent Bramble, Evansith, +whoever worked out the debuff assignment pattern for Ultimate Relativity, +and all the usual suspects.

+
    +
  1. +

    If anyone can actually confirm this, it would be appreciated, +as currently all I have is one person who said they “Don’t think it is.”

    +
  2. +
  3. +

    Also, absolutely no one looks at these things and thinks “hourglass!” +Seriously, what good is a three-chambered hourglass?

    +
  4. +
  5. +

    Exact angle measurements would be appreciated, if anyone has them.

    +
  6. +
+ + +
+ + +
+
+
+ + + +

© 2024 Tvnariea Reksane
Final Fantasy XIV assets are © Square Enix and used under license

+

Powered by Zola & Abridge

+
+
+ + + + diff --git a/fru/p4/index.html b/fru/p4/index.html new file mode 100644 index 0000000..d3d32c0 --- /dev/null +++ b/fru/p4/index.html @@ -0,0 +1,1412 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Phase 4: Roommates | Dynamis.gg + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+

Phase 4: Roommates

+ + + + +

UNDER CONSTRUCTION MAY BE INACURAT AND INKOMPLETE

+

After getting the Oracle of Darkness below 20% HP, +and surviving Memory's End, +the Usurper of Frost will reappear at either the north or south side of the arena. +She will always spawn on the opposite side from where Gaia was, +and is immediately targetable.

+

This phase is a duo phase, with the Oracle of Darkness reappearing +shortly after the phase begins. +In order to complete the phase, both bosses must be defeated before the end of the enrage castbars.

+

Materialization & Fragment of Fate

+

If the Fragment of Eternity was saved during the crystal intermission, +Shiva’s first cast is Materialization.[1]

+

Materialization causes a Fragment of Fate, +a crystal containing one of Gaia’s memories, +to appear at the northern apex of the arena. +The Fragment of Fate has an HP bar +and periodically emits a raidwide called Edge of Oblivion. +If it is hit by any of the targeted or avoidable attacks in the phase, it will be destroyed; +otherwise it will survive the phase.

+

If it does not survive the phase, or is never summoned in the first place, +then the party will get the bad-ending phase 5. +To advance to the true phase 5 and clear the fight, +the Fragment must survive the phase. +Players must take care to ensure that no attacks ever hit it, apart from unavoidable raidwides.

+

Summoning Hraesvelgr

+

After summoning the crystal, the Usurper of Frost summons Hraesvelgr to her, +just like in phase 2 of +E8S. +There’s no cutscene, and she remains targetable the entire time.

+

Right when she does so, the party’s positions are snapshotted. +Without any warning, the snapshotted positions are hit +by a series of 10 consecutive Akh Rhai +AoEs, +that fire in rapid succession. +They hit the same positions repeatedly, so they only need to be dodged once.

+

During the Akh Rhai, she will also make autoattacks on the top two enmity targets. +And at around the sixth Akh Rhai, +the Fragment of Fate emits a Edge of Oblivion. +The Oracle of Darkness appears and becomes targetable around the ninth AoE.

+

HP Balancing

+

Once the Oracle of Darkness appears, both bosses are targetable +except during the one downtime mechanic of the phase. +The party must be careful to balance their HP to within 5% of each other. +If their HP is ever more than 5% apart, +then the two Morn Afah casts later will become lethal.

+

After the second Morn Afah, there is no longer a need to balance HP. +The party can freely kill the bosses in either order. +There is also no need to keep the boss HP balanced in between the Morn Afah casts, +as long as they are balanced when the casts go off. +A tether will appear between the two bosses during the cast to visually indicate an imbalance.

+

Sequence 1: Darklit Dragonsong

+

The first of two mechanic sequences is Darklit Dragonsong, +cast simultaneously by both bosses. +It’s mostly another variation of Light Rampant, +with Gaia repeating several mechanics seen already in phase 3. +During the castbar, two light party stack markers appear on random players. +These are Spell-in-Waiting stacks and do not resolve immediately.

+

The cast itself is a very heavy raidwide originating from the Usurper of Frost, +so mitigation targeted on the Oracle of Darkness will have no effect. +As it resolves:

+
    +
  1. The two players with stack markers receive + + + 19 + + Spell-in-Waiting: Dark Water III +.
  2. +
  3. Everyone receives + + + 12 + + Lightsteeped +.
  4. +
  5. Four players, exactly one of whom has + + + +, +are tethered together with + + + 7 + + Refulgent Chain +. +Just like in phase 2, the tethers form a loop, but unlike phase 2, +the tethers can spawn in any configuration.
  6. +
  7. Two towers appear, north and south of center.
  8. +
+

About 4 seconds before the towers go off, the + + + + Refulgent Chain + expire +and become + + + 14 + + Refulgent Fate +. +Unlike in phase 2, but like in +E8S, +these tethers will explode if the tethered players get either too close or too far apart. +The towers are the perfect distance to be safely soaked by tethered players.

+

Shiva casts The Path of Light, resolving at the same time as towers, +hitting the four closest players with cones. +As in phase 2, both the towers and cones inflict + + + +, +so one player can’t be hit by both.[2]

+

As the towers and cones resolve, Gaia begins casting Spirit Taker. +When it resolves, she leaps and hits a random player with a small circular +AoE. +Anyone else within the circle is knocked back into the wall. +Shiva follows this up with Hallowed Wings, +a half-room cleave of either the east or west side, telegraphed by a glowing wing. +The + + + + resolve just before this cleave goes off.

+

Finally, Gaia uses Somber Dance, +only a few seconds after the Hallowed Wings. +As before, this is a leaping one-two tankbuster on the farthest and then nearest players. +The tank swap must be done with positioning, not Provoke.

+

Akh Morn

+

The sequence wraps up with Akh Morn, followed by Morn Afah. +Right before, there’s another Edge of Oblivion, +followed by the bosses recentering—Shiva slightly west of center, +and Gaia slightly east. +They cast Akh Morn simultaneously.

+

Akh Morn is a four-hit +LP stack, +with Shiva hitting her main target with columns of light, +and Gaia hitting hers with columns of dark. +These inflict + + + 4 + + Light's Design + and + + + 4 + + Darkness's Design +, respectively, +forcing players to remain in the same stack for the entire mechanic. +It will be a bad day if both bosses are targeting the same player when the attack goes off.

+

Notably, the damage from Akh Morn pierces invulnerability +but is still subject to mitigation. +This allows a tank with proper mitigation to survive a hit solo, +but not with an invuln.

+

Morn Afah

+

Right after Akh Morn, the roommates simultaneously cast Morn Afah. +This is a +full-party stack +AoE +targeted on Shiva‘s top-enmity target, +but if the bosses’ HPs are more than 5% apart when the cast goes off, +it’s an instakill for anyone hit. +It is not a raidwide even if the HP is imbalanced, +so anyone not in the radius will always survive. +Like Akh Morn, it pierces invulnerability but respects other mitigations.

+

As the attack comes from the Usurper of Frost, +targeted mitigation on the Oracle of Darkness has no effect.

+

To give a visual clue that HP is imbalanced, during the cast bar, +a tether can appear between the two bosses. +If Gaia’s HP is too high, it will be dark-coloured; +if Shiva’s HP is too high, it will be light-coloured.

+

Sequence 2: Crystallize Time

+

Gaia teleports dead center, +with Shiva just south of her, +and the two cast Crystallize Time, +their second big mechanic. +The mechanic is a combination of Relativity and, from +E8S, +Wyrm's Lament. +After the initial raidwide, predictably, everyone’s debuff bars are again thrown into chaos. +Additionally, six Sorrow's Hourglasses spawn +at the centers of each of the lines on the floor.[3]

+

The raidwide originates from the Oracle of Darkness, +so targeted mitigation on the Usurper of Frost has no effect on it.

+

Both bosses will go untargetable a few seconds after the cast, for the entire mechanic. +A few seconds later, the Fragment of Fate, if still alive, +will use an Edge of Oblivion.

+

There are a lot of parts to this mechanic, so I will lay them out separately.

+

Debuffs

+

Debuffs are entirely random except as noted. From left to right, they are as follows:

+
    +
  1. +

    Everyone receives a primary Spell-in-Waiting:

    +
      +
    1. One player receives + + + 12 + + Spell-in-Waiting: Dark Water III +.
    2. +
    3. One player receives + + + 14 + + Spell-in-Waiting: Dark Eruption +.
    4. +
    5. Two players receive + + + 14 + + Spell-in-Waiting: Dark Aero III +.
    6. +
    7. Three players receive + + + 14 + + Spell-in-Waiting: Dark Blizzard III +.
    8. +
    9. One player receives + + + 17 + + Spell-in-Waiting: Unholy Darkness +.
    10. +
    +
  2. +
  3. +

    Everyone receives a + + + + +or + + + + debuff.

    +
      +
    1. Two of the three players with + + + + receive + + + + 17 + + Wyrmclaw +.
    2. +
    3. The two players with + + + + receive + + + + 40 + + Wyrmclaw +.
    4. +
    5. The remaining players receive + + + 40 + + Wyrmfang +.
    6. +
    +
  4. +
  5. +

    Everyone receives + + + 33 + + Spell-in-Waiting: Return +.

    +
  6. +
  7. +

    Three players receive + + + 31 + + Spell-in-Waiting: Quietus +. +Since all they do is cause raidwides, it is entirely irrelevant who receives them.

    +
  8. +
+

Or in summary, leaving out the + + + 31 + +:

+ + +
+ + + 14 + + + + + 17 + + + + + 33 + + + + + 14 + + + + + 40 + + + + + 33 + + + + + 14 + + + + + 40 + + + + + 33 + + + + + 12 + + + + + 40 + + + + + 33 + + + + + 14 + + + + + 40 + + + + + 33 + + + + + 17 + + + + + 40 + + + + + 33 + +
+

Hourglasses

+

Gaia casts Speed as in phase 3. +This time, the yellow tethers always hit the north and south Hourglasses. +The purple tethers will hit either the NW and SE hourglasses, or NE and SW. +In other words, all three Hourglasses go off in opposite pairs, +with north and south going off first.

+

The cast from the Hourglasses in this mechanic is Maelstrom, +a circular +AoE that covers the entire circle on the floor. +There is a very brief +omen, hardly enough to dodge.

+

The explosions happen concurrently with the Spell-in-Waiting debuffs resolving, +towards the start of the mechanic. +The hourglasses are completely inert after they explode.

+

Drachen Wanderers

+

Two Drachen Wanderers—large, ghostly wyrm heads—also +appear just north of the northernmost Hourglass. +The Wanderers begin a slow journey around the arena, +one clockwise, one counterclockwise.

+

If a player with + + + + makes contact with a Wanderer, +it will cleanse the + + + + +and explode in a circular AoE called Longing of the Lost. +The size is similar to Maelstrom. +This can break the Fragment of Fate.

+

The first time a + + + + is cleansed +on a given Wanderer, it shrinks. +The second time, it disappears entirely. +If either Wanderer survives to make a complete lap of the arena, +it will fly off to the sky and wipe the party.

+

Additionally, cleansing + + + + leaves behind a small blue beacon. +The beacon can be used once to cleanse a + + + +.

+

In order to resolve this part of the mechanic completely, therefore, +both Wanderers must be touched twice each +by players with + + + +, +and the resulting beacons must each be touched +by a player with + + + +.

+

Exalines and Knockbacks

+

Around the time of the second Maelstrom explosions, +Shiva will teleport to either the east or west edge of the arena +and cast Tidal Light.

+

This attack begins a large +exaline that covers the entire width of the arena, +and is about as thick as 1/4 of the arena’s diameter. +The exaline travels across the arena away from Shiva. +It is slow enough to dodge by stepping into the previous explosion before the next.

+

If you look closely, Shiva has a blue circle under her during this attack—the +same blue circle, in fact, as players get from + + + + Spell-in-Waiting: Return +. +This is a visual hint that Shiva, too, +will have her position rewound later in the mechanic. +Remember which cardinal she appeared at.

+

Towards the end of the first set of exalines, +Shiva teleports to either the north or south edge of the arena, +and repeats Tidal Light, producing a second exaline identical as the first.

+

As the second exaline travels across the arena, the final debuffs expire. +First, the three + + + + explode in three relatively small raidwides +that don’t even add up to a big one. +Then, the + + + + expire, +snapshotting everyone’s positions and granting + + + 7 + + Return + to everyone.

+

Gaia begins another Spirit Taker, so the party must spread. +And finally, Shiva teleports back to the center and casts Hallowed Wings. +Before her cast completes, however, the + + + + debuffs expire, +inflicting + + + 9 + + Stun + and teleporting everyone back to their snapshotted positions. +Shiva, too, is teleported—back to where she first cast Tidal Light. +This will always, therefore, be the east or west cardinal.

+

Unlike the earlier cast of the same name, +this Hallowed Wings is a massive +wild charge knockback. +All players are hit, regardless of position, +and are knocked away from Shiva’s cardinal about half the width of the arena.

+

The damage dealt by the attack is based on proximity to Shiva’s cardinal, +with the closest player receiving the most damage, +the second-closest receiving the second-most, etc. +The person furthest away receives teh lowest amount of damage. +Note, however, that this attack deals fixed damage based on position even if a player is dead; +it is not a shared-damage attack. +The four players in front receive a + + + 6 + + Magic Vulnerability Up +.

+

Then, while everyone is still stunned, +Shiva is teleported to the cardinal where she cast the second exaline, +and repeats the attack. +Knockback immunity (besides Inner Release) +will not last long enough to protect against the second knockback.

+

The damage on the second hit will be quadrupled +for the players with + + + +. +If the player fifth in line has a + + + +, +the damage is equal to being first in line without + + + +. +It’s not quite tankbuster levels of damage, but it’s still enough to give a non-tank a bad time. +I’ll put the exact numbers in an appendix sometime.

+

The players are released from stun during the second knockback, +and both bosses teleport to mid and become targetable again, +marking the end of the mechanic.

+

Timeline

+

The timeline of the entire mechanic is as follows:

+ + + + + + + + + + + + + + + + + + + + + + +
t = 0Buffs go out
t + 3 sDrachen Wanderers appear
Shiva becomes untargetable
t + 4 sGaia becomes untargetable
t + 5 sEdge of Oblivion raidwide
t + 10 sMalestrom omens from yellow-tethered Hourglasses
t + 12 s + + + + stack and yellow-tethered Maelstroms go off
t + 14 s + + + + circle, + + + + donut, and + + + + knockback go off
Safe to cleanse + + + + without breaking Fragment
t + 15 sMaelstrom omens appear from non-tethered Hourglasses
t + 16 sShiva teleports to east or west
t + 17 s + + + + stack and non-tethered Maelstroms go off
East/west exaline omen appears
+ + + 17 + + kills if not cleansed by now
t + 20 sMaelstrom omens from purple-tethered Hourglasses
East/west exalines begin, firing approx. every 2 seconds
t + 22 sPurple-tethered Maelstroms go off
Shiva teleports to north or south
t + 24 sNorth/south exaline omen appears
t + 27 sNorth/south exalines begin
East/west exalines end
t + 31 s + + + + raidwides go off
t + 33 s + + + + snapshots player positions
North/south exalines end
t + 37 sSpirit Taker spread
t + 40 sPlayers stunned and returned to snapshot positions
+ + + 40 + + and + + + 40 + + kill if not cleansed by now
Drachen Wanderers wipe party if not destroyed by now
t + 44 sFirst Hallowed Wings knockback
t + 48 sSecond Hallowed Wings knockback
t + 52 sBosses become targetable.
Sequence complete
+

Enrage

+

The bosses wrap up by repeating the Akh MornMorn Afah sequence +from earlier, +followed by the enrage sequence. +Only after the second Morn Afah can either of the bosses be killed; +they will block at 1 HP if killed beforehand.

+

Shiva’s enrage cast is Ice Age, +while Gaia’s is once again Memory's End. +They go off at the same time, and either one is enough to wipe the party. +If a boss is killed, however, their attack does not go off. +Both bosses must be killed to advance to phase 5…

+

with hope that the Fragment of Fate survived…

+

Acknowledgments

+

Special callouts for this section go to felty fan, syl, Nova, +and the ever-reliable Silent Bramble. +Regular callouts go to anyone who helped me in NAUR +and anyone who uploaded PoVs, +especially Lucrezia and Kindred.

+
    +
  1. +

    Nobody has actually confirmed for me if Materialization is skipped entirely if the necklace +isn’t saved, or if it just doesn’t spawn the fragment. Please let me know.

    +
  2. +
  3. +

    Oddly, the durations of the debuff are different depending on which source they came from, +but it doesn’t matter because there’s no more stacks.

    +
  4. +
  5. +

    How many times do we have to tell you: sometimes the lines are circles.

    +
  6. +
+ + +
+ + +
+
+
+ + + +

© 2024 Tvnariea Reksane
Final Fantasy XIV assets are © Square Enix and used under license

+

Powered by Zola & Abridge

+
+
+ + + + diff --git a/fru/p5/index.html b/fru/p5/index.html new file mode 100644 index 0000000..deb4a43 --- /dev/null +++ b/fru/p5/index.html @@ -0,0 +1,609 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Phase 5: Pandora | Dynamis.gg + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+

Phase 5: Pandora

+ + + + +

After completing phase 4 with both +the Usurper of Frost and the Oracle of Darkness dying, +the two will become balls of light and darkness and merge together.

+

If the Fragment of Fate did not survive phase 4 intact—or +if it never spawned because the Eternal Ice Fragment wasn’t saved +in the crystal intermission—then the transition to the bad ending will not be a cutscene +and players will retain control of their characters. +The phase 5 arena will appear, and the Guardian of Eden appears +at the north side of the arena. +It immediately casts Paradise Lost, wiping the party.

+

If the Fragment of Fate did survive phase 4, +then the transition is a cutscene in which Ryne and Gaia’s memories fight Mitron for control. +The result is Ryne and Gaia’s merged form, Pandora,[1] +the final boss of Futures Rewritten. +Players will be knocked back to south of center and given + + + + Down for the Count + +for the minute-long (yes, really) cutscene. +The arena transitions to the phase 1 arena from +E12S, +with Ryne and Gaia’s memories showing in the background, +and Return to Oblivion kicks in. +The + + + + fades as the final fight begins.

+

Note that throughout this phase, Pandora attacks with +light on her left side and +dark on her right side. +This orientation is based on her wings and never changes.

+

Sequence 1: Fulgent Blade

+

Pandora kicks things off with Fulgent Blade, +a raidwide that causes six lines of light and darkness to appear on the ground. +The pattern of the lines is always the same, +although the positioning can vary so it might look different sometimes. +The six lines are always offset 45° from one another, +making a sort of 3/4 circle around the middle of the arena.

+

These are all +exalines that detonate two at a time, +moving outwards from their lines of origin. +Starting from one side of the 3/4-circle, +the outermost two lines on one side will detonate, +then the middle two, +then finally the two on the other side. +Each pair will be arranged so that the lines from the light and dark sides cross.

+

Before each line explodes, an +omen appears showing the upcoming explosion, +with many arrows indicating that the line +AoEs are going to move. +The first two exalines go off, and then they repeat in the directions indicated, +perpendicular to the original line they came from. +There are no omens for the subsequent explosions.

+

The detonations go as follows:

+ + + + + + + + + + + +
First WaveSecond WaveThird WavePandora
1.Omens appear
2.1st explosions
3.2nd explosionsOmens appear
4.3rd explosions1st explosions
5.4th explosions2nd explosionsOmens appearLock direction
6.5th explosions3rd explosions1st explosionsAkh Morn …
7.6th explosions4th explosions2st explosionsAkh Morn …
8.7th explosions5th explosions3rd explosionsAkh Morn …
8.8th explosions6th explosions4th explosionsAkh Morn …
8.7th explosions5th explosionsAkh Morn
+

Each exaline will have a total of 8 waves of explosions, +although only the first few are typically relevant.

+

Being hit by an exaline will likely not kill a topped player, +but it will inflict both + + + 2m + + Damage Down + and +either + + + 15 + + Light Resistance Down II + or + + + 15 + + Dark Resistance Down II +, +giving vulnerability to the same element of the line that hit.

+

This is a bit hard to visualize without an image, +so I will try to come back and add one, +but for now text will have to do.

+

tl;dr: It’s three waves of exalines at funny angles.

+

Akh Morn

+

At about the same time as the fifth set of explosions from the last wave of exalines—or +the ninth set of explosions overall—Pandora +will start casting Akh Morn. +This time, Akh Morn is a simple +LP stack, +with no penalty for understacking.

+

The only catch is the targeting condition: +One random player on her left side is targeted by a light explosion, +and one random player on her right is targeted by a dark explosion. +If no player is on the correct side, it targets a random player on the other side instead. +Her position locks in at the start of the cast, so players need to position themselves afterwards.

+

Sequence 2: Paradise Regained

+

Just before the last (irrelevant) exalines denotate, +Pandora centers, faces north, and starts casting Paradise Regained. +This kicks off the most complex of phase 5’s three sequences.

+

When the cast completes, three 2-stack towers begin appearing, one by one, +in an equilateral triangle around the center of the arena. +The towers always appear S, NW, and NE, but in a random order. +They will detonate in the order they appear.

+

As the second tower appears, Pandora begins casting Wings Dark and Light, +and either her left wing will start glowing with light, +or her right wing will start glowing with darkness. +One player will get attached to her by a light or dark tether, +matching the glowing wing.

+

About 2/3 of the way through the cast, +the third tower appears, and Pandora’s other wing starts glowing. +Her wing and tether attacks will follow the order that the wings glowed, +either light then dark, or dark then light.

+

The mechanic goes off in three waves: the first tower, wing, and tether; +then the second tower, wing, and tether; and finally the last tower.

+
    +
  1. +

    The towers explode in a painful raidwide with + + + 2m + + +if not soaked properly. +They inflict + + + 7 + + Magic Vulnerability Up +, which lasts the duration of the mechanic, +so whoever soaks the tower cannot soak another one, nor get hit by the tether.

    +
  2. +
  3. +

    The wing attack is a massive 225°[2] tankbuster cleave +that hits the entire quarter of the arena in front of Pandora, +as well as the entire side of the corresponding wing. +The safe zone is therefore anywhere beside or behind her +and on the right or left side, depending on the wing/element.

    +

    But immediately before she executes the cleave, she turns to face the main tank, +(that is, the player with top enmity). +So the safe zone is actually relative to this player. +Anyone other than the top enmity player hit by this attack +will receive a + + + 2m + +, so cheesing it is not an option. [3]

    +

    Despite having a visual element, the cleave is physical and inflicts + + + 4 + + Physical Vulnerability Up +. +The + + + + makes the follow-up cleave lethal, +but not the other attacks in the sequence. +The target lock-in is typical for a tankbuster, +with the first target getting locked in early in the cast, +and the second locking in roughly when the castbar completes.

    +
  4. +
  5. +

    The tether always has the same element as the cleave, +and targets the farthest or nearest player other than the main tank, +depending on the element. +The tether moves to whoever is farthest or nearest automatically, +just acting as a visual indication of who will be hit. +It cannot be passed otherwise.

    +

    The actual attack is a small circular tankbuster +that inflicts + + + 4 + +. +Thus, like the wing cleave, the same player cannot take it twice without facing lethal damage, +nor can they take a tower on the same or next wave. +It is, however, possible for a player hit by the first tether to safely soak the last tower.

    +
  6. +
+

Note that the attacks don’t come out at quite the same time: +the tower hits first, then the wing, then the tether, in rapid succession. +It is possible to move too early and get hit twice.

+

Sequence 3 Polarizing Strikes

+

The final mechanical sequence of this phase is Polarising Strikes, +which Pandora begins casting after a single autoattack. +This autoattack gives her a chance to reorient towards the main tank +before the next castbar locks her facing for the rest of the sequence.

+

The cast goes off as two line +AoEs, one light and one dark. +The targeting is the same as with Akh Morn earlier: +light targets a random player on Pandora’s left side, +while dark targets a random player on her right side. +If no players are on the correct side, a random player on the other side is targeted instead.

+

The lines are each +LP stacks, +with the additional twist that the player in front—that is, closest to Pandora—is +affected by + + + 16 + + Light Resistance Down II + or + + + 16 + + Dark Resistance Down II +, +for the same element they were hit by. +Therefore, that player will receive lethal damage +if hit by the same element again, for the remainder of the sequence.

+

After the main line AoE, the line’s effect remains on the ground. +After about 2 seconds, it explodes, dealing a follow-up blow to anyone caught in it. +This follow-up inflicts + + + 2m + +, so get out of the way.

+

NOTE: The actual AoE is slightly wider than the visual effects of the line make it seem. +Give the line plenty of room when dodging.

+

This attack repeats three more times, for a total of four. +The subsequent casts are entitled Polarised Paths, but the effects are identical.[4]

+

Pandora’s Box

+

It couldn’t be a Pandora without a Box, would it? +But the contents of Pandora's Box really aren’t that interesting. +It’s just a tank LB3 check, although the visuals are stunning. +Pop the LB around the ‘d’ in the castbar, and with extra mits on top, and you should be all good.

+

Loop

+

From this point, the fight loops. +Pandora repeats the first three mechanics, Fulgent Blade, +Paradise Regained, and Polarizing Strikes. +The only difference is that the mechanics come faster the second time. +Notably, Pandora will not autoattack before using Polarizing Strikes, +so there is only a very narrow window to change her facing after Paradise Regained.

+

After this, she uses Fulgent Blade for a third time, +and this third instance is identical to the first two.

+

Enrage

+

Finally, frustrated with her lack of progress, Pandora begins the enrage cast, +Paradise Lost. +From here on, simply a DPS check to free the lesbians and earn your totems. +But there is one last twist.

+

As the castbar reaches about halfway full, Ryne will lend her strength to the party, +filling the limit gauge by about 1 1/2 bars. +Assuming you haven’t used a limit break since Pandora's Box, +this should completely fill the gauge. +You now have a free melee LB3, but act quick, +because the window of opportunity is very tight. +Even a few seconds of delay and the LB will not land before the enrage cast goes off.

+

Enjoy the spectacular enrage sequence, with rainbows literally shooting off the lesbians +as you race for the finish. +If you don’t make it… sorry, that’s rough. +There’s a brief easter egg cutscene, at least?

+

If you do make it, however, enjoy the final cutscene of the fight +and your chance to curse YoshiP’s cowardice. +The background post-victory will make all the gposers jealous.

+

And then go get one of the sickets weapons in the game, +turn on that sweet “Genesis of Legends” title, +and complain loudly about the lack of a framing kit.

+

You’ve earned it.

+

Acknowledgments

+

Special thanks on this page go to Shas'o Mahana, Tenkay, +and Level Checker, plus all the usual thanks.

+
    +
  1. +

    Interestingly, in Japanese she’s called +Pandora Mitron (パンドラ・ミトロン), +which comes off quite differently, ね? +The name is a reference to the Lunatic Pandora from FF8.

    +
  2. +
  3. +

    Many raidplans show it as a 240° (two-thirds of a circle) cleave, +based on misreading of earlier footage. +Closer examination seems to indicate that 225° is the correct size.

    +
  4. +
  5. +

    I’ve heard some folks say it doesn’t inflict + + + + as well, +but I’m going by the story I’ve heard with the most supporting info. +If anyone has footage that definitively answers if the cleave does/doesn’t inflict + + + + +, please let me know.

    +
  6. +
  7. +

    Oddly, in Japanese, all four casts have the same name. I’m not sure about other languages. +Don’t be confused by that, if you play in another language. +All four attacks are always the same.

    +
  8. +
+ + +
+ + +
+
+
+ + + +

© 2024 Tvnariea Reksane
Final Fantasy XIV assets are © Square Enix and used under license

+

Powered by Zola & Abridge

+
+
+ + + + diff --git a/fru/page/1/index.html b/fru/page/1/index.html new file mode 100644 index 0000000..4fa5ee1 --- /dev/null +++ b/fru/page/1/index.html @@ -0,0 +1,6 @@ + + + + +Redirect +

Click here to be redirected.

diff --git a/fru/strats/burnt-strike/index.html b/fru/strats/burnt-strike/index.html new file mode 100644 index 0000000..1d2b13b --- /dev/null +++ b/fru/strats/burnt-strike/index.html @@ -0,0 +1,273 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Burnt Strike | Dynamis.gg + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+

Burnt Strike

+ + + + +

UNDER CONSTRUCTION

+

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

+

MT: +OT: +H1: +H2: +M1: +M2: +R1: +R2: + + +

+
+
+
+ + + +

© 2024 Tvnariea Reksane
Final Fantasy XIV assets are © Square Enix and used under license

+

Powered by Zola & Abridge

+
+
+ + diff --git a/icons/boss.svg b/icons/boss.svg new file mode 100644 index 0000000..eca2321 --- /dev/null +++ b/icons/boss.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/icons/jobs/ast.png b/icons/jobs/ast.png new file mode 100644 index 0000000..d45baee Binary files /dev/null and b/icons/jobs/ast.png differ diff --git a/icons/jobs/blm.png b/icons/jobs/blm.png new file mode 100644 index 0000000..710f65b Binary files /dev/null and b/icons/jobs/blm.png differ diff --git a/icons/jobs/blu.png b/icons/jobs/blu.png new file mode 100644 index 0000000..36642a6 Binary files /dev/null and b/icons/jobs/blu.png differ diff --git a/icons/jobs/brd.png b/icons/jobs/brd.png new file mode 100644 index 0000000..1101473 Binary files /dev/null and b/icons/jobs/brd.png differ diff --git a/icons/jobs/caster.png b/icons/jobs/caster.png new file mode 100644 index 0000000..3304775 Binary files /dev/null and b/icons/jobs/caster.png differ diff --git a/icons/jobs/dnc.png b/icons/jobs/dnc.png new file mode 100644 index 0000000..9bae3fb Binary files /dev/null and b/icons/jobs/dnc.png differ diff --git a/icons/jobs/dps.png b/icons/jobs/dps.png new file mode 100644 index 0000000..9033d20 Binary files /dev/null and b/icons/jobs/dps.png differ diff --git a/icons/jobs/drg.png b/icons/jobs/drg.png new file mode 100644 index 0000000..7f8b96f Binary files /dev/null and b/icons/jobs/drg.png differ diff --git a/icons/jobs/drk.png b/icons/jobs/drk.png new file mode 100644 index 0000000..f1050c7 Binary files /dev/null and b/icons/jobs/drk.png differ diff --git a/icons/jobs/fsh.png b/icons/jobs/fsh.png new file mode 100644 index 0000000..37b5e04 Binary files /dev/null and b/icons/jobs/fsh.png differ diff --git a/icons/jobs/gnb.png b/icons/jobs/gnb.png new file mode 100644 index 0000000..eb629c5 Binary files /dev/null and b/icons/jobs/gnb.png differ diff --git a/icons/jobs/healer.png b/icons/jobs/healer.png new file mode 100644 index 0000000..50e05f0 Binary files /dev/null and b/icons/jobs/healer.png differ diff --git a/icons/jobs/mch.png b/icons/jobs/mch.png new file mode 100644 index 0000000..164e2e7 Binary files /dev/null and b/icons/jobs/mch.png differ diff --git a/icons/jobs/melee.png b/icons/jobs/melee.png new file mode 100644 index 0000000..660f8b9 Binary files /dev/null and b/icons/jobs/melee.png differ diff --git a/icons/jobs/mnk.png b/icons/jobs/mnk.png new file mode 100644 index 0000000..5be68e2 Binary files /dev/null and b/icons/jobs/mnk.png differ diff --git a/icons/jobs/nin.png b/icons/jobs/nin.png new file mode 100644 index 0000000..7690ba1 Binary files /dev/null and b/icons/jobs/nin.png differ diff --git a/icons/jobs/none.png b/icons/jobs/none.png new file mode 100644 index 0000000..e54f237 Binary files /dev/null and b/icons/jobs/none.png differ diff --git a/icons/jobs/pct.png b/icons/jobs/pct.png new file mode 100644 index 0000000..257b04b Binary files /dev/null and b/icons/jobs/pct.png differ diff --git a/icons/jobs/pld.png b/icons/jobs/pld.png new file mode 100644 index 0000000..e3ff9cc Binary files /dev/null and b/icons/jobs/pld.png differ diff --git a/icons/jobs/range.png b/icons/jobs/range.png new file mode 100644 index 0000000..a464311 Binary files /dev/null and b/icons/jobs/range.png differ diff --git a/icons/jobs/rdm.png b/icons/jobs/rdm.png new file mode 100644 index 0000000..7b5c44d Binary files /dev/null and b/icons/jobs/rdm.png differ diff --git a/icons/jobs/rpr.png b/icons/jobs/rpr.png new file mode 100644 index 0000000..d45db18 Binary files /dev/null and b/icons/jobs/rpr.png differ diff --git a/icons/jobs/sam.png b/icons/jobs/sam.png new file mode 100644 index 0000000..8435c00 Binary files /dev/null and b/icons/jobs/sam.png differ diff --git a/icons/jobs/sch.png b/icons/jobs/sch.png new file mode 100644 index 0000000..c2426be Binary files /dev/null and b/icons/jobs/sch.png differ diff --git a/icons/jobs/sge.png b/icons/jobs/sge.png new file mode 100644 index 0000000..885b165 Binary files /dev/null and b/icons/jobs/sge.png differ diff --git a/icons/jobs/smn.png b/icons/jobs/smn.png new file mode 100644 index 0000000..78a7852 Binary files /dev/null and b/icons/jobs/smn.png differ diff --git a/icons/jobs/tank.png b/icons/jobs/tank.png new file mode 100644 index 0000000..0fee3ca Binary files /dev/null and b/icons/jobs/tank.png differ diff --git a/icons/jobs/vpr.png b/icons/jobs/vpr.png new file mode 100644 index 0000000..1c55bb0 Binary files /dev/null and b/icons/jobs/vpr.png differ diff --git a/icons/jobs/war.png b/icons/jobs/war.png new file mode 100644 index 0000000..2114152 Binary files /dev/null and b/icons/jobs/war.png differ diff --git a/icons/jobs/whm.png b/icons/jobs/whm.png new file mode 100644 index 0000000..f9bff90 Binary files /dev/null and b/icons/jobs/whm.png differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..3b5fbf1 --- /dev/null +++ b/index.html @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Dynamis.gg | Dynamis.gg Raid Resources + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+ + +
+
+
+
+ + + +

© 2024 Tvnariea Reksane
Final Fantasy XIV assets are © Square Enix and used under license

+

Powered by Zola & Abridge

+
+
+ + diff --git a/js/abridge.min.js b/js/abridge.min.js new file mode 100644 index 0000000..003dc31 --- /dev/null +++ b/js/abridge.min.js @@ -0,0 +1 @@ +let items=document.querySelectorAll(".preStyle"),changeIcon=(items.forEach(e=>{e.rel="stylesheet"}),document.getElementById("mode")&&document.getElementById("mode").addEventListener("click",()=>{document.documentElement.classList.toggle("switch"),localStorage.setItem("theme",document.documentElement.classList.contains("switch")?"switch":"default")}),(()=>{for(var e=document.getElementsByClassName("m-protected"),t=0;t{e.classList.add(t),setTimeout(()=>e.classList.remove(t),2500)}),copyCodeAndChangeIcon=async(t,e)=>{e=(e.querySelector("table")?getTableCode:getNonTableCode)(e);try{await navigator.clipboard.writeText(e),changeIcon(t,"yes")}catch(e){changeIcon(t,"err")}},getNonTableCode=e=>[...e.querySelectorAll("code")].map(e=>e.textContent).join(""),getTableCode=e=>[...e.querySelectorAll("tr")].map(e=>e.querySelector("td:last-child")?.innerText??"").join("");document.querySelectorAll("pre").forEach(e=>{let t=document.createElement("div");t.className="cc svgs svgh copy",t.innerHTML=" ",e.prepend(t),t.addEventListener("click",()=>copyCodeAndChangeIcon(t,e))}),function(){function g(e){var t=new g.Index;return t.pipeline.add(g.trimmer,g.stopWordFilter,g.stemmer),e&&e.call(t,t),t}var l,c,e,t,d,h,f,p,m,v,y,S,x,b,w,I,E,C,D,F,k,L,_,N,n;g.version="0.9.5",((lunr=g).utils={}).warn=(n=this,function(e){n.console}),g.utils.toString=function(e){return null==e?"":e.toString()},(g.EventEmitter=function(){this.events={}}).prototype.addListener=function(){var e=[].slice.call(arguments),t=e.pop();if("function"!=typeof t)throw new TypeError("last argument must be a function");e.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},g.EventEmitter.prototype.removeListener=function(e,t){this.hasHandler(e)&&-1!=(t=this.events[e].indexOf(t))&&(this.events[e].splice(t,1),0==this.events[e].length)&&delete this.events[e]},g.EventEmitter.prototype.emit=function(e){var t;this.hasHandler(e)&&(t=[].slice.call(arguments,1),this.events[e].forEach(function(e){e.apply(void 0,t)},this))},g.EventEmitter.prototype.hasHandler=function(e){return e in this.events},(g.tokenizer=function(e){var t,n;return arguments.length&&null!=e?Array.isArray(e)?(t=(t=e.filter(function(e){return null!=e})).map(function(e){return g.utils.toString(e).toLowerCase()}),n=[],t.forEach(function(e){e=e.split(g.tokenizer.seperator);n=n.concat(e)},this),n):e.toString().trim().toLowerCase().split(g.tokenizer.seperator):[]}).defaultSeperator=/[\s\-]+/,g.tokenizer.seperator=g.tokenizer.defaultSeperator,g.tokenizer.setSeperator=function(e){null!=e&&"object"==typeof e&&(g.tokenizer.seperator=e)},g.tokenizer.resetSeperator=function(){g.tokenizer.seperator=g.tokenizer.defaultSeperator},g.tokenizer.getSeperator=function(){return g.tokenizer.seperator},(g.Pipeline=function(){this._queue=[]}).registeredFunctions={},g.Pipeline.registerFunction=function(e,t){t in g.Pipeline.registeredFunctions&&g.utils.warn("Overwriting existing registered function: "+t),e.label=t,g.Pipeline.registeredFunctions[t]=e},g.Pipeline.getRegisteredFunction=function(e){return e in g.Pipeline.registeredFunctions!=1?null:g.Pipeline.registeredFunctions[e]},g.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||g.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},g.Pipeline.load=function(e){var n=new g.Pipeline;return e.forEach(function(e){var t=g.Pipeline.getRegisteredFunction(e);if(!t)throw Error("Cannot load un-registered function: "+e);n.add(t)}),n},g.Pipeline.prototype.add=function(){[].slice.call(arguments).forEach(function(e){g.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},g.Pipeline.prototype.after=function(e,t){g.Pipeline.warnIfFunctionNotRegistered(t);e=this._queue.indexOf(e);if(-1==e)throw Error("Cannot find existingFn");this._queue.splice(1+e,0,t)},g.Pipeline.prototype.before=function(e,t){g.Pipeline.warnIfFunctionNotRegistered(t);e=this._queue.indexOf(e);if(-1==e)throw Error("Cannot find existingFn");this._queue.splice(e,0,t)},g.Pipeline.prototype.remove=function(e){e=this._queue.indexOf(e);-1!=e&&this._queue.splice(e,1)},g.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,o=this._queue.length,i=0;i{if(null===e||"object"!=typeof e)return e;var t,n=e.constructor();for(t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);return n})(t):null},g.DocumentStore.prototype.getDoc=function(e){return!1===this.hasDoc(e)?null:this.docs[e]},g.DocumentStore.prototype.hasDoc=function(e){return e in this.docs},g.DocumentStore.prototype.removeDoc=function(e){this.hasDoc(e)&&(delete this.docs[e],delete this.docInfo[e],this.length--)},g.DocumentStore.prototype.addFieldLength=function(e,t,n){null!=e&&0!=this.hasDoc(e)&&(this.docInfo[e]||(this.docInfo[e]={}),this.docInfo[e][t]=n)},g.DocumentStore.prototype.updateFieldLength=function(e,t,n){null!=e&&0!=this.hasDoc(e)&&this.addFieldLength(e,t,n)},g.DocumentStore.prototype.getFieldLength=function(e,t){return null!=e&&e in this.docs&&t in this.docInfo[e]?this.docInfo[e][t]:0},g.DocumentStore.prototype.toJSON=function(){return{docs:this.docs,docInfo:this.docInfo,length:this.length,save:this._save}},l={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},c={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},d=/^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*/,h=/^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*[aeiouy][aeiou]*[^aeiou][^aeiouy]*/,f=/^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*([aeiouy][aeiou]*)?$/,p=/^([^aeiou][^aeiouy]*)?[aeiouy]/,m=/^(.+?)(ss|i)es$/,v=/^(.+?)([^s])s$/,y=/^(.+?)eed$/,S=/^(.+?)(ed|ing)$/,x=/.$/,b=/(at|bl|iz)$/,w=/([^aeiouylsz])\1$/,I=RegExp("^"+(t="[^aeiou][^aeiouy]*")+(e="[aeiouy]")+"[^aeiouwxy]$"),E=/^(.+?[^aeiou])y$/,C=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,D=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,F=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,k=/^(.+?)(s|t)(ion)$/,L=/^(.+?)e$/,_=/ll$/,N=RegExp("^"+t+e+"[^aeiouwxy]$"),g.Pipeline.registerFunction(g.stemmer=function(e){var t,n,o,i,r,s,u,a;return e.length<3||("y"==(n=e.substr(0,1))&&(e=n.toUpperCase()+e.substr(1)),u=v,(r=m).test(e)?e=e.replace(r,"$1$2"):u.test(e)&&(e=e.replace(u,"$1$2")),u=S,(r=y).test(e)?(a=r.exec(e),(r=d).test(a[1])&&(e=e.replace(r=x,""))):u.test(e)&&(s=(a=u.exec(e))[1],(u=p).test(s))&&(e=s,o=w,i=I,(u=b).test(e)?e+="e":o.test(e)?e=e.replace(r=x,""):i.test(e)&&(e+="e")),(r=E).test(e)&&(e=(s=(a=r.exec(e))[1])+"i"),(r=C).test(e)&&(s=(a=r.exec(e))[1],t=a[2],(r=d).test(s))&&(e=s+l[t]),(r=D).test(e)&&(s=(a=r.exec(e))[1],t=a[2],(r=d).test(s))&&(e=s+c[t]),u=k,(r=F).test(e)?(s=(a=r.exec(e))[1],(r=h).test(s)&&(e=s)):u.test(e)&&(s=(a=u.exec(e))[1]+a[2],(u=h).test(s))&&(e=s),(r=L).test(e)&&(s=(a=r.exec(e))[1],u=f,o=N,(r=h).test(s)||u.test(s)&&!o.test(s))&&(e=s),u=h,(r=_).test(e)&&u.test(e)&&(e=e.replace(r=x,"")),"y"==n&&(e=n.toLowerCase()+e.substr(1))),e},"stemmer"),g.stopWordFilter=function(e){return e&&!0!==g.stopWordFilter.stopWords[e]?e:void 0},g.clearStopWords=function(){g.stopWordFilter.stopWords={}},g.addStopWords=function(e){null!=e&&!1!==Array.isArray(e)&&e.forEach(function(e){g.stopWordFilter.stopWords[e]=!0},this)},g.resetStopWords=function(){g.stopWordFilter.stopWords=g.defaultStopWords},g.stopWordFilter.stopWords=g.defaultStopWords={"":!0,a:!0,able:!0,about:!0,across:!0,after:!0,all:!0,almost:!0,also:!0,am:!0,among:!0,an:!0,and:!0,any:!0,are:!0,as:!0,at:!0,be:!0,because:!0,been:!0,but:!0,by:!0,can:!0,cannot:!0,could:!0,dear:!0,did:!0,do:!0,does:!0,either:!0,else:!0,ever:!0,every:!0,for:!0,from:!0,get:!0,got:!0,had:!0,has:!0,have:!0,he:!0,her:!0,hers:!0,him:!0,his:!0,how:!0,however:!0,i:!0,if:!0,in:!0,into:!0,is:!0,it:!0,its:!0,just:!0,least:!0,let:!0,like:!0,likely:!0,may:!0,me:!0,might:!0,most:!0,must:!0,my:!0,neither:!0,no:!0,nor:!0,not:!0,of:!0,off:!0,often:!0,on:!0,only:!0,or:!0,other:!0,our:!0,own:!0,rather:!0,said:!0,say:!0,says:!0,she:!0,should:!0,since:!0,so:!0,some:!0,than:!0,that:!0,the:!0,their:!0,them:!0,then:!0,there:!0,these:!0,they:!0,this:!0,tis:!0,to:!0,too:!0,twas:!0,us:!0,wants:!0,was:!0,we:!0,were:!0,what:!0,when:!0,where:!0,which:!0,while:!0,who:!0,whom:!0,why:!0,will:!0,with:!0,would:!0,yet:!0,you:!0,your:!0},g.Pipeline.registerFunction(g.stopWordFilter,"stopWordFilter"),g.Pipeline.registerFunction(g.trimmer=function(e){if(null==e)throw Error("token should not be undefined");return e.replace(/^\W+/,"").replace(/\W+$/,"")},"trimmer"),(g.InvertedIndex=function(){this.root={docs:{},df:0}}).load=function(e){var t=new this;return t.root=e.root,t},g.InvertedIndex.prototype.addToken=function(e,t,n){for(var n=n||this.root,o=0;o<=e.length-1;){var i=e[o];i in n||(n[i]={docs:{},df:0}),o+=1,n=n[i]}var r=t.ref;n.docs[r]?n.docs[r]={tf:t.tf}:(n.docs[r]={tf:t.tf},n.df+=1)},g.InvertedIndex.prototype.hasToken=function(e){if(!e)return!1;for(var t=this.root,n=0;n=n&&r-1>=o;)s[n]!==u[o]?s[n]u[o]&&o++:(t.add(s[n]),n++,o++);return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){for(var t,e=this.length

'.concat(document.getElementById("searchinput").value,"

");return o.innerHTML=i,n.insertBefore(o,n.firstChild),e.innerHTML=n.outerHTML,t.innerHTML="",document.getElementById("searchinput").value="",document.body.contains(document.closeSearch)&&(document.closeSearch.onsubmit=function(){document.querySelector("main").innerHTML=window.main}),!1}function b(e){return[0,1,2,3,4][Math.ceil(parseInt(e,16).toString(2).length/8)]}var u,r,l,c,h;document.body.contains(document.goSearch)&&(document.goSearch.onsubmit=function(){return goSearchNow()},u=document.getElementById("suggestions"),r=document.getElementById("searchinput"),document.addEventListener("keydown",function(t){if(191===t.keyCode&&"INPUT"!==document.activeElement.tagName&&"TEXTAREA"!==document.activeElement.tagName&&(t.preventDefault(),r.focus(),u.classList.remove("d-none")),27===t.keyCode){r.blur(),u.classList.add("d-none");for(var e=document.getElementById("suggestions");e.firstChild;)e.removeChild(e.firstChild)}var n=u.querySelectorAll("a");if(!u.classList.contains("d-none")&&0!==n.length){var o=[...n],i=o.indexOf(document.activeElement);let e=0;38===t.keyCode?(t.preventDefault(),n[e=0",a=n.querySelector("a"),t=n.querySelector("span:first-child"),d=n.querySelector("span:nth-child(2)"),a.href=e.ref,t.textContent=e.doc.title,d.innerHTML=((e,t)=>{var n=t.map(function(e){return elasticlunr.stemmer(e.toLowerCase())}),o=!1,i=0,r=[],s=e.toLowerCase().split(". ");for(p in s){var u,a=s[p].split(/[\s\n]/),l=8;for(u in a){if(0<(v=a[u]).length){for(var c in n)elasticlunr.stemmer(v).startsWith(n[c])&&(l=40,o=!0);r.push([v,l,i]),l=2}i=i+v.length+1}i+=1}if(0===r.length)return void 0!==e.length&&300"),x=v[2]+v[0].length;40===v[1]||v[0].length<12||/^[\x00-\xff]+$/.test(v[0])?S.push(e.substring(v[2],x)):(y=((e,t)=>{for(var n="",o=!1,i=0,r=0,s=0,u=0;u")}return S.push("…"),S.join("")})(e.doc.body,s),u.appendChild(n))});i.length>r;)u.removeChild(i[0])},!0),u.addEventListener("click",function(){for(;u.lastChild;)u.removeChild(u.lastChild);return!1},!0),document.goSearch.onsubmit=e)},"serviceWorker"in navigator&&(navigator.serviceWorker.register("/sw.min.js?v=3.12.1",{scope:"/"}).then(()=>{},e=>{}),navigator.serviceWorker.ready.then(()=>{})); \ No newline at end of file diff --git a/js/abridge_nopwa.min.js b/js/abridge_nopwa.min.js new file mode 100644 index 0000000..fc3090c --- /dev/null +++ b/js/abridge_nopwa.min.js @@ -0,0 +1 @@ +let items=document.querySelectorAll(".preStyle"),changeIcon=(items.forEach(e=>{e.rel="stylesheet"}),document.getElementById("mode")&&document.getElementById("mode").addEventListener("click",()=>{document.documentElement.classList.toggle("switch"),localStorage.setItem("theme",document.documentElement.classList.contains("switch")?"switch":"default")}),(()=>{for(var e=document.getElementsByClassName("m-protected"),t=0;t{e.classList.add(t),setTimeout(()=>e.classList.remove(t),2500)}),copyCodeAndChangeIcon=async(t,e)=>{e=(e.querySelector("table")?getTableCode:getNonTableCode)(e);try{await navigator.clipboard.writeText(e),changeIcon(t,"yes")}catch(e){changeIcon(t,"err")}},getNonTableCode=e=>[...e.querySelectorAll("code")].map(e=>e.textContent).join(""),getTableCode=e=>[...e.querySelectorAll("tr")].map(e=>e.querySelector("td:last-child")?.innerText??"").join("");document.querySelectorAll("pre").forEach(e=>{let t=document.createElement("div");t.className="cc svgs svgh copy",t.innerHTML=" ",e.prepend(t),t.addEventListener("click",()=>copyCodeAndChangeIcon(t,e))}),function(){function g(e){var t=new g.Index;return t.pipeline.add(g.trimmer,g.stopWordFilter,g.stemmer),e&&e.call(t,t),t}var a,c,e,t,d,h,f,p,m,v,y,S,x,b,w,I,E,C,D,F,k,L,_,N,n;g.version="0.9.5",((lunr=g).utils={}).warn=(n=this,function(e){n.console}),g.utils.toString=function(e){return null==e?"":e.toString()},(g.EventEmitter=function(){this.events={}}).prototype.addListener=function(){var e=[].slice.call(arguments),t=e.pop();if("function"!=typeof t)throw new TypeError("last argument must be a function");e.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},g.EventEmitter.prototype.removeListener=function(e,t){this.hasHandler(e)&&-1!=(t=this.events[e].indexOf(t))&&(this.events[e].splice(t,1),0==this.events[e].length)&&delete this.events[e]},g.EventEmitter.prototype.emit=function(e){var t;this.hasHandler(e)&&(t=[].slice.call(arguments,1),this.events[e].forEach(function(e){e.apply(void 0,t)},this))},g.EventEmitter.prototype.hasHandler=function(e){return e in this.events},(g.tokenizer=function(e){var t,n;return arguments.length&&null!=e?Array.isArray(e)?(t=(t=e.filter(function(e){return null!=e})).map(function(e){return g.utils.toString(e).toLowerCase()}),n=[],t.forEach(function(e){e=e.split(g.tokenizer.seperator);n=n.concat(e)},this),n):e.toString().trim().toLowerCase().split(g.tokenizer.seperator):[]}).defaultSeperator=/[\s\-]+/,g.tokenizer.seperator=g.tokenizer.defaultSeperator,g.tokenizer.setSeperator=function(e){null!=e&&"object"==typeof e&&(g.tokenizer.seperator=e)},g.tokenizer.resetSeperator=function(){g.tokenizer.seperator=g.tokenizer.defaultSeperator},g.tokenizer.getSeperator=function(){return g.tokenizer.seperator},(g.Pipeline=function(){this._queue=[]}).registeredFunctions={},g.Pipeline.registerFunction=function(e,t){t in g.Pipeline.registeredFunctions&&g.utils.warn("Overwriting existing registered function: "+t),e.label=t,g.Pipeline.registeredFunctions[t]=e},g.Pipeline.getRegisteredFunction=function(e){return e in g.Pipeline.registeredFunctions!=1?null:g.Pipeline.registeredFunctions[e]},g.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||g.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},g.Pipeline.load=function(e){var n=new g.Pipeline;return e.forEach(function(e){var t=g.Pipeline.getRegisteredFunction(e);if(!t)throw Error("Cannot load un-registered function: "+e);n.add(t)}),n},g.Pipeline.prototype.add=function(){[].slice.call(arguments).forEach(function(e){g.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},g.Pipeline.prototype.after=function(e,t){g.Pipeline.warnIfFunctionNotRegistered(t);e=this._queue.indexOf(e);if(-1==e)throw Error("Cannot find existingFn");this._queue.splice(1+e,0,t)},g.Pipeline.prototype.before=function(e,t){g.Pipeline.warnIfFunctionNotRegistered(t);e=this._queue.indexOf(e);if(-1==e)throw Error("Cannot find existingFn");this._queue.splice(e,0,t)},g.Pipeline.prototype.remove=function(e){e=this._queue.indexOf(e);-1!=e&&this._queue.splice(e,1)},g.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,o=this._queue.length,i=0;i{if(null===e||"object"!=typeof e)return e;var t,n=e.constructor();for(t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);return n})(t):null},g.DocumentStore.prototype.getDoc=function(e){return!1===this.hasDoc(e)?null:this.docs[e]},g.DocumentStore.prototype.hasDoc=function(e){return e in this.docs},g.DocumentStore.prototype.removeDoc=function(e){this.hasDoc(e)&&(delete this.docs[e],delete this.docInfo[e],this.length--)},g.DocumentStore.prototype.addFieldLength=function(e,t,n){null!=e&&0!=this.hasDoc(e)&&(this.docInfo[e]||(this.docInfo[e]={}),this.docInfo[e][t]=n)},g.DocumentStore.prototype.updateFieldLength=function(e,t,n){null!=e&&0!=this.hasDoc(e)&&this.addFieldLength(e,t,n)},g.DocumentStore.prototype.getFieldLength=function(e,t){return null!=e&&e in this.docs&&t in this.docInfo[e]?this.docInfo[e][t]:0},g.DocumentStore.prototype.toJSON=function(){return{docs:this.docs,docInfo:this.docInfo,length:this.length,save:this._save}},a={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},c={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},d=/^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*/,h=/^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*[aeiouy][aeiou]*[^aeiou][^aeiouy]*/,f=/^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*([aeiouy][aeiou]*)?$/,p=/^([^aeiou][^aeiouy]*)?[aeiouy]/,m=/^(.+?)(ss|i)es$/,v=/^(.+?)([^s])s$/,y=/^(.+?)eed$/,S=/^(.+?)(ed|ing)$/,x=/.$/,b=/(at|bl|iz)$/,w=/([^aeiouylsz])\1$/,I=RegExp("^"+(t="[^aeiou][^aeiouy]*")+(e="[aeiouy]")+"[^aeiouwxy]$"),E=/^(.+?[^aeiou])y$/,C=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,D=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,F=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,k=/^(.+?)(s|t)(ion)$/,L=/^(.+?)e$/,_=/ll$/,N=RegExp("^"+t+e+"[^aeiouwxy]$"),g.Pipeline.registerFunction(g.stemmer=function(e){var t,n,o,i,r,s,u,l;return e.length<3||("y"==(n=e.substr(0,1))&&(e=n.toUpperCase()+e.substr(1)),u=v,(r=m).test(e)?e=e.replace(r,"$1$2"):u.test(e)&&(e=e.replace(u,"$1$2")),u=S,(r=y).test(e)?(l=r.exec(e),(r=d).test(l[1])&&(e=e.replace(r=x,""))):u.test(e)&&(s=(l=u.exec(e))[1],(u=p).test(s))&&(e=s,o=w,i=I,(u=b).test(e)?e+="e":o.test(e)?e=e.replace(r=x,""):i.test(e)&&(e+="e")),(r=E).test(e)&&(e=(s=(l=r.exec(e))[1])+"i"),(r=C).test(e)&&(s=(l=r.exec(e))[1],t=l[2],(r=d).test(s))&&(e=s+a[t]),(r=D).test(e)&&(s=(l=r.exec(e))[1],t=l[2],(r=d).test(s))&&(e=s+c[t]),u=k,(r=F).test(e)?(s=(l=r.exec(e))[1],(r=h).test(s)&&(e=s)):u.test(e)&&(s=(l=u.exec(e))[1]+l[2],(u=h).test(s))&&(e=s),(r=L).test(e)&&(s=(l=r.exec(e))[1],u=f,o=N,(r=h).test(s)||u.test(s)&&!o.test(s))&&(e=s),u=h,(r=_).test(e)&&u.test(e)&&(e=e.replace(r=x,"")),"y"==n&&(e=n.toLowerCase()+e.substr(1))),e},"stemmer"),g.stopWordFilter=function(e){return e&&!0!==g.stopWordFilter.stopWords[e]?e:void 0},g.clearStopWords=function(){g.stopWordFilter.stopWords={}},g.addStopWords=function(e){null!=e&&!1!==Array.isArray(e)&&e.forEach(function(e){g.stopWordFilter.stopWords[e]=!0},this)},g.resetStopWords=function(){g.stopWordFilter.stopWords=g.defaultStopWords},g.stopWordFilter.stopWords=g.defaultStopWords={"":!0,a:!0,able:!0,about:!0,across:!0,after:!0,all:!0,almost:!0,also:!0,am:!0,among:!0,an:!0,and:!0,any:!0,are:!0,as:!0,at:!0,be:!0,because:!0,been:!0,but:!0,by:!0,can:!0,cannot:!0,could:!0,dear:!0,did:!0,do:!0,does:!0,either:!0,else:!0,ever:!0,every:!0,for:!0,from:!0,get:!0,got:!0,had:!0,has:!0,have:!0,he:!0,her:!0,hers:!0,him:!0,his:!0,how:!0,however:!0,i:!0,if:!0,in:!0,into:!0,is:!0,it:!0,its:!0,just:!0,least:!0,let:!0,like:!0,likely:!0,may:!0,me:!0,might:!0,most:!0,must:!0,my:!0,neither:!0,no:!0,nor:!0,not:!0,of:!0,off:!0,often:!0,on:!0,only:!0,or:!0,other:!0,our:!0,own:!0,rather:!0,said:!0,say:!0,says:!0,she:!0,should:!0,since:!0,so:!0,some:!0,than:!0,that:!0,the:!0,their:!0,them:!0,then:!0,there:!0,these:!0,they:!0,this:!0,tis:!0,to:!0,too:!0,twas:!0,us:!0,wants:!0,was:!0,we:!0,were:!0,what:!0,when:!0,where:!0,which:!0,while:!0,who:!0,whom:!0,why:!0,will:!0,with:!0,would:!0,yet:!0,you:!0,your:!0},g.Pipeline.registerFunction(g.stopWordFilter,"stopWordFilter"),g.Pipeline.registerFunction(g.trimmer=function(e){if(null==e)throw Error("token should not be undefined");return e.replace(/^\W+/,"").replace(/\W+$/,"")},"trimmer"),(g.InvertedIndex=function(){this.root={docs:{},df:0}}).load=function(e){var t=new this;return t.root=e.root,t},g.InvertedIndex.prototype.addToken=function(e,t,n){for(var n=n||this.root,o=0;o<=e.length-1;){var i=e[o];i in n||(n[i]={docs:{},df:0}),o+=1,n=n[i]}var r=t.ref;n.docs[r]?n.docs[r]={tf:t.tf}:(n.docs[r]={tf:t.tf},n.df+=1)},g.InvertedIndex.prototype.hasToken=function(e){if(!e)return!1;for(var t=this.root,n=0;n=n&&r-1>=o;)s[n]!==u[o]?s[n]u[o]&&o++:(t.add(s[n]),n++,o++);return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){for(var t,e=this.length

'.concat(document.getElementById("searchinput").value,"

");return o.innerHTML=i,n.insertBefore(o,n.firstChild),e.innerHTML=n.outerHTML,t.innerHTML="",document.getElementById("searchinput").value="",document.body.contains(document.closeSearch)&&(document.closeSearch.onsubmit=function(){document.querySelector("main").innerHTML=window.main}),!1}function b(e){return[0,1,2,3,4][Math.ceil(parseInt(e,16).toString(2).length/8)]}var u,r,l,c,h;document.body.contains(document.goSearch)&&(document.goSearch.onsubmit=function(){return goSearchNow()},u=document.getElementById("suggestions"),r=document.getElementById("searchinput"),document.addEventListener("keydown",function(t){if(191===t.keyCode&&"INPUT"!==document.activeElement.tagName&&"TEXTAREA"!==document.activeElement.tagName&&(t.preventDefault(),r.focus(),u.classList.remove("d-none")),27===t.keyCode){r.blur(),u.classList.add("d-none");for(var e=document.getElementById("suggestions");e.firstChild;)e.removeChild(e.firstChild)}var n=u.querySelectorAll("a");if(!u.classList.contains("d-none")&&0!==n.length){var o=[...n],i=o.indexOf(document.activeElement);let e=0;38===t.keyCode?(t.preventDefault(),n[e=0",a=n.querySelector("a"),t=n.querySelector("span:first-child"),d=n.querySelector("span:nth-child(2)"),a.href=e.ref,t.textContent=e.doc.title,d.innerHTML=((e,t)=>{var n=t.map(function(e){return elasticlunr.stemmer(e.toLowerCase())}),o=!1,i=0,r=[],s=e.toLowerCase().split(". ");for(p in s){var u,l=s[p].split(/[\s\n]/),a=8;for(u in l){if(0<(v=l[u]).length){for(var c in n)elasticlunr.stemmer(v).startsWith(n[c])&&(a=40,o=!0);r.push([v,a,i]),a=2}i=i+v.length+1}i+=1}if(0===r.length)return void 0!==e.length&&300"),x=v[2]+v[0].length;40===v[1]||v[0].length<12||/^[\x00-\xff]+$/.test(v[0])?S.push(e.substring(v[2],x)):(y=((e,t)=>{for(var n="",o=!1,i=0,r=0,s=0,u=0;u")}return S.push("…"),S.join("")})(e.doc.body,s),u.appendChild(n))});i.length>r;)u.removeChild(i[0])},!0),u.addEventListener("click",function(){for(;u.lastChild;)u.removeChild(u.lastChild);return!1},!0),document.goSearch.onsubmit=e)}; \ No newline at end of file diff --git a/js/abridge_nosearch.min.js b/js/abridge_nosearch.min.js new file mode 100644 index 0000000..30ef94e --- /dev/null +++ b/js/abridge_nosearch.min.js @@ -0,0 +1 @@ +let items=document.querySelectorAll(".preStyle"),changeIcon=(items.forEach(e=>{e.rel="stylesheet"}),document.getElementById("mode")&&document.getElementById("mode").addEventListener("click",()=>{document.documentElement.classList.toggle("switch"),localStorage.setItem("theme",document.documentElement.classList.contains("switch")?"switch":"default")}),(()=>{for(var e=document.getElementsByClassName("m-protected"),t=0;t{e.classList.add(t),setTimeout(()=>e.classList.remove(t),2500)}),copyCodeAndChangeIcon=async(t,e)=>{e=(e.querySelector("table")?getTableCode:getNonTableCode)(e);try{await navigator.clipboard.writeText(e),changeIcon(t,"yes")}catch(e){changeIcon(t,"err")}},getNonTableCode=e=>[...e.querySelectorAll("code")].map(e=>e.textContent).join(""),getTableCode=e=>[...e.querySelectorAll("tr")].map(e=>e.querySelector("td:last-child")?.innerText??"").join("");document.querySelectorAll("pre").forEach(e=>{let t=document.createElement("div");t.className="cc svgs svgh copy",t.innerHTML=" ",e.prepend(t),t.addEventListener("click",()=>copyCodeAndChangeIcon(t,e))}),"serviceWorker"in navigator&&(navigator.serviceWorker.register("/sw.min.js?v=3.12.1",{scope:"/"}).then(()=>{},e=>{}),navigator.serviceWorker.ready.then(()=>{})); \ No newline at end of file diff --git a/js/abridge_nosearch_nopwa.min.js b/js/abridge_nosearch_nopwa.min.js new file mode 100644 index 0000000..914a0e9 --- /dev/null +++ b/js/abridge_nosearch_nopwa.min.js @@ -0,0 +1 @@ +let items=document.querySelectorAll(".preStyle"),changeIcon=(items.forEach(e=>{e.rel="stylesheet"}),document.getElementById("mode")&&document.getElementById("mode").addEventListener("click",()=>{document.documentElement.classList.toggle("switch"),localStorage.setItem("theme",document.documentElement.classList.contains("switch")?"switch":"default")}),(()=>{for(var e=document.getElementsByClassName("m-protected"),t=0;t{e.classList.add(t),setTimeout(()=>e.classList.remove(t),2500)}),copyCodeAndChangeIcon=async(t,e)=>{e=(e.querySelector("table")?getTableCode:getNonTableCode)(e);try{await navigator.clipboard.writeText(e),changeIcon(t,"yes")}catch(e){changeIcon(t,"err")}},getNonTableCode=e=>[...e.querySelectorAll("code")].map(e=>e.textContent).join(""),getTableCode=e=>[...e.querySelectorAll("tr")].map(e=>e.querySelector("td:last-child")?.innerText??"").join("");document.querySelectorAll("pre").forEach(e=>{let t=document.createElement("div");t.className="cc svgs svgh copy",t.innerHTML=" ",e.prepend(t),t.addEventListener("click",()=>copyCodeAndChangeIcon(t,e))}); \ No newline at end of file diff --git a/js/codecopy.js b/js/codecopy.js new file mode 100644 index 0000000..9e00c79 --- /dev/null +++ b/js/codecopy.js @@ -0,0 +1,34 @@ +const changeIcon = (copyDiv, className) => { + copyDiv.classList.add(className); + setTimeout(() => copyDiv.classList.remove(className), 2500); +}; + +const copyCodeAndChangeIcon = async (copyDiv, block) => { + const code = block.querySelector('table') ? getTableCode(block) : getNonTableCode(block); + try { + await navigator.clipboard.writeText(code); + changeIcon(copyDiv, "yes"); + } catch (error) { + changeIcon(copyDiv, "err"); + } +}; + +const getNonTableCode = (block) => { + return [...block.querySelectorAll('code')] + .map(code => code.textContent) + .join(''); +}; + +const getTableCode = (block) => { + return [...block.querySelectorAll('tr')] + .map(row => row.querySelector('td:last-child')?.innerText ?? '') + .join(''); +}; + +document.querySelectorAll("pre").forEach((block) => { + const copyDiv = document.createElement("div"); + copyDiv.className = "cc svgs svgh copy"; + copyDiv.innerHTML = " "; + block.prepend(copyDiv); + copyDiv.addEventListener("click", () => copyCodeAndChangeIcon(copyDiv, block));; +}); diff --git a/js/controls.js b/js/controls.js new file mode 100644 index 0000000..1fb7e70 --- /dev/null +++ b/js/controls.js @@ -0,0 +1,78 @@ +function headingLevel(elem) { + switch (elem.tagName) { + case "H1": return 1 + case "H2": return 2 + case "H3": return 3 + case "H4": return 4 + case "H5": return 5 + case "H6": return 6 + default: return null + } +} + +document.addEventListener("DOMContentLoaded", (event) => { + document.querySelectorAll("[data-bs-toggle='tooltip']").forEach(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl)) + + document.querySelectorAll(".collapse-heading").forEach(heading => { + const parent = heading.parentNode + const button = document.createElement("button") + const contents = document.createElement("div") + + button.replaceChildren(...heading.childNodes) + heading.replaceChildren(button) + + contents.className = "collapse" + parent.insertBefore(contents, heading.nextSibling) + + var foundContents = false + var done = false + var toMove = [] + parent.childNodes.forEach(node => { + if (done) { + return + } + if (foundContents) { + if (headingLevel(node) && headingLevel(node) <= headingLevel(heading)) { + done = true + return + } + toMove.push(node) + } + if (node.isSameNode(contents)) { + foundContents = true + } + }) + for (const node of toMove) { + contents.appendChild(node) + } + + const collapse = bootstrap.Collapse.getOrCreateInstance(contents, config = { toggle: false }) + contents.addEventListener("show.bs.collapse", event => { + console.log("hi") + heading.classList.remove("collapsed") + }) + contents.addEventListener("hide.bs.collapse", event => { + console.log("bye") + heading.classList.add("collapsed") + }) + if (location.hash === "#" + heading.id) { + collapse.show() + } else { + collapse.hide() + } + button.addEventListener('click', event => { + console.log("ooh!") + collapse.toggle() + }) + }) +}) + +window.addEventListener('hashchange', event => { + const target = document.querySelector(location.hash + ".collapse-heading>.collapse") + if (target) { + collapse = bootstrap.Collapse.getInstance(target) + if (collapse) { + collapse.show() + } + } +}) \ No newline at end of file diff --git a/js/elasticlunr.min.js b/js/elasticlunr.min.js new file mode 100644 index 0000000..79dad65 --- /dev/null +++ b/js/elasticlunr.min.js @@ -0,0 +1,10 @@ +/** + * elasticlunr - http://weixsong.github.io + * Lightweight full-text search engine in Javascript for browser search and offline search. - 0.9.6 + * + * Copyright (C) 2017 Oliver Nightingale + * Copyright (C) 2017 Wei Song + * MIT Licensed + * @license + */ +!function(){function e(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.9.5",lunr=t,t.utils={},t.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),t.utils.toString=function(e){return void 0===e||null===e?"":e.toString()},t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var e=Array.prototype.slice.call(arguments),t=e.pop(),n=e;if("function"!=typeof t)throw new TypeError("last argument must be a function");n.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},t.EventEmitter.prototype.removeListener=function(e,t){if(this.hasHandler(e)){var n=this.events[e].indexOf(t);-1!==n&&(this.events[e].splice(n,1),0==this.events[e].length&&delete this.events[e])}},t.EventEmitter.prototype.emit=function(e){if(this.hasHandler(e)){var t=Array.prototype.slice.call(arguments,1);this.events[e].forEach(function(e){e.apply(void 0,t)},this)}},t.EventEmitter.prototype.hasHandler=function(e){return e in this.events},t.tokenizer=function(e){if(!arguments.length||null===e||void 0===e)return[];if(Array.isArray(e)){var n=e.filter(function(e){return null===e||void 0===e?!1:!0});n=n.map(function(e){return t.utils.toString(e).toLowerCase()});var i=[];return n.forEach(function(e){var n=e.split(t.tokenizer.seperator);i=i.concat(n)},this),i}return e.toString().trim().toLowerCase().split(t.tokenizer.seperator)},t.tokenizer.defaultSeperator=/[\s\-]+/,t.tokenizer.seperator=t.tokenizer.defaultSeperator,t.tokenizer.setSeperator=function(e){null!==e&&void 0!==e&&"object"==typeof e&&(t.tokenizer.seperator=e)},t.tokenizer.resetSeperator=function(){t.tokenizer.seperator=t.tokenizer.defaultSeperator},t.tokenizer.getSeperator=function(){return t.tokenizer.seperator},t.Pipeline=function(){this._queue=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in t.Pipeline.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[n]=e},t.Pipeline.getRegisteredFunction=function(e){return e in t.Pipeline.registeredFunctions!=!0?null:t.Pipeline.registeredFunctions[e]},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.getRegisteredFunction(e);if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i+1,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i,0,n)},t.Pipeline.prototype.remove=function(e){var t=this._queue.indexOf(e);-1!==t&&this._queue.splice(t,1)},t.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,i=this._queue.length,o=0;n>o;o++){for(var r=e[o],s=0;i>s&&(r=this._queue[s](r,o,e),void 0!==r&&null!==r);s++);void 0!==r&&null!==r&&t.push(r)}return t},t.Pipeline.prototype.reset=function(){this._queue=[]},t.Pipeline.prototype.get=function(){return this._queue},t.Pipeline.prototype.toJSON=function(){return this._queue.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.DocumentStore,this.index={},this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var e=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,e)},t.Index.prototype.off=function(e,t){return this.eventEmitter.removeListener(e,t)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;n._fields=e.fields,n._ref=e.ref,n.documentStore=t.DocumentStore.load(e.documentStore),n.pipeline=t.Pipeline.load(e.pipeline),n.index={};for(var i in e.index)n.index[i]=t.InvertedIndex.load(e.index[i]);return n},t.Index.prototype.addField=function(e){return this._fields.push(e),this.index[e]=new t.InvertedIndex,this},t.Index.prototype.setRef=function(e){return this._ref=e,this},t.Index.prototype.saveDocument=function(e){return this.documentStore=new t.DocumentStore(e),this},t.Index.prototype.addDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.addDoc(i,e),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));this.documentStore.addFieldLength(i,n,o.length);var r={};o.forEach(function(e){e in r?r[e]+=1:r[e]=1},this);for(var s in r){var u=r[s];u=Math.sqrt(u),this.index[n].addToken(s,{ref:i,tf:u})}},this),n&&this.eventEmitter.emit("add",e,this)}},t.Index.prototype.removeDocByRef=function(e){if(e&&this.documentStore.isDocStored()!==!1&&this.documentStore.hasDoc(e)){var t=this.documentStore.getDoc(e);this.removeDoc(t,!1)}},t.Index.prototype.removeDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.hasDoc(i)&&(this.documentStore.removeDoc(i),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));o.forEach(function(e){this.index[n].removeToken(e,i)},this)},this),n&&this.eventEmitter.emit("remove",e,this))}},t.Index.prototype.updateDoc=function(e,t){var t=void 0===t?!0:t;this.removeDocByRef(e[this._ref],!1),this.addDoc(e,!1),t&&this.eventEmitter.emit("update",e,this)},t.Index.prototype.idf=function(e,t){var n="@"+t+"/"+e;if(Object.prototype.hasOwnProperty.call(this._idfCache,n))return this._idfCache[n];var i=this.index[t].getDocFreq(e),o=1+Math.log(this.documentStore.length/(i+1));return this._idfCache[n]=o,o},t.Index.prototype.getFields=function(){return this._fields.slice()},t.Index.prototype.search=function(e,n){if(!e)return[];e="string"==typeof e?{any:e}:JSON.parse(JSON.stringify(e));var i=null;null!=n&&(i=JSON.stringify(n));for(var o=new t.Configuration(i,this.getFields()).get(),r={},s=Object.keys(e),u=0;u0&&t.push(e);for(var i in n)"docs"!==i&&"df"!==i&&this.expandToken(e+i,t,n[i]);return t},t.InvertedIndex.prototype.toJSON=function(){return{root:this.root}},t.Configuration=function(e,n){var e=e||"";if(void 0==n||null==n)throw new Error("fields should not be null");this.config={};var i;try{i=JSON.parse(e),this.buildUserConfig(i,n)}catch(o){t.utils.warn("user configuration parse failed, will use default configuration"),this.buildDefaultConfig(n)}},t.Configuration.prototype.buildDefaultConfig=function(e){this.reset(),e.forEach(function(e){this.config[e]={boost:1,bool:"OR",expand:!1}},this)},t.Configuration.prototype.buildUserConfig=function(e,n){var i="OR",o=!1;if(this.reset(),"bool"in e&&(i=e.bool||i),"expand"in e&&(o=e.expand||o),"fields"in e)for(var r in e.fields)if(n.indexOf(r)>-1){var s=e.fields[r],u=o;void 0!=s.expand&&(u=s.expand),this.config[r]={boost:s.boost||0===s.boost?s.boost:1,bool:s.bool||i,expand:u}}else t.utils.warn("field name in user configuration not found in index instance fields");else this.addAllFields2UserConfig(i,o,n)},t.Configuration.prototype.addAllFields2UserConfig=function(e,t,n){n.forEach(function(n){this.config[n]={boost:1,bool:e,expand:t}},this)},t.Configuration.prototype.get=function(){return this.config},t.Configuration.prototype.reset=function(){this.config={}},lunr.SortedSet=function(){this.length=0,this.elements=[]},lunr.SortedSet.load=function(e){var t=new this;return t.elements=e,t.length=e.length,t},lunr.SortedSet.prototype.add=function(){var e,t;for(e=0;e1;){if(r===e)return o;e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o]}return r===e?o:-1},lunr.SortedSet.prototype.locationFor=function(e){for(var t=0,n=this.elements.length,i=n-t,o=t+Math.floor(i/2),r=this.elements[o];i>1;)e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o];return r>e?o:e>r?o+1:void 0},lunr.SortedSet.prototype.intersect=function(e){for(var t=new lunr.SortedSet,n=0,i=0,o=this.length,r=e.length,s=this.elements,u=e.elements;;){if(n>o-1||i>r-1)break;s[n]!==u[i]?s[n]u[i]&&i++:(t.add(s[n]),n++,i++)}return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){var t,n,i;this.length>=e.length?(t=this,n=e):(t=e,n=this),i=t.clone();for(var o=0,r=n.toArray();o0&&(a.push({type:"text",data:e.slice(0,n)}),e=e.slice(n));var l=t.findIndex((function(t){return e.startsWith(t.left)}));if(-1===(n=r(t[l].right,e,t[l].left.length)))break;var d=e.slice(0,n+t[l].right.length),s=i.test(d)?d:e.slice(t[l].left.length,n);a.push({type:"math",data:s,rawData:d,display:t[l].display}),e=e.slice(n+t[l].right.length)}return""!==e&&a.push({type:"text",data:e}),a},l=function(e,r){var n=o(e,r.delimiters);if(1===n.length&&"text"===n[0].type)return null;for(var a=document.createDocumentFragment(),i=0;i15?"\u2026"+o.slice(n-15,n):o.slice(0,n))+l+(s+15":">","<":"<",'"':""","'":"'"},o=/[&><"']/g;var s=function e(t){return"ordgroup"===t.type||"color"===t.type?1===t.body.length?e(t.body[0]):t:"font"===t.type?e(t.body):t},l={contains:function(e,t){return-1!==e.indexOf(t)},deflt:function(e,t){return void 0===e?t:e},escape:function(e){return String(e).replace(o,(function(e){return i[e]}))},hyphenate:function(e){return e.replace(a,"-$1").toLowerCase()},getBaseElem:s,isCharacterBox:function(e){var t=s(e);return"mathord"===t.type||"textord"===t.type||"atom"===t.type},protocolFromUrl:function(e){var t=/^\s*([^\\/#]*?)(?::|�*58|�*3a)/i.exec(e);return null!=t?t[1]:"_relative"}},h={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:function(e){return"#"+e}},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:function(e,t){return t.push(e),t}},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:function(e){return Math.max(0,e)},cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:function(e){return Math.max(0,e)},cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:function(e){return Math.max(0,e)},cli:"-e, --max-expand ",cliProcessor:function(e){return"Infinity"===e?1/0:parseInt(e)}},globalGroup:{type:"boolean",cli:!1}};function m(e){if(e.default)return e.default;var t=e.type,r=Array.isArray(t)?t[0]:t;if("string"!=typeof r)return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}var c=function(){function e(e){for(var t in this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{},h)if(h.hasOwnProperty(t)){var r=h[t];this[t]=void 0!==e[t]?r.processor?r.processor(e[t]):e[t]:m(r)}}var t=e.prototype;return t.reportNonstrict=function(e,t,r){var a=this.strict;if("function"==typeof a&&(a=a(e,t,r)),a&&"ignore"!==a){if(!0===a||"error"===a)throw new n("LaTeX-incompatible input and strict mode is set to 'error': "+t+" ["+e+"]",r);"warn"===a?"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+t+" ["+e+"]"):"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '"+a+"': "+t+" ["+e+"]")}},t.useStrictBehavior=function(e,t,r){var n=this.strict;if("function"==typeof n)try{n=n(e,t,r)}catch(e){n="error"}return!(!n||"ignore"===n)&&(!0===n||"error"===n||("warn"===n?("undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+t+" ["+e+"]"),!1):("undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '"+n+"': "+t+" ["+e+"]"),!1)))},t.isTrusted=function(e){e.url&&!e.protocol&&(e.protocol=l.protocolFromUrl(e.url));var t="function"==typeof this.trust?this.trust(e):this.trust;return Boolean(t)},e}(),u=function(){function e(e,t,r){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=t,this.cramped=r}var t=e.prototype;return t.sup=function(){return p[d[this.id]]},t.sub=function(){return p[f[this.id]]},t.fracNum=function(){return p[g[this.id]]},t.fracDen=function(){return p[v[this.id]]},t.cramp=function(){return p[b[this.id]]},t.text=function(){return p[y[this.id]]},t.isTight=function(){return this.size>=2},e}(),p=[new u(0,0,!1),new u(1,0,!0),new u(2,1,!1),new u(3,1,!0),new u(4,2,!1),new u(5,2,!0),new u(6,3,!1),new u(7,3,!0)],d=[4,5,4,5,6,7,6,7],f=[5,5,5,5,7,7,7,7],g=[2,3,4,5,6,7,6,7],v=[3,3,5,5,7,7,7,7],b=[1,1,3,3,5,5,7,7],y=[0,1,2,3,2,3,2,3],x={DISPLAY:p[0],TEXT:p[2],SCRIPT:p[4],SCRIPTSCRIPT:p[6]},w=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];var k=[];function S(e){for(var t=0;t=k[t]&&e<=k[t+1])return!0;return!1}w.forEach((function(e){return e.blocks.forEach((function(e){return k.push.apply(k,e)}))}));var M=80,z={doubleleftarrow:"M262 157\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\nm8 0v40h399730v-40zm0 194v40h399730v-40z",doublerightarrow:"M399738 392l\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z",leftarrow:"M400000 241H110l3-3c68.7-52.7 113.7-120\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\n l-3-3h399890zM100 241v40h399900v-40z",leftbrace:"M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z",leftbraceunder:"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z",leftgroup:"M400000 80\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\n 435 0h399565z",leftgroupunder:"M400000 262\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\n 435 219h399565z",leftharpoon:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z",leftharpoonplus:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\nm0 0v40h400000v-40z",leftharpoondown:"M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z",leftharpoondownplus:"M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z",lefthook:"M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\n 71.5 23h399859zM103 281v-40h399897v40z",leftlinesegment:"M40 281 V428 H0 V94 H40 V241 H400000 v40z\nM40 281 V428 H0 V94 H40 V241 H400000 v40z",leftmapsto:"M40 281 V448H0V74H40V241H400000v40z\nM40 281 V448H0V74H40V241H400000v40z",leftToFrom:"M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z",longequal:"M0 50 h400000 v40H0z m0 194h40000v40H0z\nM0 50 h400000 v40H0z m0 194h40000v40H0z",midbrace:"M200428 334\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z",midbraceunder:"M199572 214\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z",oiintSize1:"M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z",oiintSize2:"M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\nc0 110 84 276 504 276s502.4-166 502.4-276z",oiiintSize1:"M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z",oiiintSize2:"M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z",rightarrow:"M0 241v40h399891c-47.3 35.3-84 78-110 128\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n 151.7 139 205zm0 0v40h399900v-40z",rightbrace:"M400000 542l\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z",rightbraceunder:"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z",rightgroup:"M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\n 3-1 3-3v-38c-76-158-257-219-435-219H0z",rightgroupunder:"M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z",rightharpoon:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\n 69.2 92 94.5zm0 0v40h399900v-40z",rightharpoonplus:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z",rightharpoondown:"M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z",rightharpoondownplus:"M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\nm0-194v40h400000v-40zm0 0v40h400000v-40z",righthook:"M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z",rightlinesegment:"M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z",rightToFrom:"M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z",twoheadleftarrow:"M0 167c68 40\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z",twoheadrightarrow:"M400000 167\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z",tilde1:"M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\n-68.267.847-113-73.952-191-73.952z",tilde2:"M344 55.266c-142 0-300.638 81.316-311.5 86.418\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z",tilde3:"M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\n -338 0-409-156.573-744-156.573z",tilde4:"M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\n -175.236-744-175.236z",vec:"M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\nc-16-25.333-24-45-24-59z",widehat1:"M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z",widehat2:"M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat3:"M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat4:"M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widecheck1:"M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z",widecheck2:"M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck3:"M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck4:"M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",baraboveleftarrow:"M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z",rightarrowabovebar:"M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z",baraboveshortleftharpoon:"M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z",rightharpoonaboveshortbar:"M0,241 l0,40c399126,0,399993,0,399993,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z",shortbaraboveleftharpoon:"M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z",shortrightharpoonabovebar:"M53,241l0,40c398570,0,399437,0,399437,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z"},A=function(){function e(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}var t=e.prototype;return t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){for(var e=document.createDocumentFragment(),t=0;t=5?0:e>=3?1:2]){var r=N[t]={cssEmPerMu:B.quad[t]/18};for(var n in B)B.hasOwnProperty(n)&&(r[n]=B[n][t])}return N[t]}(this.size)),this._fontMetrics},t.getColor=function(){return this.phantom?"transparent":this.color},e}();H.BASESIZE=6;var E=H,L={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:1.00375,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:1.00375},D={ex:!0,em:!0,mu:!0},P=function(e){return"string"!=typeof e&&(e=e.unit),e in L||e in D||"ex"===e},F=function(e,t){var r;if(e.unit in L)r=L[e.unit]/t.fontMetrics().ptPerEm/t.sizeMultiplier;else if("mu"===e.unit)r=t.fontMetrics().cssEmPerMu;else{var a;if(a=t.style.isTight()?t.havingStyle(t.style.text()):t,"ex"===e.unit)r=a.fontMetrics().xHeight;else{if("em"!==e.unit)throw new n("Invalid unit: '"+e.unit+"'");r=a.fontMetrics().quad}a!==t&&(r*=a.sizeMultiplier/t.sizeMultiplier)}return Math.min(e.number*r,t.maxSize)},V=function(e){return+e.toFixed(4)+"em"},G=function(e){return e.filter((function(e){return e})).join(" ")},U=function(e,t,r){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=r||{},t){t.style.isTight()&&this.classes.push("mtight");var n=t.getColor();n&&(this.style.color=n)}},Y=function(e){var t=document.createElement(e);for(var r in t.className=G(this.classes),this.style)this.style.hasOwnProperty(r)&&(t.style[r]=this.style[r]);for(var n in this.attributes)this.attributes.hasOwnProperty(n)&&t.setAttribute(n,this.attributes[n]);for(var a=0;a"},W=function(){function e(e,t,r,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,U.call(this,e,r,n),this.children=t||[]}var t=e.prototype;return t.setAttribute=function(e,t){this.attributes[e]=t},t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){return Y.call(this,"span")},t.toMarkup=function(){return X.call(this,"span")},e}(),_=function(){function e(e,t,r,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,U.call(this,t,n),this.children=r||[],this.setAttribute("href",e)}var t=e.prototype;return t.setAttribute=function(e,t){this.attributes[e]=t},t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){return Y.call(this,"a")},t.toMarkup=function(){return X.call(this,"a")},e}(),j=function(){function e(e,t,r){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=t,this.src=e,this.classes=["mord"],this.style=r}var t=e.prototype;return t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){var e=document.createElement("img");for(var t in e.src=this.src,e.alt=this.alt,e.className="mord",this.style)this.style.hasOwnProperty(t)&&(e.style[t]=this.style[t]);return e},t.toMarkup=function(){var e=""+this.alt+"=a[0]&&e<=a[1])return r.name}return null}(this.text.charCodeAt(0));l&&this.classes.push(l+"_fallback"),/[\xee\xef\xed\xec]/.test(this.text)&&(this.text=$[this.text])}var t=e.prototype;return t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){var e=document.createTextNode(this.text),t=null;for(var r in this.italic>0&&((t=document.createElement("span")).style.marginRight=V(this.italic)),this.classes.length>0&&((t=t||document.createElement("span")).className=G(this.classes)),this.style)this.style.hasOwnProperty(r)&&((t=t||document.createElement("span")).style[r]=this.style[r]);return t?(t.appendChild(e),t):e},t.toMarkup=function(){var e=!1,t="0&&(r+="margin-right:"+this.italic+"em;"),this.style)this.style.hasOwnProperty(n)&&(r+=l.hyphenate(n)+":"+this.style[n]+";");r&&(e=!0,t+=' style="'+l.escape(r)+'"');var a=l.escape(this.text);return e?(t+=">",t+=a,t+=""):a},e}(),K=function(){function e(e,t){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=t||{}}var t=e.prototype;return t.toNode=function(){var e=document.createElementNS("http://www.w3.org/2000/svg","svg");for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);for(var r=0;r":""},e}(),Q=function(){function e(e){this.attributes=void 0,this.attributes=e||{}}var t=e.prototype;return t.toNode=function(){var e=document.createElementNS("http://www.w3.org/2000/svg","line");for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);return e},t.toMarkup=function(){var e="","\\gt",!0),ie(oe,le,be,"\u2208","\\in",!0),ie(oe,le,be,"\ue020","\\@not"),ie(oe,le,be,"\u2282","\\subset",!0),ie(oe,le,be,"\u2283","\\supset",!0),ie(oe,le,be,"\u2286","\\subseteq",!0),ie(oe,le,be,"\u2287","\\supseteq",!0),ie(oe,he,be,"\u2288","\\nsubseteq",!0),ie(oe,he,be,"\u2289","\\nsupseteq",!0),ie(oe,le,be,"\u22a8","\\models"),ie(oe,le,be,"\u2190","\\leftarrow",!0),ie(oe,le,be,"\u2264","\\le"),ie(oe,le,be,"\u2264","\\leq",!0),ie(oe,le,be,"<","\\lt",!0),ie(oe,le,be,"\u2192","\\rightarrow",!0),ie(oe,le,be,"\u2192","\\to"),ie(oe,he,be,"\u2271","\\ngeq",!0),ie(oe,he,be,"\u2270","\\nleq",!0),ie(oe,le,ye,"\xa0","\\ "),ie(oe,le,ye,"\xa0","\\space"),ie(oe,le,ye,"\xa0","\\nobreakspace"),ie(se,le,ye,"\xa0","\\ "),ie(se,le,ye,"\xa0"," "),ie(se,le,ye,"\xa0","\\space"),ie(se,le,ye,"\xa0","\\nobreakspace"),ie(oe,le,ye,null,"\\nobreak"),ie(oe,le,ye,null,"\\allowbreak"),ie(oe,le,ve,",",","),ie(oe,le,ve,";",";"),ie(oe,he,ce,"\u22bc","\\barwedge",!0),ie(oe,he,ce,"\u22bb","\\veebar",!0),ie(oe,le,ce,"\u2299","\\odot",!0),ie(oe,le,ce,"\u2295","\\oplus",!0),ie(oe,le,ce,"\u2297","\\otimes",!0),ie(oe,le,xe,"\u2202","\\partial",!0),ie(oe,le,ce,"\u2298","\\oslash",!0),ie(oe,he,ce,"\u229a","\\circledcirc",!0),ie(oe,he,ce,"\u22a1","\\boxdot",!0),ie(oe,le,ce,"\u25b3","\\bigtriangleup"),ie(oe,le,ce,"\u25bd","\\bigtriangledown"),ie(oe,le,ce,"\u2020","\\dagger"),ie(oe,le,ce,"\u22c4","\\diamond"),ie(oe,le,ce,"\u22c6","\\star"),ie(oe,le,ce,"\u25c3","\\triangleleft"),ie(oe,le,ce,"\u25b9","\\triangleright"),ie(oe,le,ge,"{","\\{"),ie(se,le,xe,"{","\\{"),ie(se,le,xe,"{","\\textbraceleft"),ie(oe,le,ue,"}","\\}"),ie(se,le,xe,"}","\\}"),ie(se,le,xe,"}","\\textbraceright"),ie(oe,le,ge,"{","\\lbrace"),ie(oe,le,ue,"}","\\rbrace"),ie(oe,le,ge,"[","\\lbrack",!0),ie(se,le,xe,"[","\\lbrack",!0),ie(oe,le,ue,"]","\\rbrack",!0),ie(se,le,xe,"]","\\rbrack",!0),ie(oe,le,ge,"(","\\lparen",!0),ie(oe,le,ue,")","\\rparen",!0),ie(se,le,xe,"<","\\textless",!0),ie(se,le,xe,">","\\textgreater",!0),ie(oe,le,ge,"\u230a","\\lfloor",!0),ie(oe,le,ue,"\u230b","\\rfloor",!0),ie(oe,le,ge,"\u2308","\\lceil",!0),ie(oe,le,ue,"\u2309","\\rceil",!0),ie(oe,le,xe,"\\","\\backslash"),ie(oe,le,xe,"\u2223","|"),ie(oe,le,xe,"\u2223","\\vert"),ie(se,le,xe,"|","\\textbar",!0),ie(oe,le,xe,"\u2225","\\|"),ie(oe,le,xe,"\u2225","\\Vert"),ie(se,le,xe,"\u2225","\\textbardbl"),ie(se,le,xe,"~","\\textasciitilde"),ie(se,le,xe,"\\","\\textbackslash"),ie(se,le,xe,"^","\\textasciicircum"),ie(oe,le,be,"\u2191","\\uparrow",!0),ie(oe,le,be,"\u21d1","\\Uparrow",!0),ie(oe,le,be,"\u2193","\\downarrow",!0),ie(oe,le,be,"\u21d3","\\Downarrow",!0),ie(oe,le,be,"\u2195","\\updownarrow",!0),ie(oe,le,be,"\u21d5","\\Updownarrow",!0),ie(oe,le,fe,"\u2210","\\coprod"),ie(oe,le,fe,"\u22c1","\\bigvee"),ie(oe,le,fe,"\u22c0","\\bigwedge"),ie(oe,le,fe,"\u2a04","\\biguplus"),ie(oe,le,fe,"\u22c2","\\bigcap"),ie(oe,le,fe,"\u22c3","\\bigcup"),ie(oe,le,fe,"\u222b","\\int"),ie(oe,le,fe,"\u222b","\\intop"),ie(oe,le,fe,"\u222c","\\iint"),ie(oe,le,fe,"\u222d","\\iiint"),ie(oe,le,fe,"\u220f","\\prod"),ie(oe,le,fe,"\u2211","\\sum"),ie(oe,le,fe,"\u2a02","\\bigotimes"),ie(oe,le,fe,"\u2a01","\\bigoplus"),ie(oe,le,fe,"\u2a00","\\bigodot"),ie(oe,le,fe,"\u222e","\\oint"),ie(oe,le,fe,"\u222f","\\oiint"),ie(oe,le,fe,"\u2230","\\oiiint"),ie(oe,le,fe,"\u2a06","\\bigsqcup"),ie(oe,le,fe,"\u222b","\\smallint"),ie(se,le,pe,"\u2026","\\textellipsis"),ie(oe,le,pe,"\u2026","\\mathellipsis"),ie(se,le,pe,"\u2026","\\ldots",!0),ie(oe,le,pe,"\u2026","\\ldots",!0),ie(oe,le,pe,"\u22ef","\\@cdots",!0),ie(oe,le,pe,"\u22f1","\\ddots",!0),ie(oe,le,xe,"\u22ee","\\varvdots"),ie(oe,le,me,"\u02ca","\\acute"),ie(oe,le,me,"\u02cb","\\grave"),ie(oe,le,me,"\xa8","\\ddot"),ie(oe,le,me,"~","\\tilde"),ie(oe,le,me,"\u02c9","\\bar"),ie(oe,le,me,"\u02d8","\\breve"),ie(oe,le,me,"\u02c7","\\check"),ie(oe,le,me,"^","\\hat"),ie(oe,le,me,"\u20d7","\\vec"),ie(oe,le,me,"\u02d9","\\dot"),ie(oe,le,me,"\u02da","\\mathring"),ie(oe,le,de,"\ue131","\\@imath"),ie(oe,le,de,"\ue237","\\@jmath"),ie(oe,le,xe,"\u0131","\u0131"),ie(oe,le,xe,"\u0237","\u0237"),ie(se,le,xe,"\u0131","\\i",!0),ie(se,le,xe,"\u0237","\\j",!0),ie(se,le,xe,"\xdf","\\ss",!0),ie(se,le,xe,"\xe6","\\ae",!0),ie(se,le,xe,"\u0153","\\oe",!0),ie(se,le,xe,"\xf8","\\o",!0),ie(se,le,xe,"\xc6","\\AE",!0),ie(se,le,xe,"\u0152","\\OE",!0),ie(se,le,xe,"\xd8","\\O",!0),ie(se,le,me,"\u02ca","\\'"),ie(se,le,me,"\u02cb","\\`"),ie(se,le,me,"\u02c6","\\^"),ie(se,le,me,"\u02dc","\\~"),ie(se,le,me,"\u02c9","\\="),ie(se,le,me,"\u02d8","\\u"),ie(se,le,me,"\u02d9","\\."),ie(se,le,me,"\xb8","\\c"),ie(se,le,me,"\u02da","\\r"),ie(se,le,me,"\u02c7","\\v"),ie(se,le,me,"\xa8",'\\"'),ie(se,le,me,"\u02dd","\\H"),ie(se,le,me,"\u25ef","\\textcircled");var we={"--":!0,"---":!0,"``":!0,"''":!0};ie(se,le,xe,"\u2013","--",!0),ie(se,le,xe,"\u2013","\\textendash"),ie(se,le,xe,"\u2014","---",!0),ie(se,le,xe,"\u2014","\\textemdash"),ie(se,le,xe,"\u2018","`",!0),ie(se,le,xe,"\u2018","\\textquoteleft"),ie(se,le,xe,"\u2019","'",!0),ie(se,le,xe,"\u2019","\\textquoteright"),ie(se,le,xe,"\u201c","``",!0),ie(se,le,xe,"\u201c","\\textquotedblleft"),ie(se,le,xe,"\u201d","''",!0),ie(se,le,xe,"\u201d","\\textquotedblright"),ie(oe,le,xe,"\xb0","\\degree",!0),ie(se,le,xe,"\xb0","\\degree"),ie(se,le,xe,"\xb0","\\textdegree",!0),ie(oe,le,xe,"\xa3","\\pounds"),ie(oe,le,xe,"\xa3","\\mathsterling",!0),ie(se,le,xe,"\xa3","\\pounds"),ie(se,le,xe,"\xa3","\\textsterling",!0),ie(oe,he,xe,"\u2720","\\maltese"),ie(se,he,xe,"\u2720","\\maltese");for(var ke='0123456789/@."',Se=0;Set&&(t=i.height),i.depth>r&&(r=i.depth),i.maxFontSize>n&&(n=i.maxFontSize)}e.height=t,e.depth=r,e.maxFontSize=n},Xe=function(e,t,r,n){var a=new W(e,t,r,n);return Ye(a),a},We=function(e,t,r,n){return new W(e,t,r,n)},_e=function(e){var t=new A(e);return Ye(t),t},je=function(e,t,r){var n="";switch(e){case"amsrm":n="AMS";break;case"textrm":n="Main";break;case"textsf":n="SansSerif";break;case"texttt":n="Typewriter";break;default:n=e}return n+"-"+("textbf"===t&&"textit"===r?"BoldItalic":"textbf"===t?"Bold":"textit"===t?"Italic":"Regular")},$e={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},Ze={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},Ke={fontMap:$e,makeSymbol:Ge,mathsym:function(e,t,r,n){return void 0===n&&(n=[]),"boldsymbol"===r.font&&Ve(e,"Main-Bold",t).metrics?Ge(e,"Main-Bold",t,r,n.concat(["mathbf"])):"\\"===e||"main"===ae[t][e].font?Ge(e,"Main-Regular",t,r,n):Ge(e,"AMS-Regular",t,r,n.concat(["amsrm"]))},makeSpan:Xe,makeSvgSpan:We,makeLineSpan:function(e,t,r){var n=Xe([e],[],t);return n.height=Math.max(r||t.fontMetrics().defaultRuleThickness,t.minRuleThickness),n.style.borderBottomWidth=V(n.height),n.maxFontSize=1,n},makeAnchor:function(e,t,r,n){var a=new _(e,t,r,n);return Ye(a),a},makeFragment:_e,wrapFragment:function(e,t){return e instanceof A?Xe([],[e],t):e},makeVList:function(e,t){for(var r=function(e){if("individualShift"===e.positionType){for(var t=e.children,r=[t[0]],n=-t[0].shift-t[0].elem.depth,a=n,i=1;i0&&(o.push(kt(s,t)),s=[]),o.push(a[l]));s.length>0&&o.push(kt(s,t)),r?((i=kt(ft(r,t,!0))).classes=["tag"],o.push(i)):n&&o.push(n);var m=mt(["katex-html"],o);if(m.setAttribute("aria-hidden","true"),i){var c=i.children[0];c.style.height=V(m.height+m.depth),m.depth&&(c.style.verticalAlign=V(-m.depth))}return m}function Mt(e){return new A(e)}var zt=function(){function e(e,t,r){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=t||[],this.classes=r||[]}var t=e.prototype;return t.setAttribute=function(e,t){this.attributes[e]=t},t.getAttribute=function(e){return this.attributes[e]},t.toNode=function(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);this.classes.length>0&&(e.className=G(this.classes));for(var r=0;r0&&(e+=' class ="'+l.escape(G(this.classes))+'"'),e+=">";for(var r=0;r"},t.toText=function(){return this.children.map((function(e){return e.toText()})).join("")},e}(),At=function(){function e(e){this.text=void 0,this.text=e}var t=e.prototype;return t.toNode=function(){return document.createTextNode(this.text)},t.toMarkup=function(){return l.escape(this.toText())},t.toText=function(){return this.text},e}(),Tt={MathNode:zt,TextNode:At,SpaceNode:function(){function e(e){this.width=void 0,this.character=void 0,this.width=e,this.character=e>=.05555&&e<=.05556?"\u200a":e>=.1666&&e<=.1667?"\u2009":e>=.2222&&e<=.2223?"\u2005":e>=.2777&&e<=.2778?"\u2005\u200a":e>=-.05556&&e<=-.05555?"\u200a\u2063":e>=-.1667&&e<=-.1666?"\u2009\u2063":e>=-.2223&&e<=-.2222?"\u205f\u2063":e>=-.2778&&e<=-.2777?"\u2005\u2063":null}var t=e.prototype;return t.toNode=function(){if(this.character)return document.createTextNode(this.character);var e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return e.setAttribute("width",V(this.width)),e},t.toMarkup=function(){return this.character?""+this.character+"":''},t.toText=function(){return this.character?this.character:" "},e}(),newDocumentFragment:Mt},Bt=function(e,t,r){return!ae[t][e]||!ae[t][e].replace||55349===e.charCodeAt(0)||we.hasOwnProperty(e)&&r&&(r.fontFamily&&"tt"===r.fontFamily.substr(4,2)||r.font&&"tt"===r.font.substr(4,2))||(e=ae[t][e].replace),new Tt.TextNode(e)},Ct=function(e){return 1===e.length?e[0]:new Tt.MathNode("mrow",e)},qt=function(e,t){if("texttt"===t.fontFamily)return"monospace";if("textsf"===t.fontFamily)return"textit"===t.fontShape&&"textbf"===t.fontWeight?"sans-serif-bold-italic":"textit"===t.fontShape?"sans-serif-italic":"textbf"===t.fontWeight?"bold-sans-serif":"sans-serif";if("textit"===t.fontShape&&"textbf"===t.fontWeight)return"bold-italic";if("textit"===t.fontShape)return"italic";if("textbf"===t.fontWeight)return"bold";var r=t.font;if(!r||"mathnormal"===r)return null;var n=e.mode;if("mathit"===r)return"italic";if("boldsymbol"===r)return"textord"===e.type?"bold":"bold-italic";if("mathbf"===r)return"bold";if("mathbb"===r)return"double-struck";if("mathfrak"===r)return"fraktur";if("mathscr"===r||"mathcal"===r)return"script";if("mathsf"===r)return"sans-serif";if("mathtt"===r)return"monospace";var a=e.text;return l.contains(["\\imath","\\jmath"],a)?null:(ae[n][a]&&ae[n][a].replace&&(a=ae[n][a].replace),q(a,Ke.fontMap[r].fontName,n)?Ke.fontMap[r].variant:null)},Nt=function(e,t,r){if(1===e.length){var n=Rt(e[0],t);return r&&n instanceof zt&&"mo"===n.type&&(n.setAttribute("lspace","0em"),n.setAttribute("rspace","0em")),[n]}for(var a,i=[],o=0;o0&&(p.text=p.text.slice(0,1)+"\u0338"+p.text.slice(1),i.pop())}}}i.push(s),a=s}return i},It=function(e,t,r){return Ct(Nt(e,t,r))},Rt=function(e,t){if(!e)return new Tt.MathNode("mrow");if(it[e.type])return it[e.type](e,t);throw new n("Got group of unknown type: '"+e.type+"'")};function Ot(e,t,r,n,a){var i,o=Nt(e,r);i=1===o.length&&o[0]instanceof zt&&l.contains(["mrow","mtable"],o[0].type)?o[0]:new Tt.MathNode("mrow",o);var s=new Tt.MathNode("annotation",[new Tt.TextNode(t)]);s.setAttribute("encoding","application/x-tex");var h=new Tt.MathNode("semantics",[i,s]),m=new Tt.MathNode("math",[h]);m.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),n&&m.setAttribute("display","block");var c=a?"katex":"katex-mathml";return Ke.makeSpan([c],[m])}var Ht=function(e){return new E({style:e.displayMode?x.DISPLAY:x.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},Et=function(e,t){if(t.displayMode){var r=["katex-display"];t.leqno&&r.push("leqno"),t.fleqn&&r.push("fleqn"),e=Ke.makeSpan(r,[e])}return e},Lt=function(e,t,r){var n,a=Ht(r);if("mathml"===r.output)return Ot(e,t,a,r.displayMode,!0);if("html"===r.output){var i=St(e,a);n=Ke.makeSpan(["katex"],[i])}else{var o=Ot(e,t,a,r.displayMode,!1),s=St(e,a);n=Ke.makeSpan(["katex"],[o,s])}return Et(n,r)},Dt={widehat:"^",widecheck:"\u02c7",widetilde:"~",utilde:"~",overleftarrow:"\u2190",underleftarrow:"\u2190",xleftarrow:"\u2190",overrightarrow:"\u2192",underrightarrow:"\u2192",xrightarrow:"\u2192",underbrace:"\u23df",overbrace:"\u23de",overgroup:"\u23e0",undergroup:"\u23e1",overleftrightarrow:"\u2194",underleftrightarrow:"\u2194",xleftrightarrow:"\u2194",Overrightarrow:"\u21d2",xRightarrow:"\u21d2",overleftharpoon:"\u21bc",xleftharpoonup:"\u21bc",overrightharpoon:"\u21c0",xrightharpoonup:"\u21c0",xLeftarrow:"\u21d0",xLeftrightarrow:"\u21d4",xhookleftarrow:"\u21a9",xhookrightarrow:"\u21aa",xmapsto:"\u21a6",xrightharpoondown:"\u21c1",xleftharpoondown:"\u21bd",xrightleftharpoons:"\u21cc",xleftrightharpoons:"\u21cb",xtwoheadleftarrow:"\u219e",xtwoheadrightarrow:"\u21a0",xlongequal:"=",xtofrom:"\u21c4",xrightleftarrows:"\u21c4",xrightequilibrium:"\u21cc",xleftequilibrium:"\u21cb","\\cdrightarrow":"\u2192","\\cdleftarrow":"\u2190","\\cdlongequal":"="},Pt={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},Ft=function(e,t,r,n,a){var i,o=e.height+e.depth+r+n;if(/fbox|color|angl/.test(t)){if(i=Ke.makeSpan(["stretchy",t],[],a),"fbox"===t){var s=a.color&&a.getColor();s&&(i.style.borderColor=s)}}else{var l=[];/^[bx]cancel$/.test(t)&&l.push(new Q({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(t)&&l.push(new Q({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var h=new K(l,{width:"100%",height:V(o)});i=Ke.makeSvgSpan([],[h],a)}return i.height=o,i.style.height=V(o),i},Vt=function(e){var t=new Tt.MathNode("mo",[new Tt.TextNode(Dt[e.replace(/^\\/,"")])]);return t.setAttribute("stretchy","true"),t},Gt=function(e,t){var r=function(){var r=4e5,n=e.label.substr(1);if(l.contains(["widehat","widecheck","widetilde","utilde"],n)){var a,i,o,s="ordgroup"===(d=e.base).type?d.body.length:1;if(s>5)"widehat"===n||"widecheck"===n?(a=420,r=2364,o=.42,i=n+"4"):(a=312,r=2340,o=.34,i="tilde4");else{var h=[1,1,2,2,3,3][s];"widehat"===n||"widecheck"===n?(r=[0,1062,2364,2364,2364][h],a=[0,239,300,360,420][h],o=[0,.24,.3,.3,.36,.42][h],i=n+h):(r=[0,600,1033,2339,2340][h],a=[0,260,286,306,312][h],o=[0,.26,.286,.3,.306,.34][h],i="tilde"+h)}var m=new J(i),c=new K([m],{width:"100%",height:V(o),viewBox:"0 0 "+r+" "+a,preserveAspectRatio:"none"});return{span:Ke.makeSvgSpan([],[c],t),minWidth:0,height:o}}var u,p,d,f=[],g=Pt[n],v=g[0],b=g[1],y=g[2],x=y/1e3,w=v.length;if(1===w)u=["hide-tail"],p=[g[3]];else if(2===w)u=["halfarrow-left","halfarrow-right"],p=["xMinYMin","xMaxYMin"];else{if(3!==w)throw new Error("Correct katexImagesData or update code here to support\n "+w+" children.");u=["brace-left","brace-center","brace-right"],p=["xMinYMin","xMidYMin","xMaxYMin"]}for(var k=0;k0&&(n.style.minWidth=V(a)),n};function Ut(e,t){if(!e||e.type!==t)throw new Error("Expected node of type "+t+", but got "+(e?"node of type "+e.type:String(e)));return e}function Yt(e){var t=Xt(e);if(!t)throw new Error("Expected node of symbol group type, but got "+(e?"node of type "+e.type:String(e)));return t}function Xt(e){return e&&("atom"===e.type||re.hasOwnProperty(e.type))?e:null}var Wt=function(e,t){var r,n,a;e&&"supsub"===e.type?(r=(n=Ut(e.base,"accent")).base,e.base=r,a=function(e){if(e instanceof W)return e;throw new Error("Expected span but got "+String(e)+".")}(wt(e,t)),e.base=n):r=(n=Ut(e,"accent")).base;var i=wt(r,t.havingCrampedStyle()),o=0;if(n.isShifty&&l.isCharacterBox(r)){var s=l.getBaseElem(r);o=ee(wt(s,t.havingCrampedStyle())).skew}var h,m="\\c"===n.label,c=m?i.height+i.depth:Math.min(i.height,t.fontMetrics().xHeight);if(n.isStretchy)h=Gt(n,t),h=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:i},{type:"elem",elem:h,wrapperClasses:["svg-align"],wrapperStyle:o>0?{width:"calc(100% - "+V(2*o)+")",marginLeft:V(2*o)}:void 0}]},t);else{var u,p;"\\vec"===n.label?(u=Ke.staticSvg("vec",t),p=Ke.svgData.vec[1]):((u=ee(u=Ke.makeOrd({mode:n.mode,text:n.label},t,"textord"))).italic=0,p=u.width,m&&(c+=u.depth)),h=Ke.makeSpan(["accent-body"],[u]);var d="\\textcircled"===n.label;d&&(h.classes.push("accent-full"),c=i.height);var f=o;d||(f-=p/2),h.style.left=V(f),"\\textcircled"===n.label&&(h.style.top=".2em"),h=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:i},{type:"kern",size:-c},{type:"elem",elem:h}]},t)}var g=Ke.makeSpan(["mord","accent"],[h],t);return a?(a.children[0]=g,a.height=Math.max(g.height,a.height),a.classes[0]="mord",a):g},_t=function(e,t){var r=e.isStretchy?Vt(e.label):new Tt.MathNode("mo",[Bt(e.label,e.mode)]),n=new Tt.MathNode("mover",[Rt(e.base,t),r]);return n.setAttribute("accent","true"),n},jt=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map((function(e){return"\\"+e})).join("|"));ot({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:function(e,t){var r=lt(t[0]),n=!jt.test(e.funcName),a=!n||"\\widehat"===e.funcName||"\\widetilde"===e.funcName||"\\widecheck"===e.funcName;return{type:"accent",mode:e.parser.mode,label:e.funcName,isStretchy:n,isShifty:a,base:r}},htmlBuilder:Wt,mathmlBuilder:_t}),ot({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:function(e,t){var r=t[0],n=e.parser.mode;return"math"===n&&(e.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+e.funcName+" works only in text mode"),n="text"),{type:"accent",mode:n,label:e.funcName,isStretchy:!1,isShifty:!0,base:r}},htmlBuilder:Wt,mathmlBuilder:_t}),ot({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:function(e,t){var r=e.parser,n=e.funcName,a=t[0];return{type:"accentUnder",mode:r.mode,label:n,base:a}},htmlBuilder:function(e,t){var r=wt(e.base,t),n=Gt(e,t),a="\\utilde"===e.label?.12:0,i=Ke.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:a},{type:"elem",elem:r}]},t);return Ke.makeSpan(["mord","accentunder"],[i],t)},mathmlBuilder:function(e,t){var r=Vt(e.label),n=new Tt.MathNode("munder",[Rt(e.base,t),r]);return n.setAttribute("accentunder","true"),n}});var $t=function(e){var t=new Tt.MathNode("mpadded",e?[e]:[]);return t.setAttribute("width","+0.6em"),t.setAttribute("lspace","0.3em"),t};ot({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler:function(e,t,r){var n=e.parser,a=e.funcName;return{type:"xArrow",mode:n.mode,label:a,body:t[0],below:r[0]}},htmlBuilder:function(e,t){var r,n=t.style,a=t.havingStyle(n.sup()),i=Ke.wrapFragment(wt(e.body,a,t),t),o="\\x"===e.label.slice(0,2)?"x":"cd";i.classes.push(o+"-arrow-pad"),e.below&&(a=t.havingStyle(n.sub()),(r=Ke.wrapFragment(wt(e.below,a,t),t)).classes.push(o+"-arrow-pad"));var s,l=Gt(e,t),h=-t.fontMetrics().axisHeight+.5*l.height,m=-t.fontMetrics().axisHeight-.5*l.height-.111;if((i.depth>.25||"\\xleftequilibrium"===e.label)&&(m-=i.depth),r){var c=-t.fontMetrics().axisHeight+r.height+.5*l.height+.111;s=Ke.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:m},{type:"elem",elem:l,shift:h},{type:"elem",elem:r,shift:c}]},t)}else s=Ke.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:m},{type:"elem",elem:l,shift:h}]},t);return s.children[0].children[0].children[1].classes.push("svg-align"),Ke.makeSpan(["mrel","x-arrow"],[s],t)},mathmlBuilder:function(e,t){var r,n=Vt(e.label);if(n.setAttribute("minsize","x"===e.label.charAt(0)?"1.75em":"3.0em"),e.body){var a=$t(Rt(e.body,t));if(e.below){var i=$t(Rt(e.below,t));r=new Tt.MathNode("munderover",[n,i,a])}else r=new Tt.MathNode("mover",[n,a])}else if(e.below){var o=$t(Rt(e.below,t));r=new Tt.MathNode("munder",[n,o])}else r=$t(),r=new Tt.MathNode("mover",[n,r]);return r}});var Zt={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},Kt=function(e){return"textord"===e.type&&"@"===e.text};function Jt(e,t,r){var n=Zt[e];switch(n){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return r.callFunction(n,[t[0]],[t[1]]);case"\\uparrow":case"\\downarrow":var a={type:"atom",text:n,mode:"math",family:"rel"},i={type:"ordgroup",mode:"math",body:[r.callFunction("\\\\cdleft",[t[0]],[]),r.callFunction("\\Big",[a],[]),r.callFunction("\\\\cdright",[t[1]],[])]};return r.callFunction("\\\\cdparent",[i],[]);case"\\\\cdlongequal":return r.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":return r.callFunction("\\Big",[{type:"textord",text:"\\Vert",mode:"math"}],[]);default:return{type:"textord",text:" ",mode:"math"}}}ot({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler:function(e,t){var r=e.parser,n=e.funcName;return{type:"cdlabel",mode:r.mode,side:n.slice(4),label:t[0]}},htmlBuilder:function(e,t){var r=t.havingStyle(t.style.sup()),n=Ke.wrapFragment(wt(e.label,r,t),t);return n.classes.push("cd-label-"+e.side),n.style.bottom=V(.8-n.depth),n.height=0,n.depth=0,n},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mrow",[Rt(e.label,t)]);return(r=new Tt.MathNode("mpadded",[r])).setAttribute("width","0"),"left"===e.side&&r.setAttribute("lspace","-1width"),r.setAttribute("voffset","0.7em"),(r=new Tt.MathNode("mstyle",[r])).setAttribute("displaystyle","false"),r.setAttribute("scriptlevel","1"),r}}),ot({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler:function(e,t){return{type:"cdlabelparent",mode:e.parser.mode,fragment:t[0]}},htmlBuilder:function(e,t){var r=Ke.wrapFragment(wt(e.fragment,t),t);return r.classes.push("cd-vert-arrow"),r},mathmlBuilder:function(e,t){return new Tt.MathNode("mrow",[Rt(e.fragment,t)])}}),ot({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler:function(e,t){for(var r=e.parser,a=Ut(t[0],"ordgroup").body,i="",o=0;o=1114111)throw new n("\\@char with invalid code point "+i);return l<=65535?s=String.fromCharCode(l):(l-=65536,s=String.fromCharCode(55296+(l>>10),56320+(1023&l))),{type:"textord",mode:r.mode,text:s}}});var Qt=function(e,t){var r=ft(e.body,t.withColor(e.color),!1);return Ke.makeFragment(r)},er=function(e,t){var r=Nt(e.body,t.withColor(e.color)),n=new Tt.MathNode("mstyle",r);return n.setAttribute("mathcolor",e.color),n};ot({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler:function(e,t){var r=e.parser,n=Ut(t[0],"color-token").color,a=t[1];return{type:"color",mode:r.mode,color:n,body:ht(a)}},htmlBuilder:Qt,mathmlBuilder:er}),ot({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler:function(e,t){var r=e.parser,n=e.breakOnTokenText,a=Ut(t[0],"color-token").color;r.gullet.macros.set("\\current@color",a);var i=r.parseExpression(!0,n);return{type:"color",mode:r.mode,color:a,body:i}},htmlBuilder:Qt,mathmlBuilder:er}),ot({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:1,argTypes:["size"],allowedInText:!0},handler:function(e,t,r){var n=e.parser,a=r[0],i=!n.settings.displayMode||!n.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:n.mode,newLine:i,size:a&&Ut(a,"size").value}},htmlBuilder:function(e,t){var r=Ke.makeSpan(["mspace"],[],t);return e.newLine&&(r.classes.push("newline"),e.size&&(r.style.marginTop=V(F(e.size,t)))),r},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mspace");return e.newLine&&(r.setAttribute("linebreak","newline"),e.size&&r.setAttribute("height",V(F(e.size,t)))),r}});var tr={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},rr=function(e){var t=e.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(t))throw new n("Expected a control sequence",e);return t},nr=function(e,t,r,n){var a=e.gullet.macros.get(r.text);null==a&&(r.noexpand=!0,a={tokens:[r],numArgs:0,unexpandable:!e.gullet.isExpandable(r.text)}),e.gullet.macros.set(t,a,n)};ot({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler:function(e){var t=e.parser,r=e.funcName;t.consumeSpaces();var a=t.fetch();if(tr[a.text])return"\\global"!==r&&"\\\\globallong"!==r||(a.text=tr[a.text]),Ut(t.parseFunction(),"internal");throw new n("Invalid token after macro prefix",a)}}),ot({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e){var t=e.parser,r=e.funcName,a=t.gullet.popToken(),i=a.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(i))throw new n("Expected a control sequence",a);for(var o,s=0,l=[[]];"{"!==t.gullet.future().text;)if("#"===(a=t.gullet.popToken()).text){if("{"===t.gullet.future().text){o=t.gullet.future(),l[s].push("{");break}if(a=t.gullet.popToken(),!/^[1-9]$/.test(a.text))throw new n('Invalid argument number "'+a.text+'"');if(parseInt(a.text)!==s+1)throw new n('Argument number "'+a.text+'" out of order');s++,l.push([])}else{if("EOF"===a.text)throw new n("Expected a macro definition");l[s].push(a.text)}var h=t.gullet.consumeArg().tokens;return o&&h.unshift(o),"\\edef"!==r&&"\\xdef"!==r||(h=t.gullet.expandTokens(h)).reverse(),t.gullet.macros.set(i,{tokens:h,numArgs:s,delimiters:l},r===tr[r]),{type:"internal",mode:t.mode}}}),ot({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e){var t=e.parser,r=e.funcName,n=rr(t.gullet.popToken());t.gullet.consumeSpaces();var a=function(e){var t=e.gullet.popToken();return"="===t.text&&" "===(t=e.gullet.popToken()).text&&(t=e.gullet.popToken()),t}(t);return nr(t,n,a,"\\\\globallet"===r),{type:"internal",mode:t.mode}}}),ot({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e){var t=e.parser,r=e.funcName,n=rr(t.gullet.popToken()),a=t.gullet.popToken(),i=t.gullet.popToken();return nr(t,n,i,"\\\\globalfuture"===r),t.gullet.pushToken(i),t.gullet.pushToken(a),{type:"internal",mode:t.mode}}});var ar=function(e,t,r){var n=q(ae.math[e]&&ae.math[e].replace||e,t,r);if(!n)throw new Error("Unsupported symbol "+e+" and font size "+t+".");return n},ir=function(e,t,r,n){var a=r.havingBaseStyle(t),i=Ke.makeSpan(n.concat(a.sizingClasses(r)),[e],r),o=a.sizeMultiplier/r.sizeMultiplier;return i.height*=o,i.depth*=o,i.maxFontSize=a.sizeMultiplier,i},or=function(e,t,r){var n=t.havingBaseStyle(r),a=(1-t.sizeMultiplier/n.sizeMultiplier)*t.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=V(a),e.height-=a,e.depth+=a},sr=function(e,t,r,n,a,i){var o=function(e,t,r,n){return Ke.makeSymbol(e,"Size"+t+"-Regular",r,n)}(e,t,a,n),s=ir(Ke.makeSpan(["delimsizing","size"+t],[o],n),x.TEXT,n,i);return r&&or(s,n,x.TEXT),s},lr=function(e,t,r){var n;return n="Size1-Regular"===t?"delim-size1":"delim-size4",{type:"elem",elem:Ke.makeSpan(["delimsizinginner",n],[Ke.makeSpan([],[Ke.makeSymbol(e,t,r)])])}},hr=function(e,t,r){var n=T["Size4-Regular"][e.charCodeAt(0)]?T["Size4-Regular"][e.charCodeAt(0)][4]:T["Size1-Regular"][e.charCodeAt(0)][4],a=new J("inner",function(e,t){switch(e){case"\u239c":return"M291 0 H417 V"+t+" H291z M291 0 H417 V"+t+" H291z";case"\u2223":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z";case"\u2225":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145zM367 0 H410 V"+t+" H367z M367 0 H410 V"+t+" H367z";case"\u239f":return"M457 0 H583 V"+t+" H457z M457 0 H583 V"+t+" H457z";case"\u23a2":return"M319 0 H403 V"+t+" H319z M319 0 H403 V"+t+" H319z";case"\u23a5":return"M263 0 H347 V"+t+" H263z M263 0 H347 V"+t+" H263z";case"\u23aa":return"M384 0 H504 V"+t+" H384z M384 0 H504 V"+t+" H384z";case"\u23d0":return"M312 0 H355 V"+t+" H312z M312 0 H355 V"+t+" H312z";case"\u2016":return"M257 0 H300 V"+t+" H257z M257 0 H300 V"+t+" H257zM478 0 H521 V"+t+" H478z M478 0 H521 V"+t+" H478z";default:return""}}(e,Math.round(1e3*t))),i=new K([a],{width:V(n),height:V(t),style:"width:"+V(n),viewBox:"0 0 "+1e3*n+" "+Math.round(1e3*t),preserveAspectRatio:"xMinYMin"}),o=Ke.makeSvgSpan([],[i],r);return o.height=t,o.style.height=V(t),o.style.width=V(n),{type:"elem",elem:o}},mr={type:"kern",size:-.008},cr=["|","\\lvert","\\rvert","\\vert"],ur=["\\|","\\lVert","\\rVert","\\Vert"],pr=function(e,t,r,n,a,i){var o,s,h,m;o=h=m=e,s=null;var c="Size1-Regular";"\\uparrow"===e?h=m="\u23d0":"\\Uparrow"===e?h=m="\u2016":"\\downarrow"===e?o=h="\u23d0":"\\Downarrow"===e?o=h="\u2016":"\\updownarrow"===e?(o="\\uparrow",h="\u23d0",m="\\downarrow"):"\\Updownarrow"===e?(o="\\Uparrow",h="\u2016",m="\\Downarrow"):l.contains(cr,e)?h="\u2223":l.contains(ur,e)?h="\u2225":"["===e||"\\lbrack"===e?(o="\u23a1",h="\u23a2",m="\u23a3",c="Size4-Regular"):"]"===e||"\\rbrack"===e?(o="\u23a4",h="\u23a5",m="\u23a6",c="Size4-Regular"):"\\lfloor"===e||"\u230a"===e?(h=o="\u23a2",m="\u23a3",c="Size4-Regular"):"\\lceil"===e||"\u2308"===e?(o="\u23a1",h=m="\u23a2",c="Size4-Regular"):"\\rfloor"===e||"\u230b"===e?(h=o="\u23a5",m="\u23a6",c="Size4-Regular"):"\\rceil"===e||"\u2309"===e?(o="\u23a4",h=m="\u23a5",c="Size4-Regular"):"("===e||"\\lparen"===e?(o="\u239b",h="\u239c",m="\u239d",c="Size4-Regular"):")"===e||"\\rparen"===e?(o="\u239e",h="\u239f",m="\u23a0",c="Size4-Regular"):"\\{"===e||"\\lbrace"===e?(o="\u23a7",s="\u23a8",m="\u23a9",h="\u23aa",c="Size4-Regular"):"\\}"===e||"\\rbrace"===e?(o="\u23ab",s="\u23ac",m="\u23ad",h="\u23aa",c="Size4-Regular"):"\\lgroup"===e||"\u27ee"===e?(o="\u23a7",m="\u23a9",h="\u23aa",c="Size4-Regular"):"\\rgroup"===e||"\u27ef"===e?(o="\u23ab",m="\u23ad",h="\u23aa",c="Size4-Regular"):"\\lmoustache"===e||"\u23b0"===e?(o="\u23a7",m="\u23ad",h="\u23aa",c="Size4-Regular"):"\\rmoustache"!==e&&"\u23b1"!==e||(o="\u23ab",m="\u23a9",h="\u23aa",c="Size4-Regular");var u=ar(o,c,a),p=u.height+u.depth,d=ar(h,c,a),f=d.height+d.depth,g=ar(m,c,a),v=g.height+g.depth,b=0,y=1;if(null!==s){var w=ar(s,c,a);b=w.height+w.depth,y=2}var k=p+v+b,S=k+Math.max(0,Math.ceil((t-k)/(y*f)))*y*f,M=n.fontMetrics().axisHeight;r&&(M*=n.sizeMultiplier);var z=S/2-M,A=[];if(A.push(lr(m,c,a)),A.push(mr),null===s){var T=S-p-v+.016;A.push(hr(h,T,n))}else{var B=(S-p-v-b)/2+.016;A.push(hr(h,B,n)),A.push(mr),A.push(lr(s,c,a)),A.push(mr),A.push(hr(h,B,n))}A.push(mr),A.push(lr(o,c,a));var C=n.havingBaseStyle(x.TEXT),q=Ke.makeVList({positionType:"bottom",positionData:z,children:A},C);return ir(Ke.makeSpan(["delimsizing","mult"],[q],C),x.TEXT,n,i)},dr=.08,fr=function(e,t,r,n,a){var i=function(e,t,r){t*=1e3;var n="";switch(e){case"sqrtMain":n=function(e,t){return"M95,"+(622+e+t)+"\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl"+e/2.075+" -"+e+"\nc5.3,-9.3,12,-14,20,-14\nH400000v"+(40+e)+"H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM"+(834+e)+" "+t+"h400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize1":n=function(e,t){return"M263,"+(601+e+t)+"c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl"+e/2.084+" -"+e+"\nc4.7,-7.3,11,-11,19,-11\nH40000v"+(40+e)+"H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM"+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize2":n=function(e,t){return"M983 "+(10+e+t)+"\nl"+e/3.13+" -"+e+"\nc4,-6.7,10,-10,18,-10 H400000v"+(40+e)+"\nH1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7\ns-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744\nc-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30\nc26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722\nc56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5\nc53.7,-170.3,84.5,-266.8,92.5,-289.5z\nM"+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize3":n=function(e,t){return"M424,"+(2398+e+t)+"\nc-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514\nc0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20\ns-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121\ns209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081\nl"+e/4.223+" -"+e+"c4,-6.7,10,-10,18,-10 H400000\nv"+(40+e)+"H1014.6\ns-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185\nc-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2z M"+(1001+e)+" "+t+"\nh400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize4":n=function(e,t){return"M473,"+(2713+e+t)+"\nc339.3,-1799.3,509.3,-2700,510,-2702 l"+e/5.298+" -"+e+"\nc3.3,-7.3,9.3,-11,18,-11 H400000v"+(40+e)+"H1017.7\ns-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200\nc0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26\ns76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,\n606zM"+(1001+e)+" "+t+"h400000v"+(40+e)+"H1017.7z"}(t,M);break;case"sqrtTall":n=function(e,t,r){return"M702 "+(e+t)+"H400000"+(40+e)+"\nH742v"+(r-54-t-e)+"l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1\nh-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170\nc-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667\n219 661 l218 661zM702 "+t+"H400000v"+(40+e)+"H742z"}(t,M,r)}return n}(e,n,r),o=new J(e,i),s=new K([o],{width:"400em",height:V(t),viewBox:"0 0 400000 "+r,preserveAspectRatio:"xMinYMin slice"});return Ke.makeSvgSpan(["hide-tail"],[s],a)},gr=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230a","\u230b","\\lceil","\\rceil","\u2308","\u2309","\\surd"],vr=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27ee","\u27ef","\\lmoustache","\\rmoustache","\u23b0","\u23b1"],br=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],yr=[0,1.2,1.8,2.4,3],xr=[{type:"small",style:x.SCRIPTSCRIPT},{type:"small",style:x.SCRIPT},{type:"small",style:x.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],wr=[{type:"small",style:x.SCRIPTSCRIPT},{type:"small",style:x.SCRIPT},{type:"small",style:x.TEXT},{type:"stack"}],kr=[{type:"small",style:x.SCRIPTSCRIPT},{type:"small",style:x.SCRIPT},{type:"small",style:x.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],Sr=function(e){if("small"===e.type)return"Main-Regular";if("large"===e.type)return"Size"+e.size+"-Regular";if("stack"===e.type)return"Size4-Regular";throw new Error("Add support for delim type '"+e.type+"' here.")},Mr=function(e,t,r,n){for(var a=Math.min(2,3-n.style.size);at)return r[a]}return r[r.length-1]},zr=function(e,t,r,n,a,i){var o;"<"===e||"\\lt"===e||"\u27e8"===e?e="\\langle":">"!==e&&"\\gt"!==e&&"\u27e9"!==e||(e="\\rangle"),o=l.contains(br,e)?xr:l.contains(gr,e)?kr:wr;var s=Mr(e,t,o,n);return"small"===s.type?function(e,t,r,n,a,i){var o=Ke.makeSymbol(e,"Main-Regular",a,n),s=ir(o,t,n,i);return r&&or(s,n,t),s}(e,s.style,r,n,a,i):"large"===s.type?sr(e,s.size,r,n,a,i):pr(e,t,r,n,a,i)},Ar={sqrtImage:function(e,t){var r,n,a=t.havingBaseSizing(),i=Mr("\\surd",e*a.sizeMultiplier,kr,a),o=a.sizeMultiplier,s=Math.max(0,t.minRuleThickness-t.fontMetrics().sqrtRuleThickness),l=0,h=0,m=0;return"small"===i.type?(e<1?o=1:e<1.4&&(o=.7),h=(1+s)/o,(r=fr("sqrtMain",l=(1+s+dr)/o,m=1e3+1e3*s+80,s,t)).style.minWidth="0.853em",n=.833/o):"large"===i.type?(m=1080*yr[i.size],h=(yr[i.size]+s)/o,l=(yr[i.size]+s+dr)/o,(r=fr("sqrtSize"+i.size,l,m,s,t)).style.minWidth="1.02em",n=1/o):(l=e+s+dr,h=e+s,m=Math.floor(1e3*e+s)+80,(r=fr("sqrtTall",l,m,s,t)).style.minWidth="0.742em",n=1.056),r.height=h,r.style.height=V(l),{span:r,advanceWidth:n,ruleWidth:(t.fontMetrics().sqrtRuleThickness+s)*o}},sizedDelim:function(e,t,r,a,i){if("<"===e||"\\lt"===e||"\u27e8"===e?e="\\langle":">"!==e&&"\\gt"!==e&&"\u27e9"!==e||(e="\\rangle"),l.contains(gr,e)||l.contains(br,e))return sr(e,t,!1,r,a,i);if(l.contains(vr,e))return pr(e,yr[t],!1,r,a,i);throw new n("Illegal delimiter: '"+e+"'")},sizeToMaxHeight:yr,customSizedDelim:zr,leftRightDelim:function(e,t,r,n,a,i){var o=n.fontMetrics().axisHeight*n.sizeMultiplier,s=5/n.fontMetrics().ptPerEm,l=Math.max(t-o,r+o),h=Math.max(l/500*901,2*l-s);return zr(e,h,!0,n,a,i)}},Tr={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},Br=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230a","\u230b","\\lceil","\\rceil","\u2308","\u2309","<",">","\\langle","\u27e8","\\rangle","\u27e9","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27ee","\u27ef","\\lmoustache","\\rmoustache","\u23b0","\u23b1","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function Cr(e,t){var r=Xt(e);if(r&&l.contains(Br,r.text))return r;throw new n(r?"Invalid delimiter '"+r.text+"' after '"+t.funcName+"'":"Invalid delimiter type '"+e.type+"'",e)}function qr(e){if(!e.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}ot({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:function(e,t){var r=Cr(t[0],e);return{type:"delimsizing",mode:e.parser.mode,size:Tr[e.funcName].size,mclass:Tr[e.funcName].mclass,delim:r.text}},htmlBuilder:function(e,t){return"."===e.delim?Ke.makeSpan([e.mclass]):Ar.sizedDelim(e.delim,e.size,t,e.mode,[e.mclass])},mathmlBuilder:function(e){var t=[];"."!==e.delim&&t.push(Bt(e.delim,e.mode));var r=new Tt.MathNode("mo",t);"mopen"===e.mclass||"mclose"===e.mclass?r.setAttribute("fence","true"):r.setAttribute("fence","false"),r.setAttribute("stretchy","true");var n=V(Ar.sizeToMaxHeight[e.size]);return r.setAttribute("minsize",n),r.setAttribute("maxsize",n),r}}),ot({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:function(e,t){var r=e.parser.gullet.macros.get("\\current@color");if(r&&"string"!=typeof r)throw new n("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:e.parser.mode,delim:Cr(t[0],e).text,color:r}}}),ot({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:function(e,t){var r=Cr(t[0],e),n=e.parser;++n.leftrightDepth;var a=n.parseExpression(!1);--n.leftrightDepth,n.expect("\\right",!1);var i=Ut(n.parseFunction(),"leftright-right");return{type:"leftright",mode:n.mode,body:a,left:r.text,right:i.delim,rightColor:i.color}},htmlBuilder:function(e,t){qr(e);for(var r,n,a=ft(e.body,t,!0,["mopen","mclose"]),i=0,o=0,s=!1,l=0;l-1?"mpadded":"menclose",[Rt(e.body,t)]);switch(e.label){case"\\cancel":n.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":n.setAttribute("notation","downdiagonalstrike");break;case"\\phase":n.setAttribute("notation","phasorangle");break;case"\\sout":n.setAttribute("notation","horizontalstrike");break;case"\\fbox":n.setAttribute("notation","box");break;case"\\angl":n.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(r=t.fontMetrics().fboxsep*t.fontMetrics().ptPerEm,n.setAttribute("width","+"+2*r+"pt"),n.setAttribute("height","+"+2*r+"pt"),n.setAttribute("lspace",r+"pt"),n.setAttribute("voffset",r+"pt"),"\\fcolorbox"===e.label){var a=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness);n.setAttribute("style","border: "+a+"em solid "+String(e.borderColor))}break;case"\\xcancel":n.setAttribute("notation","updiagonalstrike downdiagonalstrike")}return e.backgroundColor&&n.setAttribute("mathbackground",e.backgroundColor),n};ot({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler:function(e,t,r){var n=e.parser,a=e.funcName,i=Ut(t[0],"color-token").color,o=t[1];return{type:"enclose",mode:n.mode,label:a,backgroundColor:i,body:o}},htmlBuilder:Nr,mathmlBuilder:Ir}),ot({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler:function(e,t,r){var n=e.parser,a=e.funcName,i=Ut(t[0],"color-token").color,o=Ut(t[1],"color-token").color,s=t[2];return{type:"enclose",mode:n.mode,label:a,backgroundColor:o,borderColor:i,body:s}},htmlBuilder:Nr,mathmlBuilder:Ir}),ot({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler:function(e,t){return{type:"enclose",mode:e.parser.mode,label:"\\fbox",body:t[0]}}}),ot({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler:function(e,t){var r=e.parser,n=e.funcName,a=t[0];return{type:"enclose",mode:r.mode,label:n,body:a}},htmlBuilder:Nr,mathmlBuilder:Ir}),ot({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler:function(e,t){return{type:"enclose",mode:e.parser.mode,label:"\\angl",body:t[0]}}});var Rr={};function Or(e){for(var t=e.type,r=e.names,n=e.props,a=e.handler,i=e.htmlBuilder,o=e.mathmlBuilder,s={type:t,numArgs:n.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:a},l=0;l1||!c)&&g.pop(),b.length0&&(y+=.25),m.push({pos:y,isDashed:e[t]})}for(w(o[0]),r=0;r0&&(M<(B+=b)&&(M=B),B=0),e.addJot&&(M+=f),z.height=S,z.depth=M,y+=S,z.pos=y,y+=M+B,h[r]=z,w(o[r+1])}var C,q,N=y/2+t.fontMetrics().axisHeight,I=e.cols||[],R=[],O=[];if(e.tags&&e.tags.some((function(e){return e})))for(r=0;r=s)){var W=void 0;(a>0||e.hskipBeforeAndAfter)&&0!==(W=l.deflt(P.pregap,p))&&((C=Ke.makeSpan(["arraycolsep"],[])).style.width=V(W),R.push(C));var _=[];for(r=0;r0){for(var K=Ke.makeLineSpan("hline",t,c),J=Ke.makeLineSpan("hdashline",t,c),Q=[{type:"elem",elem:h,shift:0}];m.length>0;){var ee=m.pop(),te=ee.pos-N;ee.isDashed?Q.push({type:"elem",elem:J,shift:te}):Q.push({type:"elem",elem:K,shift:te})}h=Ke.makeVList({positionType:"individualShift",children:Q},t)}if(0===O.length)return Ke.makeSpan(["mord"],[h],t);var re=Ke.makeVList({positionType:"individualShift",children:O},t);return re=Ke.makeSpan(["tag"],[re],t),Ke.makeFragment([h,re])},Xr={c:"center ",l:"left ",r:"right "},Wr=function(e,t){for(var r=[],n=new Tt.MathNode("mtd",[],["mtr-glue"]),a=new Tt.MathNode("mtd",[],["mml-eqn-num"]),i=0;i0){var p=e.cols,d="",f=!1,g=0,v=p.length;"separator"===p[0].type&&(c+="top ",g=1),"separator"===p[p.length-1].type&&(c+="bottom ",v-=1);for(var b=g;b0?"left ":"",c+=S[S.length-1].length>0?"right ":"";for(var M=1;M-1?"alignat":"align",o="split"===e.envName,s=Gr(e.parser,{cols:a,addJot:!0,autoTag:o?void 0:Vr(e.envName),emptySingleRow:!0,colSeparationType:i,maxNumCols:o?2:void 0,leqno:e.parser.settings.leqno},"display"),l=0,h={type:"ordgroup",mode:e.mode,body:[]};if(t[0]&&"ordgroup"===t[0].type){for(var m="",c=0;c0&&u&&(f=1),a[p]={type:"align",align:d,pregap:f,postgap:0}}return s.colSeparationType=u?"align":"alignat",s};Or({type:"array",names:["array","darray"],props:{numArgs:1},handler:function(e,t){var r=(Xt(t[0])?[t[0]]:Ut(t[0],"ordgroup").body).map((function(e){var t=Yt(e).text;if(-1!=="lcr".indexOf(t))return{type:"align",align:t};if("|"===t)return{type:"separator",separator:"|"};if(":"===t)return{type:"separator",separator:":"};throw new n("Unknown column alignment: "+t,e)})),a={cols:r,hskipBeforeAndAfter:!0,maxNumCols:r.length};return Gr(e.parser,a,Ur(e.envName))},htmlBuilder:Yr,mathmlBuilder:Wr}),Or({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler:function(e){var t={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[e.envName.replace("*","")],r="c",a={hskipBeforeAndAfter:!1,cols:[{type:"align",align:r}]};if("*"===e.envName.charAt(e.envName.length-1)){var i=e.parser;if(i.consumeSpaces(),"["===i.fetch().text){if(i.consume(),i.consumeSpaces(),r=i.fetch().text,-1==="lcr".indexOf(r))throw new n("Expected l or c or r",i.nextToken);i.consume(),i.consumeSpaces(),i.expect("]"),i.consume(),a.cols=[{type:"align",align:r}]}}var o=Gr(e.parser,a,Ur(e.envName)),s=Math.max.apply(Math,[0].concat(o.body.map((function(e){return e.length}))));return o.cols=new Array(s).fill({type:"align",align:r}),t?{type:"leftright",mode:e.mode,body:[o],left:t[0],right:t[1],rightColor:void 0}:o},htmlBuilder:Yr,mathmlBuilder:Wr}),Or({type:"array",names:["smallmatrix"],props:{numArgs:0},handler:function(e){var t=Gr(e.parser,{arraystretch:.5},"script");return t.colSeparationType="small",t},htmlBuilder:Yr,mathmlBuilder:Wr}),Or({type:"array",names:["subarray"],props:{numArgs:1},handler:function(e,t){var r=(Xt(t[0])?[t[0]]:Ut(t[0],"ordgroup").body).map((function(e){var t=Yt(e).text;if(-1!=="lc".indexOf(t))return{type:"align",align:t};throw new n("Unknown column alignment: "+t,e)}));if(r.length>1)throw new n("{subarray} can contain only one column");var a={cols:r,hskipBeforeAndAfter:!1,arraystretch:.5};if((a=Gr(e.parser,a,"script")).body.length>0&&a.body[0].length>1)throw new n("{subarray} can contain only one column");return a},htmlBuilder:Yr,mathmlBuilder:Wr}),Or({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler:function(e){var t=Gr(e.parser,{arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},Ur(e.envName));return{type:"leftright",mode:e.mode,body:[t],left:e.envName.indexOf("r")>-1?".":"\\{",right:e.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:Yr,mathmlBuilder:Wr}),Or({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:_r,htmlBuilder:Yr,mathmlBuilder:Wr}),Or({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler:function(e){l.contains(["gather","gather*"],e.envName)&&Fr(e);var t={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:Vr(e.envName),emptySingleRow:!0,leqno:e.parser.settings.leqno};return Gr(e.parser,t,"display")},htmlBuilder:Yr,mathmlBuilder:Wr}),Or({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:_r,htmlBuilder:Yr,mathmlBuilder:Wr}),Or({type:"array",names:["equation","equation*"],props:{numArgs:0},handler:function(e){Fr(e);var t={autoTag:Vr(e.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:e.parser.settings.leqno};return Gr(e.parser,t,"display")},htmlBuilder:Yr,mathmlBuilder:Wr}),Or({type:"array",names:["CD"],props:{numArgs:0},handler:function(e){return Fr(e),function(e){var t=[];for(e.gullet.beginGroup(),e.gullet.macros.set("\\cr","\\\\\\relax"),e.gullet.beginGroup();;){t.push(e.parseExpression(!1,"\\\\")),e.gullet.endGroup(),e.gullet.beginGroup();var r=e.fetch().text;if("&"!==r&&"\\\\"!==r){if("\\end"===r){0===t[t.length-1].length&&t.pop();break}throw new n("Expected \\\\ or \\cr or \\end",e.nextToken)}e.consume()}for(var a,i,o=[],s=[o],l=0;l-1);else{if(!("<>AV".indexOf(u)>-1))throw new n('Expected one of "<>AV=|." after @',h[c]);for(var d=0;d<2;d++){for(var f=!0,g=c+1;g=x.SCRIPT.id?r.text():x.DISPLAY:"text"===e&&r.size===x.DISPLAY.size?r=x.TEXT:"script"===e?r=x.SCRIPT:"scriptscript"===e&&(r=x.SCRIPTSCRIPT),r},nn=function(e,t){var r,n=rn(e.size,t.style),a=n.fracNum(),i=n.fracDen();r=t.havingStyle(a);var o=wt(e.numer,r,t);if(e.continued){var s=8.5/t.fontMetrics().ptPerEm,l=3.5/t.fontMetrics().ptPerEm;o.height=o.height0?3*c:7*c,d=t.fontMetrics().denom1):(m>0?(u=t.fontMetrics().num2,p=c):(u=t.fontMetrics().num3,p=3*c),d=t.fontMetrics().denom2),h){var w=t.fontMetrics().axisHeight;u-o.depth-(w+.5*m)0&&(t="."===(t=e)?null:t),t};ot({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler:function(e,t){var r,n=e.parser,a=t[4],i=t[5],o=lt(t[0]),s="atom"===o.type&&"open"===o.family?sn(o.text):null,l=lt(t[1]),h="atom"===l.type&&"close"===l.family?sn(l.text):null,m=Ut(t[2],"size"),c=null;r=!!m.isBlank||(c=m.value).number>0;var u="auto",p=t[3];if("ordgroup"===p.type){if(p.body.length>0){var d=Ut(p.body[0],"textord");u=on[Number(d.text)]}}else p=Ut(p,"textord"),u=on[Number(p.text)];return{type:"genfrac",mode:n.mode,numer:a,denom:i,continued:!1,hasBarLine:r,barSize:c,leftDelim:s,rightDelim:h,size:u}},htmlBuilder:nn,mathmlBuilder:an}),ot({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler:function(e,t){var r=e.parser,n=(e.funcName,e.token);return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:Ut(t[0],"size").value,token:n}}}),ot({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:function(e,t){var r=e.parser,n=(e.funcName,t[0]),a=function(e){if(!e)throw new Error("Expected non-null, but got "+String(e));return e}(Ut(t[1],"infix").size),i=t[2],o=a.number>0;return{type:"genfrac",mode:r.mode,numer:n,denom:i,continued:!1,hasBarLine:o,barSize:a,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:nn,mathmlBuilder:an});var ln=function(e,t){var r,n,a=t.style;"supsub"===e.type?(r=e.sup?wt(e.sup,t.havingStyle(a.sup()),t):wt(e.sub,t.havingStyle(a.sub()),t),n=Ut(e.base,"horizBrace")):n=Ut(e,"horizBrace");var i,o=wt(n.base,t.havingBaseStyle(x.DISPLAY)),s=Gt(n,t);if(n.isOver?(i=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:o},{type:"kern",size:.1},{type:"elem",elem:s}]},t)).children[0].children[0].children[1].classes.push("svg-align"):(i=Ke.makeVList({positionType:"bottom",positionData:o.depth+.1+s.height,children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:o}]},t)).children[0].children[0].children[0].classes.push("svg-align"),r){var l=Ke.makeSpan(["mord",n.isOver?"mover":"munder"],[i],t);i=n.isOver?Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:l},{type:"kern",size:.2},{type:"elem",elem:r}]},t):Ke.makeVList({positionType:"bottom",positionData:l.depth+.2+r.height+r.depth,children:[{type:"elem",elem:r},{type:"kern",size:.2},{type:"elem",elem:l}]},t)}return Ke.makeSpan(["mord",n.isOver?"mover":"munder"],[i],t)};ot({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler:function(e,t){var r=e.parser,n=e.funcName;return{type:"horizBrace",mode:r.mode,label:n,isOver:/^\\over/.test(n),base:t[0]}},htmlBuilder:ln,mathmlBuilder:function(e,t){var r=Vt(e.label);return new Tt.MathNode(e.isOver?"mover":"munder",[Rt(e.base,t),r])}}),ot({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:function(e,t){var r=e.parser,n=t[1],a=Ut(t[0],"url").url;return r.settings.isTrusted({command:"\\href",url:a})?{type:"href",mode:r.mode,href:a,body:ht(n)}:r.formatUnsupportedCmd("\\href")},htmlBuilder:function(e,t){var r=ft(e.body,t,!1);return Ke.makeAnchor(e.href,[],r,t)},mathmlBuilder:function(e,t){var r=It(e.body,t);return r instanceof zt||(r=new zt("mrow",[r])),r.setAttribute("href",e.href),r}}),ot({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:function(e,t){var r=e.parser,n=Ut(t[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:n}))return r.formatUnsupportedCmd("\\url");for(var a=[],i=0;i0&&(n=F(e.totalheight,t)-r);var a=0;e.width.number>0&&(a=F(e.width,t));var i={height:V(r+n)};a>0&&(i.width=V(a)),n>0&&(i.verticalAlign=V(-n));var o=new j(e.src,e.alt,i);return o.height=r,o.depth=n,o},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mglyph",[]);r.setAttribute("alt",e.alt);var n=F(e.height,t),a=0;if(e.totalheight.number>0&&(a=F(e.totalheight,t)-n,r.setAttribute("valign",V(-a))),r.setAttribute("height",V(n+a)),e.width.number>0){var i=F(e.width,t);r.setAttribute("width",V(i))}return r.setAttribute("src",e.src),r}}),ot({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler:function(e,t){var r=e.parser,n=e.funcName,a=Ut(t[0],"size");if(r.settings.strict){var i="m"===n[1],o="mu"===a.value.unit;i?(o||r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" supports only mu units, not "+a.value.unit+" units"),"math"!==r.mode&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" works only in math mode")):o&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" doesn't support mu units")}return{type:"kern",mode:r.mode,dimension:a.value}},htmlBuilder:function(e,t){return Ke.makeGlue(e.dimension,t)},mathmlBuilder:function(e,t){var r=F(e.dimension,t);return new Tt.SpaceNode(r)}}),ot({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:function(e,t){var r=e.parser,n=e.funcName,a=t[0];return{type:"lap",mode:r.mode,alignment:n.slice(5),body:a}},htmlBuilder:function(e,t){var r;"clap"===e.alignment?(r=Ke.makeSpan([],[wt(e.body,t)]),r=Ke.makeSpan(["inner"],[r],t)):r=Ke.makeSpan(["inner"],[wt(e.body,t)]);var n=Ke.makeSpan(["fix"],[]),a=Ke.makeSpan([e.alignment],[r,n],t),i=Ke.makeSpan(["strut"]);return i.style.height=V(a.height+a.depth),a.depth&&(i.style.verticalAlign=V(-a.depth)),a.children.unshift(i),a=Ke.makeSpan(["thinbox"],[a],t),Ke.makeSpan(["mord","vbox"],[a],t)},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mpadded",[Rt(e.body,t)]);if("rlap"!==e.alignment){var n="llap"===e.alignment?"-1":"-0.5";r.setAttribute("lspace",n+"width")}return r.setAttribute("width","0px"),r}}),ot({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler:function(e,t){var r=e.funcName,n=e.parser,a=n.mode;n.switchMode("math");var i="\\("===r?"\\)":"$",o=n.parseExpression(!1,i);return n.expect(i),n.switchMode(a),{type:"styling",mode:n.mode,style:"text",body:o}}}),ot({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler:function(e,t){throw new n("Mismatched "+e.funcName)}});var mn=function(e,t){switch(t.style.size){case x.DISPLAY.size:return e.display;case x.TEXT.size:return e.text;case x.SCRIPT.size:return e.script;case x.SCRIPTSCRIPT.size:return e.scriptscript;default:return e.text}};ot({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:function(e,t){return{type:"mathchoice",mode:e.parser.mode,display:ht(t[0]),text:ht(t[1]),script:ht(t[2]),scriptscript:ht(t[3])}},htmlBuilder:function(e,t){var r=mn(e,t),n=ft(r,t,!1);return Ke.makeFragment(n)},mathmlBuilder:function(e,t){var r=mn(e,t);return It(r,t)}});var cn=function(e,t,r,n,a,i,o){e=Ke.makeSpan([],[e]);var s,h,m,c=r&&l.isCharacterBox(r);if(t){var u=wt(t,n.havingStyle(a.sup()),n);h={elem:u,kern:Math.max(n.fontMetrics().bigOpSpacing1,n.fontMetrics().bigOpSpacing3-u.depth)}}if(r){var p=wt(r,n.havingStyle(a.sub()),n);s={elem:p,kern:Math.max(n.fontMetrics().bigOpSpacing2,n.fontMetrics().bigOpSpacing4-p.height)}}if(h&&s){var d=n.fontMetrics().bigOpSpacing5+s.elem.height+s.elem.depth+s.kern+e.depth+o;m=Ke.makeVList({positionType:"bottom",positionData:d,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:s.elem,marginLeft:V(-i)},{type:"kern",size:s.kern},{type:"elem",elem:e},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:V(i)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else if(s){var f=e.height-o;m=Ke.makeVList({positionType:"top",positionData:f,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:s.elem,marginLeft:V(-i)},{type:"kern",size:s.kern},{type:"elem",elem:e}]},n)}else{if(!h)return e;var g=e.depth+o;m=Ke.makeVList({positionType:"bottom",positionData:g,children:[{type:"elem",elem:e},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:V(i)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}var v=[m];if(s&&0!==i&&!c){var b=Ke.makeSpan(["mspace"],[],n);b.style.marginRight=V(i),v.unshift(b)}return Ke.makeSpan(["mop","op-limits"],v,n)},un=["\\smallint"],pn=function(e,t){var r,n,a,i=!1;"supsub"===e.type?(r=e.sup,n=e.sub,a=Ut(e.base,"op"),i=!0):a=Ut(e,"op");var o,s=t.style,h=!1;if(s.size===x.DISPLAY.size&&a.symbol&&!l.contains(un,a.name)&&(h=!0),a.symbol){var m=h?"Size2-Regular":"Size1-Regular",c="";if("\\oiint"!==a.name&&"\\oiiint"!==a.name||(c=a.name.substr(1),a.name="oiint"===c?"\\iint":"\\iiint"),o=Ke.makeSymbol(a.name,m,"math",t,["mop","op-symbol",h?"large-op":"small-op"]),c.length>0){var u=o.italic,p=Ke.staticSvg(c+"Size"+(h?"2":"1"),t);o=Ke.makeVList({positionType:"individualShift",children:[{type:"elem",elem:o,shift:0},{type:"elem",elem:p,shift:h?.08:0}]},t),a.name="\\"+c,o.classes.unshift("mop"),o.italic=u}}else if(a.body){var d=ft(a.body,t,!0);1===d.length&&d[0]instanceof Z?(o=d[0]).classes[0]="mop":o=Ke.makeSpan(["mop"],d,t)}else{for(var f=[],g=1;g0){for(var s=a.body.map((function(e){var t=e.text;return"string"==typeof t?{type:"textord",mode:e.mode,text:t}:e})),l=ft(s,t.withFont("mathrm"),!0),h=0;h=0?s.setAttribute("height",V(a)):(s.setAttribute("height",V(a)),s.setAttribute("depth",V(-a))),s.setAttribute("voffset",V(a)),s}});var yn=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"];ot({type:"sizing",names:yn,props:{numArgs:0,allowedInText:!0},handler:function(e,t){var r=e.breakOnTokenText,n=e.funcName,a=e.parser,i=a.parseExpression(!1,r);return{type:"sizing",mode:a.mode,size:yn.indexOf(n)+1,body:i}},htmlBuilder:function(e,t){var r=t.havingSize(e.size);return bn(e.body,r,t)},mathmlBuilder:function(e,t){var r=t.havingSize(e.size),n=Nt(e.body,r),a=new Tt.MathNode("mstyle",n);return a.setAttribute("mathsize",V(r.sizeMultiplier)),a}}),ot({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:function(e,t,r){var n=e.parser,a=!1,i=!1,o=r[0]&&Ut(r[0],"ordgroup");if(o)for(var s="",l=0;lr.height+r.depth+i&&(i=(i+c-r.height-r.depth)/2);var u=l.height-r.height-i-h;r.style.paddingLeft=V(m);var p=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+u)},{type:"elem",elem:l},{type:"kern",size:h}]},t);if(e.index){var d=t.havingStyle(x.SCRIPTSCRIPT),f=wt(e.index,d,t),g=.6*(p.height-p.depth),v=Ke.makeVList({positionType:"shift",positionData:-g,children:[{type:"elem",elem:f}]},t),b=Ke.makeSpan(["root"],[v]);return Ke.makeSpan(["mord","sqrt"],[b,p],t)}return Ke.makeSpan(["mord","sqrt"],[p],t)},mathmlBuilder:function(e,t){var r=e.body,n=e.index;return n?new Tt.MathNode("mroot",[Rt(r,t),Rt(n,t)]):new Tt.MathNode("msqrt",[Rt(r,t)])}});var xn={display:x.DISPLAY,text:x.TEXT,script:x.SCRIPT,scriptscript:x.SCRIPTSCRIPT};ot({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e,t){var r=e.breakOnTokenText,n=e.funcName,a=e.parser,i=a.parseExpression(!0,r),o=n.slice(1,n.length-5);return{type:"styling",mode:a.mode,style:o,body:i}},htmlBuilder:function(e,t){var r=xn[e.style],n=t.havingStyle(r).withFont("");return bn(e.body,n,t)},mathmlBuilder:function(e,t){var r=xn[e.style],n=t.havingStyle(r),a=Nt(e.body,n),i=new Tt.MathNode("mstyle",a),o={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]}[e.style];return i.setAttribute("scriptlevel",o[0]),i.setAttribute("displaystyle",o[1]),i}});var wn=function(e,t){var r=e.base;return r?"op"===r.type?r.limits&&(t.style.size===x.DISPLAY.size||r.alwaysHandleSupSub)?pn:null:"operatorname"===r.type?r.alwaysHandleSupSub&&(t.style.size===x.DISPLAY.size||r.limits)?vn:null:"accent"===r.type?l.isCharacterBox(r.base)?Wt:null:"horizBrace"===r.type&&!e.sub===r.isOver?ln:null:null};st({type:"supsub",htmlBuilder:function(e,t){var r=wn(e,t);if(r)return r(e,t);var n,a,i,o=e.base,s=e.sup,h=e.sub,m=wt(o,t),c=t.fontMetrics(),u=0,p=0,d=o&&l.isCharacterBox(o);if(s){var f=t.havingStyle(t.style.sup());n=wt(s,f,t),d||(u=m.height-f.fontMetrics().supDrop*f.sizeMultiplier/t.sizeMultiplier)}if(h){var g=t.havingStyle(t.style.sub());a=wt(h,g,t),d||(p=m.depth+g.fontMetrics().subDrop*g.sizeMultiplier/t.sizeMultiplier)}i=t.style===x.DISPLAY?c.sup1:t.style.cramped?c.sup3:c.sup2;var v,b=t.sizeMultiplier,y=V(.5/c.ptPerEm/b),w=null;if(a){var k=e.base&&"op"===e.base.type&&e.base.name&&("\\oiint"===e.base.name||"\\oiiint"===e.base.name);(m instanceof Z||k)&&(w=V(-m.italic))}if(n&&a){u=Math.max(u,i,n.depth+.25*c.xHeight),p=Math.max(p,c.sub2);var S=4*c.defaultRuleThickness;if(u-n.depth-(a.height-p)0&&(u+=M,p-=M)}var z=[{type:"elem",elem:a,shift:p,marginRight:y,marginLeft:w},{type:"elem",elem:n,shift:-u,marginRight:y}];v=Ke.makeVList({positionType:"individualShift",children:z},t)}else if(a){p=Math.max(p,c.sub1,a.height-.8*c.xHeight);var A=[{type:"elem",elem:a,marginLeft:w,marginRight:y}];v=Ke.makeVList({positionType:"shift",positionData:p,children:A},t)}else{if(!n)throw new Error("supsub must have either sup or sub.");u=Math.max(u,i,n.depth+.25*c.xHeight),v=Ke.makeVList({positionType:"shift",positionData:-u,children:[{type:"elem",elem:n,marginRight:y}]},t)}var T=yt(m,"right")||"mord";return Ke.makeSpan([T],[m,Ke.makeSpan(["msupsub"],[v])],t)},mathmlBuilder:function(e,t){var r,n=!1;e.base&&"horizBrace"===e.base.type&&!!e.sup===e.base.isOver&&(n=!0,r=e.base.isOver),!e.base||"op"!==e.base.type&&"operatorname"!==e.base.type||(e.base.parentIsSupSub=!0);var a,i=[Rt(e.base,t)];if(e.sub&&i.push(Rt(e.sub,t)),e.sup&&i.push(Rt(e.sup,t)),n)a=r?"mover":"munder";else if(e.sub)if(e.sup){var o=e.base;a=o&&"op"===o.type&&o.limits&&t.style===x.DISPLAY||o&&"operatorname"===o.type&&o.alwaysHandleSupSub&&(t.style===x.DISPLAY||o.limits)?"munderover":"msubsup"}else{var s=e.base;a=s&&"op"===s.type&&s.limits&&(t.style===x.DISPLAY||s.alwaysHandleSupSub)||s&&"operatorname"===s.type&&s.alwaysHandleSupSub&&(s.limits||t.style===x.DISPLAY)?"munder":"msub"}else{var l=e.base;a=l&&"op"===l.type&&l.limits&&(t.style===x.DISPLAY||l.alwaysHandleSupSub)||l&&"operatorname"===l.type&&l.alwaysHandleSupSub&&(l.limits||t.style===x.DISPLAY)?"mover":"msup"}return new Tt.MathNode(a,i)}}),st({type:"atom",htmlBuilder:function(e,t){return Ke.mathsym(e.text,e.mode,t,["m"+e.family])},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mo",[Bt(e.text,e.mode)]);if("bin"===e.family){var n=qt(e,t);"bold-italic"===n&&r.setAttribute("mathvariant",n)}else"punct"===e.family?r.setAttribute("separator","true"):"open"!==e.family&&"close"!==e.family||r.setAttribute("stretchy","false");return r}});var kn={mi:"italic",mn:"normal",mtext:"normal"};st({type:"mathord",htmlBuilder:function(e,t){return Ke.makeOrd(e,t,"mathord")},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mi",[Bt(e.text,e.mode,t)]),n=qt(e,t)||"italic";return n!==kn[r.type]&&r.setAttribute("mathvariant",n),r}}),st({type:"textord",htmlBuilder:function(e,t){return Ke.makeOrd(e,t,"textord")},mathmlBuilder:function(e,t){var r,n=Bt(e.text,e.mode,t),a=qt(e,t)||"normal";return r="text"===e.mode?new Tt.MathNode("mtext",[n]):/[0-9]/.test(e.text)?new Tt.MathNode("mn",[n]):"\\prime"===e.text?new Tt.MathNode("mo",[n]):new Tt.MathNode("mi",[n]),a!==kn[r.type]&&r.setAttribute("mathvariant",a),r}});var Sn={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},Mn={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};st({type:"spacing",htmlBuilder:function(e,t){if(Mn.hasOwnProperty(e.text)){var r=Mn[e.text].className||"";if("text"===e.mode){var a=Ke.makeOrd(e,t,"textord");return a.classes.push(r),a}return Ke.makeSpan(["mspace",r],[Ke.mathsym(e.text,e.mode,t)],t)}if(Sn.hasOwnProperty(e.text))return Ke.makeSpan(["mspace",Sn[e.text]],[],t);throw new n('Unknown type of space "'+e.text+'"')},mathmlBuilder:function(e,t){if(!Mn.hasOwnProperty(e.text)){if(Sn.hasOwnProperty(e.text))return new Tt.MathNode("mspace");throw new n('Unknown type of space "'+e.text+'"')}return new Tt.MathNode("mtext",[new Tt.TextNode("\xa0")])}});var zn=function(){var e=new Tt.MathNode("mtd",[]);return e.setAttribute("width","50%"),e};st({type:"tag",mathmlBuilder:function(e,t){var r=new Tt.MathNode("mtable",[new Tt.MathNode("mtr",[zn(),new Tt.MathNode("mtd",[It(e.body,t)]),zn(),new Tt.MathNode("mtd",[It(e.tag,t)])])]);return r.setAttribute("width","100%"),r}});var An={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},Tn={"\\textbf":"textbf","\\textmd":"textmd"},Bn={"\\textit":"textit","\\textup":"textup"},Cn=function(e,t){var r=e.font;return r?An[r]?t.withTextFontFamily(An[r]):Tn[r]?t.withTextFontWeight(Tn[r]):t.withTextFontShape(Bn[r]):t};ot({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler:function(e,t){var r=e.parser,n=e.funcName,a=t[0];return{type:"text",mode:r.mode,body:ht(a),font:n}},htmlBuilder:function(e,t){var r=Cn(e,t),n=ft(e.body,r,!0);return Ke.makeSpan(["mord","text"],n,r)},mathmlBuilder:function(e,t){var r=Cn(e,t);return It(e.body,r)}}),ot({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler:function(e,t){return{type:"underline",mode:e.parser.mode,body:t[0]}},htmlBuilder:function(e,t){var r=wt(e.body,t),n=Ke.makeLineSpan("underline-line",t),a=t.fontMetrics().defaultRuleThickness,i=Ke.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:a},{type:"elem",elem:n},{type:"kern",size:3*a},{type:"elem",elem:r}]},t);return Ke.makeSpan(["mord","underline"],[i],t)},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mo",[new Tt.TextNode("\u203e")]);r.setAttribute("stretchy","true");var n=new Tt.MathNode("munder",[Rt(e.body,t),r]);return n.setAttribute("accentunder","true"),n}}),ot({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler:function(e,t){return{type:"vcenter",mode:e.parser.mode,body:t[0]}},htmlBuilder:function(e,t){var r=wt(e.body,t),n=t.fontMetrics().axisHeight,a=.5*(r.height-n-(r.depth+n));return Ke.makeVList({positionType:"shift",positionData:a,children:[{type:"elem",elem:r}]},t)},mathmlBuilder:function(e,t){return new Tt.MathNode("mpadded",[Rt(e.body,t)],["vcenter"])}}),ot({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler:function(e,t,r){throw new n("\\verb ended by end of line instead of matching delimiter")},htmlBuilder:function(e,t){for(var r=qn(e),n=[],a=t.havingStyle(t.style.text()),i=0;i0;)this.endGroup()},t.has=function(e){return this.current.hasOwnProperty(e)||this.builtins.hasOwnProperty(e)},t.get=function(e){return this.current.hasOwnProperty(e)?this.current[e]:this.builtins[e]},t.set=function(e,t,r){if(void 0===r&&(r=!1),r){for(var n=0;n0&&(this.undefStack[this.undefStack.length-1][e]=t)}else{var a=this.undefStack[this.undefStack.length-1];a&&!a.hasOwnProperty(e)&&(a[e]=this.current[e])}null==t?delete this.current[e]:this.current[e]=t},e}(),Hn=Hr;Er("\\noexpand",(function(e){var t=e.popToken();return e.isExpandable(t.text)&&(t.noexpand=!0,t.treatAsRelax=!0),{tokens:[t],numArgs:0}})),Er("\\expandafter",(function(e){var t=e.popToken();return e.expandOnce(!0),{tokens:[t],numArgs:0}})),Er("\\@firstoftwo",(function(e){return{tokens:e.consumeArgs(2)[0],numArgs:0}})),Er("\\@secondoftwo",(function(e){return{tokens:e.consumeArgs(2)[1],numArgs:0}})),Er("\\@ifnextchar",(function(e){var t=e.consumeArgs(3);e.consumeSpaces();var r=e.future();return 1===t[0].length&&t[0][0].text===r.text?{tokens:t[1],numArgs:0}:{tokens:t[2],numArgs:0}})),Er("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}"),Er("\\TextOrMath",(function(e){var t=e.consumeArgs(2);return"text"===e.mode?{tokens:t[0],numArgs:0}:{tokens:t[1],numArgs:0}}));var En={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};Er("\\char",(function(e){var t,r=e.popToken(),a="";if("'"===r.text)t=8,r=e.popToken();else if('"'===r.text)t=16,r=e.popToken();else if("`"===r.text)if("\\"===(r=e.popToken()).text[0])a=r.text.charCodeAt(1);else{if("EOF"===r.text)throw new n("\\char` missing argument");a=r.text.charCodeAt(0)}else t=10;if(t){if(null==(a=En[r.text])||a>=t)throw new n("Invalid base-"+t+" digit "+r.text);for(var i;null!=(i=En[e.future().text])&&i":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};Er("\\dots",(function(e){var t="\\dotso",r=e.expandAfterFuture().text;return r in Dn?t=Dn[r]:("\\not"===r.substr(0,4)||r in ae.math&&l.contains(["bin","rel"],ae.math[r].group))&&(t="\\dotsb"),t}));var Pn={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};Er("\\dotso",(function(e){return e.future().text in Pn?"\\ldots\\,":"\\ldots"})),Er("\\dotsc",(function(e){var t=e.future().text;return t in Pn&&","!==t?"\\ldots\\,":"\\ldots"})),Er("\\cdots",(function(e){return e.future().text in Pn?"\\@cdots\\,":"\\@cdots"})),Er("\\dotsb","\\cdots"),Er("\\dotsm","\\cdots"),Er("\\dotsi","\\!\\cdots"),Er("\\dotsx","\\ldots\\,"),Er("\\DOTSI","\\relax"),Er("\\DOTSB","\\relax"),Er("\\DOTSX","\\relax"),Er("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax"),Er("\\,","\\tmspace+{3mu}{.1667em}"),Er("\\thinspace","\\,"),Er("\\>","\\mskip{4mu}"),Er("\\:","\\tmspace+{4mu}{.2222em}"),Er("\\medspace","\\:"),Er("\\;","\\tmspace+{5mu}{.2777em}"),Er("\\thickspace","\\;"),Er("\\!","\\tmspace-{3mu}{.1667em}"),Er("\\negthinspace","\\!"),Er("\\negmedspace","\\tmspace-{4mu}{.2222em}"),Er("\\negthickspace","\\tmspace-{5mu}{.277em}"),Er("\\enspace","\\kern.5em "),Er("\\enskip","\\hskip.5em\\relax"),Er("\\quad","\\hskip1em\\relax"),Er("\\qquad","\\hskip2em\\relax"),Er("\\tag","\\@ifstar\\tag@literal\\tag@paren"),Er("\\tag@paren","\\tag@literal{({#1})}"),Er("\\tag@literal",(function(e){if(e.macros.get("\\df@tag"))throw new n("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"})),Er("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}"),Er("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)"),Er("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}"),Er("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1"),Er("\\pmb","\\html@mathml{\\@binrel{#1}{\\mathrlap{#1}\\kern0.5px#1}}{\\mathbf{#1}}"),Er("\\newline","\\\\\\relax"),Er("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");var Fn=V(T["Main-Regular"]["T".charCodeAt(0)][1]-.7*T["Main-Regular"]["A".charCodeAt(0)][1]);Er("\\LaTeX","\\textrm{\\html@mathml{L\\kern-.36em\\raisebox{"+Fn+"}{\\scriptstyle A}\\kern-.15em\\TeX}{LaTeX}}"),Er("\\KaTeX","\\textrm{\\html@mathml{K\\kern-.17em\\raisebox{"+Fn+"}{\\scriptstyle A}\\kern-.15em\\TeX}{KaTeX}}"),Er("\\hspace","\\@ifstar\\@hspacer\\@hspace"),Er("\\@hspace","\\hskip #1\\relax"),Er("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax"),Er("\\ordinarycolon",":"),Er("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}"),Er("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}'),Er("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}'),Er("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}'),Er("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}'),Er("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}'),Er("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}'),Er("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}'),Er("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}'),Er("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}'),Er("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}'),Er("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}'),Er("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}'),Er("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}'),Er("\u2237","\\dblcolon"),Er("\u2239","\\eqcolon"),Er("\u2254","\\coloneqq"),Er("\u2255","\\eqqcolon"),Er("\u2a74","\\Coloneqq"),Er("\\ratio","\\vcentcolon"),Er("\\coloncolon","\\dblcolon"),Er("\\colonequals","\\coloneqq"),Er("\\coloncolonequals","\\Coloneqq"),Er("\\equalscolon","\\eqqcolon"),Er("\\equalscoloncolon","\\Eqqcolon"),Er("\\colonminus","\\coloneq"),Er("\\coloncolonminus","\\Coloneq"),Er("\\minuscolon","\\eqcolon"),Er("\\minuscoloncolon","\\Eqcolon"),Er("\\coloncolonapprox","\\Colonapprox"),Er("\\coloncolonsim","\\Colonsim"),Er("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),Er("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}"),Er("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),Er("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}"),Er("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220c}}"),Er("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}"),Er("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}"),Er("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}"),Er("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}"),Er("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}"),Er("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}"),Er("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}"),Er("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}"),Er("\\gvertneqq","\\html@mathml{\\@gvertneqq}{\u2269}"),Er("\\lvertneqq","\\html@mathml{\\@lvertneqq}{\u2268}"),Er("\\ngeqq","\\html@mathml{\\@ngeqq}{\u2271}"),Er("\\ngeqslant","\\html@mathml{\\@ngeqslant}{\u2271}"),Er("\\nleqq","\\html@mathml{\\@nleqq}{\u2270}"),Er("\\nleqslant","\\html@mathml{\\@nleqslant}{\u2270}"),Er("\\nshortmid","\\html@mathml{\\@nshortmid}{\u2224}"),Er("\\nshortparallel","\\html@mathml{\\@nshortparallel}{\u2226}"),Er("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{\u2288}"),Er("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{\u2289}"),Er("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{\u228a}"),Er("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{\u2acb}"),Er("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{\u228b}"),Er("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{\u2acc}"),Er("\\imath","\\html@mathml{\\@imath}{\u0131}"),Er("\\jmath","\\html@mathml{\\@jmath}{\u0237}"),Er("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27e6}}"),Er("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27e7}}"),Er("\u27e6","\\llbracket"),Er("\u27e7","\\rrbracket"),Er("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}"),Er("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}"),Er("\u2983","\\lBrace"),Er("\u2984","\\rBrace"),Er("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`\u29b5}}"),Er("\u29b5","\\minuso"),Er("\\darr","\\downarrow"),Er("\\dArr","\\Downarrow"),Er("\\Darr","\\Downarrow"),Er("\\lang","\\langle"),Er("\\rang","\\rangle"),Er("\\uarr","\\uparrow"),Er("\\uArr","\\Uparrow"),Er("\\Uarr","\\Uparrow"),Er("\\N","\\mathbb{N}"),Er("\\R","\\mathbb{R}"),Er("\\Z","\\mathbb{Z}"),Er("\\alef","\\aleph"),Er("\\alefsym","\\aleph"),Er("\\Alpha","\\mathrm{A}"),Er("\\Beta","\\mathrm{B}"),Er("\\bull","\\bullet"),Er("\\Chi","\\mathrm{X}"),Er("\\clubs","\\clubsuit"),Er("\\cnums","\\mathbb{C}"),Er("\\Complex","\\mathbb{C}"),Er("\\Dagger","\\ddagger"),Er("\\diamonds","\\diamondsuit"),Er("\\empty","\\emptyset"),Er("\\Epsilon","\\mathrm{E}"),Er("\\Eta","\\mathrm{H}"),Er("\\exist","\\exists"),Er("\\harr","\\leftrightarrow"),Er("\\hArr","\\Leftrightarrow"),Er("\\Harr","\\Leftrightarrow"),Er("\\hearts","\\heartsuit"),Er("\\image","\\Im"),Er("\\infin","\\infty"),Er("\\Iota","\\mathrm{I}"),Er("\\isin","\\in"),Er("\\Kappa","\\mathrm{K}"),Er("\\larr","\\leftarrow"),Er("\\lArr","\\Leftarrow"),Er("\\Larr","\\Leftarrow"),Er("\\lrarr","\\leftrightarrow"),Er("\\lrArr","\\Leftrightarrow"),Er("\\Lrarr","\\Leftrightarrow"),Er("\\Mu","\\mathrm{M}"),Er("\\natnums","\\mathbb{N}"),Er("\\Nu","\\mathrm{N}"),Er("\\Omicron","\\mathrm{O}"),Er("\\plusmn","\\pm"),Er("\\rarr","\\rightarrow"),Er("\\rArr","\\Rightarrow"),Er("\\Rarr","\\Rightarrow"),Er("\\real","\\Re"),Er("\\reals","\\mathbb{R}"),Er("\\Reals","\\mathbb{R}"),Er("\\Rho","\\mathrm{P}"),Er("\\sdot","\\cdot"),Er("\\sect","\\S"),Er("\\spades","\\spadesuit"),Er("\\sub","\\subset"),Er("\\sube","\\subseteq"),Er("\\supe","\\supseteq"),Er("\\Tau","\\mathrm{T}"),Er("\\thetasym","\\vartheta"),Er("\\weierp","\\wp"),Er("\\Zeta","\\mathrm{Z}"),Er("\\argmin","\\DOTSB\\operatorname*{arg\\,min}"),Er("\\argmax","\\DOTSB\\operatorname*{arg\\,max}"),Er("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits"),Er("\\bra","\\mathinner{\\langle{#1}|}"),Er("\\ket","\\mathinner{|{#1}\\rangle}"),Er("\\braket","\\mathinner{\\langle{#1}\\rangle}"),Er("\\Bra","\\left\\langle#1\\right|"),Er("\\Ket","\\left|#1\\right\\rangle");var Vn=function(e){return function(t){var r=t.consumeArg().tokens,n=t.consumeArg().tokens,a=t.consumeArg().tokens,i=t.consumeArg().tokens,o=t.macros.get("|"),s=t.macros.get("\\|");t.macros.beginGroup();var l=function(t){return function(r){e&&(r.macros.set("|",o),a.length&&r.macros.set("\\|",s));var i=t;!t&&a.length&&("|"===r.future().text&&(r.popToken(),i=!0));return{tokens:i?a:n,numArgs:0}}};t.macros.set("|",l(!1)),a.length&&t.macros.set("\\|",l(!0));var h=t.consumeArg().tokens,m=t.expandTokens([].concat(i,h,r));return t.macros.endGroup(),{tokens:m.reverse(),numArgs:0}}};Er("\\bra@ket",Vn(!1)),Er("\\bra@set",Vn(!0)),Er("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}"),Er("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}"),Er("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}"),Er("\\angln","{\\angl n}"),Er("\\blue","\\textcolor{##6495ed}{#1}"),Er("\\orange","\\textcolor{##ffa500}{#1}"),Er("\\pink","\\textcolor{##ff00af}{#1}"),Er("\\red","\\textcolor{##df0030}{#1}"),Er("\\green","\\textcolor{##28ae7b}{#1}"),Er("\\gray","\\textcolor{gray}{#1}"),Er("\\purple","\\textcolor{##9d38bd}{#1}"),Er("\\blueA","\\textcolor{##ccfaff}{#1}"),Er("\\blueB","\\textcolor{##80f6ff}{#1}"),Er("\\blueC","\\textcolor{##63d9ea}{#1}"),Er("\\blueD","\\textcolor{##11accd}{#1}"),Er("\\blueE","\\textcolor{##0c7f99}{#1}"),Er("\\tealA","\\textcolor{##94fff5}{#1}"),Er("\\tealB","\\textcolor{##26edd5}{#1}"),Er("\\tealC","\\textcolor{##01d1c1}{#1}"),Er("\\tealD","\\textcolor{##01a995}{#1}"),Er("\\tealE","\\textcolor{##208170}{#1}"),Er("\\greenA","\\textcolor{##b6ffb0}{#1}"),Er("\\greenB","\\textcolor{##8af281}{#1}"),Er("\\greenC","\\textcolor{##74cf70}{#1}"),Er("\\greenD","\\textcolor{##1fab54}{#1}"),Er("\\greenE","\\textcolor{##0d923f}{#1}"),Er("\\goldA","\\textcolor{##ffd0a9}{#1}"),Er("\\goldB","\\textcolor{##ffbb71}{#1}"),Er("\\goldC","\\textcolor{##ff9c39}{#1}"),Er("\\goldD","\\textcolor{##e07d10}{#1}"),Er("\\goldE","\\textcolor{##a75a05}{#1}"),Er("\\redA","\\textcolor{##fca9a9}{#1}"),Er("\\redB","\\textcolor{##ff8482}{#1}"),Er("\\redC","\\textcolor{##f9685d}{#1}"),Er("\\redD","\\textcolor{##e84d39}{#1}"),Er("\\redE","\\textcolor{##bc2612}{#1}"),Er("\\maroonA","\\textcolor{##ffbde0}{#1}"),Er("\\maroonB","\\textcolor{##ff92c6}{#1}"),Er("\\maroonC","\\textcolor{##ed5fa6}{#1}"),Er("\\maroonD","\\textcolor{##ca337c}{#1}"),Er("\\maroonE","\\textcolor{##9e034e}{#1}"),Er("\\purpleA","\\textcolor{##ddd7ff}{#1}"),Er("\\purpleB","\\textcolor{##c6b9fc}{#1}"),Er("\\purpleC","\\textcolor{##aa87ff}{#1}"),Er("\\purpleD","\\textcolor{##7854ab}{#1}"),Er("\\purpleE","\\textcolor{##543b78}{#1}"),Er("\\mintA","\\textcolor{##f5f9e8}{#1}"),Er("\\mintB","\\textcolor{##edf2df}{#1}"),Er("\\mintC","\\textcolor{##e0e5cc}{#1}"),Er("\\grayA","\\textcolor{##f6f7f7}{#1}"),Er("\\grayB","\\textcolor{##f0f1f2}{#1}"),Er("\\grayC","\\textcolor{##e3e5e6}{#1}"),Er("\\grayD","\\textcolor{##d6d8da}{#1}"),Er("\\grayE","\\textcolor{##babec2}{#1}"),Er("\\grayF","\\textcolor{##888d93}{#1}"),Er("\\grayG","\\textcolor{##626569}{#1}"),Er("\\grayH","\\textcolor{##3b3e40}{#1}"),Er("\\grayI","\\textcolor{##21242c}{#1}"),Er("\\kaBlue","\\textcolor{##314453}{#1}"),Er("\\kaGreen","\\textcolor{##71B307}{#1}");var Gn={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0},Un=function(){function e(e,t,r){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=t,this.expansionCount=0,this.feed(e),this.macros=new On(Hn,t.macros),this.mode=r,this.stack=[]}var t=e.prototype;return t.feed=function(e){this.lexer=new Rn(e,this.settings)},t.switchMode=function(e){this.mode=e},t.beginGroup=function(){this.macros.beginGroup()},t.endGroup=function(){this.macros.endGroup()},t.endGroups=function(){this.macros.endGroups()},t.future=function(){return 0===this.stack.length&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]},t.popToken=function(){return this.future(),this.stack.pop()},t.pushToken=function(e){this.stack.push(e)},t.pushTokens=function(e){var t;(t=this.stack).push.apply(t,e)},t.scanArgument=function(e){var t,r,n;if(e){if(this.consumeSpaces(),"["!==this.future().text)return null;t=this.popToken();var a=this.consumeArg(["]"]);n=a.tokens,r=a.end}else{var i=this.consumeArg();n=i.tokens,t=i.start,r=i.end}return this.pushToken(new Dr("EOF",r.loc)),this.pushTokens(n),t.range(r,"")},t.consumeSpaces=function(){for(;;){if(" "!==this.future().text)break;this.stack.pop()}},t.consumeArg=function(e){var t=[],r=e&&e.length>0;r||this.consumeSpaces();var a,i=this.future(),o=0,s=0;do{if(a=this.popToken(),t.push(a),"{"===a.text)++o;else if("}"===a.text){if(-1===--o)throw new n("Extra }",a)}else if("EOF"===a.text)throw new n("Unexpected end of input in a macro argument, expected '"+(e&&r?e[s]:"}")+"'",a);if(e&&r)if((0===o||1===o&&"{"===e[s])&&a.text===e[s]){if(++s===e.length){t.splice(-s,s);break}}else s=0}while(0!==o||r);return"{"===i.text&&"}"===t[t.length-1].text&&(t.pop(),t.shift()),t.reverse(),{tokens:t,start:i,end:a}},t.consumeArgs=function(e,t){if(t){if(t.length!==e+1)throw new n("The length of delimiters doesn't match the number of args!");for(var r=t[0],a=0;athis.settings.maxExpand)throw new n("Too many expansions: infinite loop or need to increase maxExpand setting");var i=a.tokens,o=this.consumeArgs(a.numArgs,a.delimiters);if(a.numArgs)for(var s=(i=i.slice()).length-1;s>=0;--s){var l=i[s];if("#"===l.text){if(0===s)throw new n("Incomplete placeholder at end of macro body",l);if("#"===(l=i[--s]).text)i.splice(s+1,1);else{if(!/^[1-9]$/.test(l.text))throw new n("Not a valid argument number",l);var h;(h=i).splice.apply(h,[s,2].concat(o[+l.text-1]))}}}return this.pushTokens(i),i},t.expandAfterFuture=function(){return this.expandOnce(),this.future()},t.expandNextToken=function(){for(;;){var e=this.expandOnce();if(e instanceof Dr)return e.treatAsRelax&&(e.text="\\relax"),this.stack.pop()}throw new Error},t.expandMacro=function(e){return this.macros.has(e)?this.expandTokens([new Dr(e)]):void 0},t.expandTokens=function(e){var t=[],r=this.stack.length;for(this.pushTokens(e);this.stack.length>r;){var n=this.expandOnce(!0);n instanceof Dr&&(n.treatAsRelax&&(n.noexpand=!1,n.treatAsRelax=!1),t.push(this.stack.pop()))}return t},t.expandMacroAsText=function(e){var t=this.expandMacro(e);return t?t.map((function(e){return e.text})).join(""):t},t._getExpansion=function(e){var t=this.macros.get(e);if(null==t)return t;if(1===e.length){var r=this.lexer.catcodes[e];if(null!=r&&13!==r)return}var n="function"==typeof t?t(this):t;if("string"==typeof n){var a=0;if(-1!==n.indexOf("#"))for(var i=n.replace(/##/g,"");-1!==i.indexOf("#"+(a+1));)++a;for(var o=new Rn(n,this.settings),s=[],l=o.lex();"EOF"!==l.text;)s.push(l),l=o.lex();return s.reverse(),{tokens:s,numArgs:a}}return n},t.isDefined=function(e){return this.macros.has(e)||Nn.hasOwnProperty(e)||ae.math.hasOwnProperty(e)||ae.text.hasOwnProperty(e)||Gn.hasOwnProperty(e)},t.isExpandable=function(e){var t=this.macros.get(e);return null!=t?"string"==typeof t||"function"==typeof t||!t.unexpandable:Nn.hasOwnProperty(e)&&!Nn[e].primitive},e}(),Yn=/^[\u208a\u208b\u208c\u208d\u208e\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089\u2090\u2091\u2095\u1d62\u2c7c\u2096\u2097\u2098\u2099\u2092\u209a\u1d63\u209b\u209c\u1d64\u1d65\u2093\u1d66\u1d67\u1d68\u1d69\u1d6a]/,Xn=Object.freeze({"\u208a":"+","\u208b":"-","\u208c":"=","\u208d":"(","\u208e":")","\u2080":"0","\u2081":"1","\u2082":"2","\u2083":"3","\u2084":"4","\u2085":"5","\u2086":"6","\u2087":"7","\u2088":"8","\u2089":"9","\u2090":"a","\u2091":"e","\u2095":"h","\u1d62":"i","\u2c7c":"j","\u2096":"k","\u2097":"l","\u2098":"m","\u2099":"n","\u2092":"o","\u209a":"p","\u1d63":"r","\u209b":"s","\u209c":"t","\u1d64":"u","\u1d65":"v","\u2093":"x","\u1d66":"\u03b2","\u1d67":"\u03b3","\u1d68":"\u03c1","\u1d69":"\u03d5","\u1d6a":"\u03c7","\u207a":"+","\u207b":"-","\u207c":"=","\u207d":"(","\u207e":")","\u2070":"0","\xb9":"1","\xb2":"2","\xb3":"3","\u2074":"4","\u2075":"5","\u2076":"6","\u2077":"7","\u2078":"8","\u2079":"9","\u1d2c":"A","\u1d2e":"B","\u1d30":"D","\u1d31":"E","\u1d33":"G","\u1d34":"H","\u1d35":"I","\u1d36":"J","\u1d37":"K","\u1d38":"L","\u1d39":"M","\u1d3a":"N","\u1d3c":"O","\u1d3e":"P","\u1d3f":"R","\u1d40":"T","\u1d41":"U","\u2c7d":"V","\u1d42":"W","\u1d43":"a","\u1d47":"b","\u1d9c":"c","\u1d48":"d","\u1d49":"e","\u1da0":"f","\u1d4d":"g","\u02b0":"h","\u2071":"i","\u02b2":"j","\u1d4f":"k","\u02e1":"l","\u1d50":"m","\u207f":"n","\u1d52":"o","\u1d56":"p","\u02b3":"r","\u02e2":"s","\u1d57":"t","\u1d58":"u","\u1d5b":"v","\u02b7":"w","\u02e3":"x","\u02b8":"y","\u1dbb":"z","\u1d5d":"\u03b2","\u1d5e":"\u03b3","\u1d5f":"\u03b4","\u1d60":"\u03d5","\u1d61":"\u03c7","\u1dbf":"\u03b8"}),Wn={"\u0301":{text:"\\'",math:"\\acute"},"\u0300":{text:"\\`",math:"\\grave"},"\u0308":{text:'\\"',math:"\\ddot"},"\u0303":{text:"\\~",math:"\\tilde"},"\u0304":{text:"\\=",math:"\\bar"},"\u0306":{text:"\\u",math:"\\breve"},"\u030c":{text:"\\v",math:"\\check"},"\u0302":{text:"\\^",math:"\\hat"},"\u0307":{text:"\\.",math:"\\dot"},"\u030a":{text:"\\r",math:"\\mathring"},"\u030b":{text:"\\H"},"\u0327":{text:"\\c"}},_n={"\xe1":"a\u0301","\xe0":"a\u0300","\xe4":"a\u0308","\u01df":"a\u0308\u0304","\xe3":"a\u0303","\u0101":"a\u0304","\u0103":"a\u0306","\u1eaf":"a\u0306\u0301","\u1eb1":"a\u0306\u0300","\u1eb5":"a\u0306\u0303","\u01ce":"a\u030c","\xe2":"a\u0302","\u1ea5":"a\u0302\u0301","\u1ea7":"a\u0302\u0300","\u1eab":"a\u0302\u0303","\u0227":"a\u0307","\u01e1":"a\u0307\u0304","\xe5":"a\u030a","\u01fb":"a\u030a\u0301","\u1e03":"b\u0307","\u0107":"c\u0301","\u1e09":"c\u0327\u0301","\u010d":"c\u030c","\u0109":"c\u0302","\u010b":"c\u0307","\xe7":"c\u0327","\u010f":"d\u030c","\u1e0b":"d\u0307","\u1e11":"d\u0327","\xe9":"e\u0301","\xe8":"e\u0300","\xeb":"e\u0308","\u1ebd":"e\u0303","\u0113":"e\u0304","\u1e17":"e\u0304\u0301","\u1e15":"e\u0304\u0300","\u0115":"e\u0306","\u1e1d":"e\u0327\u0306","\u011b":"e\u030c","\xea":"e\u0302","\u1ebf":"e\u0302\u0301","\u1ec1":"e\u0302\u0300","\u1ec5":"e\u0302\u0303","\u0117":"e\u0307","\u0229":"e\u0327","\u1e1f":"f\u0307","\u01f5":"g\u0301","\u1e21":"g\u0304","\u011f":"g\u0306","\u01e7":"g\u030c","\u011d":"g\u0302","\u0121":"g\u0307","\u0123":"g\u0327","\u1e27":"h\u0308","\u021f":"h\u030c","\u0125":"h\u0302","\u1e23":"h\u0307","\u1e29":"h\u0327","\xed":"i\u0301","\xec":"i\u0300","\xef":"i\u0308","\u1e2f":"i\u0308\u0301","\u0129":"i\u0303","\u012b":"i\u0304","\u012d":"i\u0306","\u01d0":"i\u030c","\xee":"i\u0302","\u01f0":"j\u030c","\u0135":"j\u0302","\u1e31":"k\u0301","\u01e9":"k\u030c","\u0137":"k\u0327","\u013a":"l\u0301","\u013e":"l\u030c","\u013c":"l\u0327","\u1e3f":"m\u0301","\u1e41":"m\u0307","\u0144":"n\u0301","\u01f9":"n\u0300","\xf1":"n\u0303","\u0148":"n\u030c","\u1e45":"n\u0307","\u0146":"n\u0327","\xf3":"o\u0301","\xf2":"o\u0300","\xf6":"o\u0308","\u022b":"o\u0308\u0304","\xf5":"o\u0303","\u1e4d":"o\u0303\u0301","\u1e4f":"o\u0303\u0308","\u022d":"o\u0303\u0304","\u014d":"o\u0304","\u1e53":"o\u0304\u0301","\u1e51":"o\u0304\u0300","\u014f":"o\u0306","\u01d2":"o\u030c","\xf4":"o\u0302","\u1ed1":"o\u0302\u0301","\u1ed3":"o\u0302\u0300","\u1ed7":"o\u0302\u0303","\u022f":"o\u0307","\u0231":"o\u0307\u0304","\u0151":"o\u030b","\u1e55":"p\u0301","\u1e57":"p\u0307","\u0155":"r\u0301","\u0159":"r\u030c","\u1e59":"r\u0307","\u0157":"r\u0327","\u015b":"s\u0301","\u1e65":"s\u0301\u0307","\u0161":"s\u030c","\u1e67":"s\u030c\u0307","\u015d":"s\u0302","\u1e61":"s\u0307","\u015f":"s\u0327","\u1e97":"t\u0308","\u0165":"t\u030c","\u1e6b":"t\u0307","\u0163":"t\u0327","\xfa":"u\u0301","\xf9":"u\u0300","\xfc":"u\u0308","\u01d8":"u\u0308\u0301","\u01dc":"u\u0308\u0300","\u01d6":"u\u0308\u0304","\u01da":"u\u0308\u030c","\u0169":"u\u0303","\u1e79":"u\u0303\u0301","\u016b":"u\u0304","\u1e7b":"u\u0304\u0308","\u016d":"u\u0306","\u01d4":"u\u030c","\xfb":"u\u0302","\u016f":"u\u030a","\u0171":"u\u030b","\u1e7d":"v\u0303","\u1e83":"w\u0301","\u1e81":"w\u0300","\u1e85":"w\u0308","\u0175":"w\u0302","\u1e87":"w\u0307","\u1e98":"w\u030a","\u1e8d":"x\u0308","\u1e8b":"x\u0307","\xfd":"y\u0301","\u1ef3":"y\u0300","\xff":"y\u0308","\u1ef9":"y\u0303","\u0233":"y\u0304","\u0177":"y\u0302","\u1e8f":"y\u0307","\u1e99":"y\u030a","\u017a":"z\u0301","\u017e":"z\u030c","\u1e91":"z\u0302","\u017c":"z\u0307","\xc1":"A\u0301","\xc0":"A\u0300","\xc4":"A\u0308","\u01de":"A\u0308\u0304","\xc3":"A\u0303","\u0100":"A\u0304","\u0102":"A\u0306","\u1eae":"A\u0306\u0301","\u1eb0":"A\u0306\u0300","\u1eb4":"A\u0306\u0303","\u01cd":"A\u030c","\xc2":"A\u0302","\u1ea4":"A\u0302\u0301","\u1ea6":"A\u0302\u0300","\u1eaa":"A\u0302\u0303","\u0226":"A\u0307","\u01e0":"A\u0307\u0304","\xc5":"A\u030a","\u01fa":"A\u030a\u0301","\u1e02":"B\u0307","\u0106":"C\u0301","\u1e08":"C\u0327\u0301","\u010c":"C\u030c","\u0108":"C\u0302","\u010a":"C\u0307","\xc7":"C\u0327","\u010e":"D\u030c","\u1e0a":"D\u0307","\u1e10":"D\u0327","\xc9":"E\u0301","\xc8":"E\u0300","\xcb":"E\u0308","\u1ebc":"E\u0303","\u0112":"E\u0304","\u1e16":"E\u0304\u0301","\u1e14":"E\u0304\u0300","\u0114":"E\u0306","\u1e1c":"E\u0327\u0306","\u011a":"E\u030c","\xca":"E\u0302","\u1ebe":"E\u0302\u0301","\u1ec0":"E\u0302\u0300","\u1ec4":"E\u0302\u0303","\u0116":"E\u0307","\u0228":"E\u0327","\u1e1e":"F\u0307","\u01f4":"G\u0301","\u1e20":"G\u0304","\u011e":"G\u0306","\u01e6":"G\u030c","\u011c":"G\u0302","\u0120":"G\u0307","\u0122":"G\u0327","\u1e26":"H\u0308","\u021e":"H\u030c","\u0124":"H\u0302","\u1e22":"H\u0307","\u1e28":"H\u0327","\xcd":"I\u0301","\xcc":"I\u0300","\xcf":"I\u0308","\u1e2e":"I\u0308\u0301","\u0128":"I\u0303","\u012a":"I\u0304","\u012c":"I\u0306","\u01cf":"I\u030c","\xce":"I\u0302","\u0130":"I\u0307","\u0134":"J\u0302","\u1e30":"K\u0301","\u01e8":"K\u030c","\u0136":"K\u0327","\u0139":"L\u0301","\u013d":"L\u030c","\u013b":"L\u0327","\u1e3e":"M\u0301","\u1e40":"M\u0307","\u0143":"N\u0301","\u01f8":"N\u0300","\xd1":"N\u0303","\u0147":"N\u030c","\u1e44":"N\u0307","\u0145":"N\u0327","\xd3":"O\u0301","\xd2":"O\u0300","\xd6":"O\u0308","\u022a":"O\u0308\u0304","\xd5":"O\u0303","\u1e4c":"O\u0303\u0301","\u1e4e":"O\u0303\u0308","\u022c":"O\u0303\u0304","\u014c":"O\u0304","\u1e52":"O\u0304\u0301","\u1e50":"O\u0304\u0300","\u014e":"O\u0306","\u01d1":"O\u030c","\xd4":"O\u0302","\u1ed0":"O\u0302\u0301","\u1ed2":"O\u0302\u0300","\u1ed6":"O\u0302\u0303","\u022e":"O\u0307","\u0230":"O\u0307\u0304","\u0150":"O\u030b","\u1e54":"P\u0301","\u1e56":"P\u0307","\u0154":"R\u0301","\u0158":"R\u030c","\u1e58":"R\u0307","\u0156":"R\u0327","\u015a":"S\u0301","\u1e64":"S\u0301\u0307","\u0160":"S\u030c","\u1e66":"S\u030c\u0307","\u015c":"S\u0302","\u1e60":"S\u0307","\u015e":"S\u0327","\u0164":"T\u030c","\u1e6a":"T\u0307","\u0162":"T\u0327","\xda":"U\u0301","\xd9":"U\u0300","\xdc":"U\u0308","\u01d7":"U\u0308\u0301","\u01db":"U\u0308\u0300","\u01d5":"U\u0308\u0304","\u01d9":"U\u0308\u030c","\u0168":"U\u0303","\u1e78":"U\u0303\u0301","\u016a":"U\u0304","\u1e7a":"U\u0304\u0308","\u016c":"U\u0306","\u01d3":"U\u030c","\xdb":"U\u0302","\u016e":"U\u030a","\u0170":"U\u030b","\u1e7c":"V\u0303","\u1e82":"W\u0301","\u1e80":"W\u0300","\u1e84":"W\u0308","\u0174":"W\u0302","\u1e86":"W\u0307","\u1e8c":"X\u0308","\u1e8a":"X\u0307","\xdd":"Y\u0301","\u1ef2":"Y\u0300","\u0178":"Y\u0308","\u1ef8":"Y\u0303","\u0232":"Y\u0304","\u0176":"Y\u0302","\u1e8e":"Y\u0307","\u0179":"Z\u0301","\u017d":"Z\u030c","\u1e90":"Z\u0302","\u017b":"Z\u0307","\u03ac":"\u03b1\u0301","\u1f70":"\u03b1\u0300","\u1fb1":"\u03b1\u0304","\u1fb0":"\u03b1\u0306","\u03ad":"\u03b5\u0301","\u1f72":"\u03b5\u0300","\u03ae":"\u03b7\u0301","\u1f74":"\u03b7\u0300","\u03af":"\u03b9\u0301","\u1f76":"\u03b9\u0300","\u03ca":"\u03b9\u0308","\u0390":"\u03b9\u0308\u0301","\u1fd2":"\u03b9\u0308\u0300","\u1fd1":"\u03b9\u0304","\u1fd0":"\u03b9\u0306","\u03cc":"\u03bf\u0301","\u1f78":"\u03bf\u0300","\u03cd":"\u03c5\u0301","\u1f7a":"\u03c5\u0300","\u03cb":"\u03c5\u0308","\u03b0":"\u03c5\u0308\u0301","\u1fe2":"\u03c5\u0308\u0300","\u1fe1":"\u03c5\u0304","\u1fe0":"\u03c5\u0306","\u03ce":"\u03c9\u0301","\u1f7c":"\u03c9\u0300","\u038e":"\u03a5\u0301","\u1fea":"\u03a5\u0300","\u03ab":"\u03a5\u0308","\u1fe9":"\u03a5\u0304","\u1fe8":"\u03a5\u0306","\u038f":"\u03a9\u0301","\u1ffa":"\u03a9\u0300"},jn=function(){function e(e,t){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new Un(e,t,this.mode),this.settings=t,this.leftrightDepth=0}var t=e.prototype;return t.expect=function(e,t){if(void 0===t&&(t=!0),this.fetch().text!==e)throw new n("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());t&&this.consume()},t.consume=function(){this.nextToken=null},t.fetch=function(){return null==this.nextToken&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken},t.switchMode=function(e){this.mode=e,this.gullet.switchMode(e)},t.parse=function(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}},t.subparse=function(e){var t=this.nextToken;this.consume(),this.gullet.pushToken(new Dr("}")),this.gullet.pushTokens(e);var r=this.parseExpression(!1);return this.expect("}"),this.nextToken=t,r},t.parseExpression=function(t,r){for(var n=[];;){"math"===this.mode&&this.consumeSpaces();var a=this.fetch();if(-1!==e.endOfExpression.indexOf(a.text))break;if(r&&a.text===r)break;if(t&&Nn[a.text]&&Nn[a.text].infix)break;var i=this.parseAtom(r);if(!i)break;"internal"!==i.type&&n.push(i)}return"text"===this.mode&&this.formLigatures(n),this.handleInfixNodes(n)},t.handleInfixNodes=function(e){for(var t,r=-1,a=0;a=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+t[0]+'" used in math mode',e);var s,l=ae[this.mode][t].group,h=Lr.range(e);if(te.hasOwnProperty(l)){var m=l;s={type:"atom",mode:this.mode,family:m,loc:h,text:t}}else s={type:l,mode:this.mode,loc:h,text:t};i=s}else{if(!(t.charCodeAt(0)>=128))return null;this.settings.strict&&(S(t.charCodeAt(0))?"math"===this.mode&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+t[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+t[0]+'" ('+t.charCodeAt(0)+")",e)),i={type:"textord",mode:"text",loc:Lr.range(e),text:t}}if(this.consume(),o)for(var c=0;c=we[t]&&e<=we[t+1])return 1}function C(e,t,r){if(!Me[t])throw Error("Font metrics not found for font: "+t+".");var n=e.charCodeAt(0),i=Me[t][n];if(!i&&e[0]in Ae&&(n=Ae[e[0]].charCodeAt(0),i=Me[t][n]),i||"text"!==r||B(n)&&(i=Me[t][77]),i)return{depth:i[0],height:i[1],italic:i[2],skew:i[3],width:i[4]}}function q(e){if(e instanceof b)return e;throw Error("Expected symbolNode but got "+e+".")}function e(e,t,r,n,i,a){nt[e][i]={font:t,group:r,replace:n},a&&n&&(nt[e][n]=nt[e][i])}function t(e){for(var t=e.type,r=e.names,n=e.props,i=e.handler,a=e.htmlBuilder,e=e.mathmlBuilder,o={type:t,numArgs:n.numArgs,argTypes:n.argTypes,allowedInArgument:!!n.allowedInArgument,allowedInText:!!n.allowedInText,allowedInMath:void 0===n.allowedInMath||n.allowedInMath,numOptionalArgs:n.numOptionalArgs||0,infix:!!n.infix,primitive:!!n.primitive,handler:i},s=0;s=g.length&&u||g.pop(),b.length":">","<":"<",'"':""","'":"'"},le=/[&><"']/g,Z={contains:function(e,t){return!!~e.indexOf(t)},deflt:function(e,t){return void 0===e?t:e},escape:function(e){return(""+e).replace(le,function(e){return se[e]})},hyphenate:function(e){return e.replace(oe,"-$1").toLowerCase()},getBaseElem:ne,isCharacterBox:function(e){e=ne(e);return"mathord"===e.type||"textord"===e.type||"atom"===e.type},protocolFromUrl:function(e){e=/^\s*([^\\/#]*?)(?::|�*58|�*3a)/i.exec(e);return null!=e?e[1]:"_relative"}},he={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:function(e){return"#"+e}},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:function(e,t){return t.push(e),t}},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:function(e){return Math.max(0,e)},cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:function(e){return Math.max(0,e)},cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:function(e){return Math.max(0,e)},cli:"-e, --max-expand ",cliProcessor:function(e){return"Infinity"===e?1/0:parseInt(e)}},globalGroup:{type:"boolean",cli:!1}},me=((o=ve.prototype).reportNonstrict=function(e,t,r){var n=this.strict;if((n="function"==typeof n?n(e,t,r):n)&&"ignore"!==n&&(!0===n||"error"===n))throw new j("LaTeX-incompatible input and strict mode is set to 'error': "+t+" ["+e+"]",r)},o.useStrictBehavior=function(e,t,r){var n=this.strict;if("function"==typeof n)try{n=n(e,t,r)}catch(e){n="error"}return!(!n||"ignore"===n||!0!==n&&"error"!==n)},o.isTrusted=function(e){return e.url&&!e.protocol&&(e.protocol=Z.protocolFromUrl(e.url)),!!("function"==typeof this.trust?this.trust(e):this.trust)},ve);(o=xe.prototype).sup=function(){return ce[ue[this.id]]},o.sub=function(){return ce[pe[this.id]]},o.fracNum=function(){return ce[de[this.id]]},o.fracDen=function(){return ce[fe[this.id]]},o.cramp=function(){return ce[ge[this.id]]},o.text=function(){return ce[ye[this.id]]};var ce=[new(s=xe)(0,0,!(o.isTight=function(){return 2<=this.size})),new s(1,0,!0),new s(2,1,!1),new s(3,1,!0),new s(4,2,!1),new s(5,2,!0),new s(6,3,!1),new s(7,3,!0)],ue=[4,5,4,5,6,7,6,7],pe=[5,5,5,5,7,7,7,7],de=[2,3,4,5,6,7,6,7],fe=[3,3,5,5,7,7,7,7],ge=[1,1,3,3,5,5,7,7],ye=[0,1,2,3,2,3,2,3],K={DISPLAY:ce[0],TEXT:ce[2],SCRIPT:ce[4],SCRIPTSCRIPT:ce[6]},be=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];function xe(e,t,r){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=t,this.cramped=r}function ve(e){for(var t in this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{},he){var r;he.hasOwnProperty(t)&&(r=he[t],this[t]=void 0!==e[t]?r.processor?r.processor(e[t]):e[t]:function(e){if(e.default)return e.default;if(e=e.type,"string"!=typeof(e=Array.isArray(e)?e[0]:e))return e.enum[0];switch(e){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}(r))}}var we=[],ke=(be.forEach(function(e){return e.blocks.forEach(function(e){return we.push.apply(we,e)})}),{doubleleftarrow:"M262 157\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\nm8 0v40h399730v-40zm0 194v40h399730v-40z",doublerightarrow:"M399738 392l\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z",leftarrow:"M400000 241H110l3-3c68.7-52.7 113.7-120\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\n l-3-3h399890zM100 241v40h399900v-40z",leftbrace:"M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z",leftbraceunder:"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z",leftgroup:"M400000 80\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\n 435 0h399565z",leftgroupunder:"M400000 262\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\n 435 219h399565z",leftharpoon:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z",leftharpoonplus:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\nm0 0v40h400000v-40z",leftharpoondown:"M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z",leftharpoondownplus:"M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z",lefthook:"M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\n 71.5 23h399859zM103 281v-40h399897v40z",leftlinesegment:"M40 281 V428 H0 V94 H40 V241 H400000 v40z\nM40 281 V428 H0 V94 H40 V241 H400000 v40z",leftmapsto:"M40 281 V448H0V74H40V241H400000v40z\nM40 281 V448H0V74H40V241H400000v40z",leftToFrom:"M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z",longequal:"M0 50 h400000 v40H0z m0 194h40000v40H0z\nM0 50 h400000 v40H0z m0 194h40000v40H0z",midbrace:"M200428 334\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z",midbraceunder:"M199572 214\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z",oiintSize1:"M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z",oiintSize2:"M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\nc0 110 84 276 504 276s502.4-166 502.4-276z",oiiintSize1:"M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z",oiiintSize2:"M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z",rightarrow:"M0 241v40h399891c-47.3 35.3-84 78-110 128\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n 151.7 139 205zm0 0v40h399900v-40z",rightbrace:"M400000 542l\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z",rightbraceunder:"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z",rightgroup:"M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\n 3-1 3-3v-38c-76-158-257-219-435-219H0z",rightgroupunder:"M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z",rightharpoon:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\n 69.2 92 94.5zm0 0v40h399900v-40z",rightharpoonplus:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z",rightharpoondown:"M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z",rightharpoondownplus:"M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\nm0-194v40h400000v-40zm0 0v40h400000v-40z",righthook:"M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z",rightlinesegment:"M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z",rightToFrom:"M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z",twoheadleftarrow:"M0 167c68 40\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z",twoheadrightarrow:"M400000 167\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z",tilde1:"M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\n-68.267.847-113-73.952-191-73.952z",tilde2:"M344 55.266c-142 0-300.638 81.316-311.5 86.418\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z",tilde3:"M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\n -338 0-409-156.573-744-156.573z",tilde4:"M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\n -175.236-744-175.236z",vec:"M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\nc-16-25.333-24-45-24-59z",widehat1:"M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z",widehat2:"M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat3:"M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat4:"M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widecheck1:"M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z",widecheck2:"M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck3:"M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck4:"M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",baraboveleftarrow:"M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z",rightarrowabovebar:"M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z",baraboveshortleftharpoon:"M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z",rightharpoonaboveshortbar:"M0,241 l0,40c399126,0,399993,0,399993,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z",shortbaraboveleftharpoon:"M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z",shortrightharpoonabovebar:"M53,241l0,40c398570,0,399437,0,399437,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z"}),Se=((o=Te.prototype).hasClass=function(e){return Z.contains(this.classes,e)},o.toNode=function(){for(var e=document.createDocumentFragment(),t=0;t"}(s=Ie.prototype).extend=function(e){var t,r={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(t in e)e.hasOwnProperty(t)&&(r[t]=e[t]);return new Ie(r)},s.havingStyle=function(e){return this.style===e?this:this.extend({style:e,size:Be(this.textSize,e)})},s.havingCrampedStyle=function(){return this.havingStyle(this.style.cramp())},s.havingSize=function(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:Ne[e-1]})},s.havingBaseStyle=function(e){e=e||this.style.text();var t=Be(Ie.BASESIZE,e);return this.size===t&&this.textSize===Ie.BASESIZE&&this.style===e?this:this.extend({style:e,size:t})},s.havingBaseSizing=function(){var e;switch(this.style.id){case 4:case 5:e=3;break;case 6:case 7:e=1;break;default:e=6}return this.extend({style:this.style.text(),size:e})},s.withColor=function(e){return this.extend({color:e})},s.withPhantom=function(){return this.extend({phantom:!0})},s.withFont=function(e){return this.extend({font:e})},s.withTextFontFamily=function(e){return this.extend({fontFamily:e,font:""})},s.withTextFontWeight=function(e){return this.extend({fontWeight:e,font:""})},s.withTextFontShape=function(e){return this.extend({fontShape:e,font:""})},s.sizingClasses=function(e){return e.size!==this.size?["sizing","reset-size"+e.size,"size"+this.size]:[]},s.baseSizingClasses=function(){return this.size!==Ie.BASESIZE?["sizing","reset-size"+this.size,"size"+Ie.BASESIZE]:[]},s.fontMetrics=function(){return this._fontMetrics||(this._fontMetrics=function(e){var t;if(!Ce[t=e<5?e<3?2:1:0]){var r,n=Ce[t]={cssEmPerMu:ze.quad[t]/18};for(r in ze)ze.hasOwnProperty(r)&&(n[r]=ze[r][t])}return Ce[t]}(this.size)),this._fontMetrics},s.getColor=function(){return this.phantom?"transparent":this.color},(o=Ie).BASESIZE=6;var Le=o,Pe={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:1.00375,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:1.00375},Fe={ex:!0,em:!0,mu:!0},Q=function(e){return+e.toFixed(4)+"em"},Ve=((s=et.prototype).setAttribute=function(e,t){this.attributes[e]=t},s.hasClass=function(e){return Z.contains(this.classes,e)},s.toNode=function(){return He.call(this,"span")},s.toMarkup=function(){return De.call(this,"span")},et),Ge=((o=Qe.prototype).setAttribute=function(e,t){this.attributes[e]=t},o.hasClass=function(e){return Z.contains(this.classes,e)},o.toNode=function(){return He.call(this,"a")},o.toMarkup=function(){return De.call(this,"a")},Qe),Ue=((s=Je.prototype).hasClass=function(e){return Z.contains(this.classes,e)},s.toNode=function(){var e,t=document.createElement("img");for(e in t.src=this.src,t.alt=this.alt,t.className="mord",this.style)this.style.hasOwnProperty(e)&&(t.style[e]=this.style[e]);return t},s.toMarkup=function(){var e,t=""+this.alt+""},Je),Ye={"î":"ı̂","ï":"ı̈","í":"ı́","ì":"ı̀"},b=((o=Ke.prototype).hasClass=function(e){return Z.contains(this.classes,e)},o.toNode=function(){var e,t=document.createTextNode(this.text),r=null;for(e in 0"+i)+"":i},Ke),We=((s=Ze.prototype).toNode=function(){var e,t=document.createElementNS("http://www.w3.org/2000/svg","svg");for(e in this.attributes)!{}.hasOwnProperty.call(this.attributes,e)||t.setAttribute(e,this.attributes[e]);for(var r=0;r"},Ze),Xe=((o=je.prototype).toNode=function(){var e=document.createElementNS("http://www.w3.org/2000/svg","path");return this.alternate?e.setAttribute("d",this.alternate):e.setAttribute("d",ke[this.pathName]),e},o.toMarkup=function(){return this.alternate?"":""},je),_e=((s=$e.prototype).toNode=function(){var e,t=document.createElementNS("http://www.w3.org/2000/svg","line");for(e in this.attributes)!{}.hasOwnProperty.call(this.attributes,e)||t.setAttribute(e,this.attributes[e]);return t},s.toMarkup=function(){var e,t=""},$e);function $e(e){this.attributes=void 0,this.attributes=e||{}}function je(e,t){this.pathName=void 0,this.alternate=void 0,this.pathName=e,this.alternate=t}function Ze(e,t){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=t||{}}function Ke(e,t,r,n,i,a,o,s){this.text=void 0,this.height=void 0,this.depth=void 0,this.italic=void 0,this.skew=void 0,this.width=void 0,this.maxFontSize=void 0,this.classes=void 0,this.style=void 0,this.text=e,this.height=t||0,this.depth=r||0,this.italic=n||0,this.skew=i||0,this.width=a||0,this.classes=o||[],this.style=s||{},this.maxFontSize=0;e=function(e){for(var t=0;t=i[0]&&e<=i[1])return r.name}return null}(this.text.charCodeAt(0));e&&this.classes.push(e+"_fallback"),/[\xee\xef\xed\xec]/.test(this.text)&&(this.text=Ye[this.text])}function Je(e,t,r){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=t,this.src=e,this.classes=["mord"],this.style=r}function Qe(e,t,r,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,Ee.call(this,t,n),this.children=r||[],this.setAttribute("href",e)}function et(e,t,r,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,Ee.call(this,e,r,n),this.children=t||[]}var tt={bin:1,close:1,inner:1,open:1,punct:1,rel:1},rt={"accent-token":1,mathord:1,"op-token":1,spacing:1,textord:1},nt={math:{},text:{}},p=nt,n="math",i="text",a="main",o="ams",s="accent-token",l="bin",h="close",it="inner",m="mathord",c="op-token",u="open",f="punct",g="rel",y="spacing",x="textord",at=(e(n,a,g,"≡","\\equiv",!0),e(n,a,g,"≺","\\prec",!0),e(n,a,g,"≻","\\succ",!0),e(n,a,g,"∼","\\sim",!0),e(n,a,g,"⊥","\\perp"),e(n,a,g,"⪯","\\preceq",!0),e(n,a,g,"⪰","\\succeq",!0),e(n,a,g,"≃","\\simeq",!0),e(n,a,g,"∣","\\mid",!0),e(n,a,g,"≪","\\ll",!0),e(n,a,g,"≫","\\gg",!0),e(n,a,g,"≍","\\asymp",!0),e(n,a,g,"∥","\\parallel"),e(n,a,g,"⋈","\\bowtie",!0),e(n,a,g,"⌣","\\smile",!0),e(n,a,g,"⊑","\\sqsubseteq",!0),e(n,a,g,"⊒","\\sqsupseteq",!0),e(n,a,g,"≐","\\doteq",!0),e(n,a,g,"⌢","\\frown",!0),e(n,a,g,"∋","\\ni",!0),e(n,a,g,"∝","\\propto",!0),e(n,a,g,"⊢","\\vdash",!0),e(n,a,g,"⊣","\\dashv",!0),e(n,a,g,"∋","\\owns"),e(n,a,f,".","\\ldotp"),e(n,a,f,"⋅","\\cdotp"),e(n,a,x,"#","\\#"),e(i,a,x,"#","\\#"),e(n,a,x,"&","\\&"),e(i,a,x,"&","\\&"),e(n,a,x,"ℵ","\\aleph",!0),e(n,a,x,"∀","\\forall",!0),e(n,a,x,"ℏ","\\hbar",!0),e(n,a,x,"∃","\\exists",!0),e(n,a,x,"∇","\\nabla",!0),e(n,a,x,"♭","\\flat",!0),e(n,a,x,"ℓ","\\ell",!0),e(n,a,x,"♮","\\natural",!0),e(n,a,x,"♣","\\clubsuit",!0),e(n,a,x,"℘","\\wp",!0),e(n,a,x,"♯","\\sharp",!0),e(n,a,x,"♢","\\diamondsuit",!0),e(n,a,x,"ℜ","\\Re",!0),e(n,a,x,"♡","\\heartsuit",!0),e(n,a,x,"ℑ","\\Im",!0),e(n,a,x,"♠","\\spadesuit",!0),e(n,a,x,"§","\\S",!0),e(i,a,x,"§","\\S"),e(n,a,x,"¶","\\P",!0),e(i,a,x,"¶","\\P"),e(n,a,x,"†","\\dag"),e(i,a,x,"†","\\dag"),e(i,a,x,"†","\\textdagger"),e(n,a,x,"‡","\\ddag"),e(i,a,x,"‡","\\ddag"),e(i,a,x,"‡","\\textdaggerdbl"),e(n,a,h,"⎱","\\rmoustache",!0),e(n,a,u,"⎰","\\lmoustache",!0),e(n,a,h,"⟯","\\rgroup",!0),e(n,a,u,"⟮","\\lgroup",!0),e(n,a,l,"∓","\\mp",!0),e(n,a,l,"⊖","\\ominus",!0),e(n,a,l,"⊎","\\uplus",!0),e(n,a,l,"⊓","\\sqcap",!0),e(n,a,l,"∗","\\ast"),e(n,a,l,"⊔","\\sqcup",!0),e(n,a,l,"◯","\\bigcirc",!0),e(n,a,l,"∙","\\bullet",!0),e(n,a,l,"‡","\\ddagger"),e(n,a,l,"≀","\\wr",!0),e(n,a,l,"⨿","\\amalg"),e(n,a,l,"&","\\And"),e(n,a,g,"⟵","\\longleftarrow",!0),e(n,a,g,"⇐","\\Leftarrow",!0),e(n,a,g,"⟸","\\Longleftarrow",!0),e(n,a,g,"⟶","\\longrightarrow",!0),e(n,a,g,"⇒","\\Rightarrow",!0),e(n,a,g,"⟹","\\Longrightarrow",!0),e(n,a,g,"↔","\\leftrightarrow",!0),e(n,a,g,"⟷","\\longleftrightarrow",!0),e(n,a,g,"⇔","\\Leftrightarrow",!0),e(n,a,g,"⟺","\\Longleftrightarrow",!0),e(n,a,g,"↦","\\mapsto",!0),e(n,a,g,"⟼","\\longmapsto",!0),e(n,a,g,"↗","\\nearrow",!0),e(n,a,g,"↩","\\hookleftarrow",!0),e(n,a,g,"↪","\\hookrightarrow",!0),e(n,a,g,"↘","\\searrow",!0),e(n,a,g,"↼","\\leftharpoonup",!0),e(n,a,g,"⇀","\\rightharpoonup",!0),e(n,a,g,"↙","\\swarrow",!0),e(n,a,g,"↽","\\leftharpoondown",!0),e(n,a,g,"⇁","\\rightharpoondown",!0),e(n,a,g,"↖","\\nwarrow",!0),e(n,a,g,"⇌","\\rightleftharpoons",!0),e(n,o,g,"≮","\\nless",!0),e(n,o,g,"","\\@nleqslant"),e(n,o,g,"","\\@nleqq"),e(n,o,g,"⪇","\\lneq",!0),e(n,o,g,"≨","\\lneqq",!0),e(n,o,g,"","\\@lvertneqq"),e(n,o,g,"⋦","\\lnsim",!0),e(n,o,g,"⪉","\\lnapprox",!0),e(n,o,g,"⊀","\\nprec",!0),e(n,o,g,"⋠","\\npreceq",!0),e(n,o,g,"⋨","\\precnsim",!0),e(n,o,g,"⪹","\\precnapprox",!0),e(n,o,g,"≁","\\nsim",!0),e(n,o,g,"","\\@nshortmid"),e(n,o,g,"∤","\\nmid",!0),e(n,o,g,"⊬","\\nvdash",!0),e(n,o,g,"⊭","\\nvDash",!0),e(n,o,g,"⋪","\\ntriangleleft"),e(n,o,g,"⋬","\\ntrianglelefteq",!0),e(n,o,g,"⊊","\\subsetneq",!0),e(n,o,g,"","\\@varsubsetneq"),e(n,o,g,"⫋","\\subsetneqq",!0),e(n,o,g,"","\\@varsubsetneqq"),e(n,o,g,"≯","\\ngtr",!0),e(n,o,g,"","\\@ngeqslant"),e(n,o,g,"","\\@ngeqq"),e(n,o,g,"⪈","\\gneq",!0),e(n,o,g,"≩","\\gneqq",!0),e(n,o,g,"","\\@gvertneqq"),e(n,o,g,"⋧","\\gnsim",!0),e(n,o,g,"⪊","\\gnapprox",!0),e(n,o,g,"⊁","\\nsucc",!0),e(n,o,g,"⋡","\\nsucceq",!0),e(n,o,g,"⋩","\\succnsim",!0),e(n,o,g,"⪺","\\succnapprox",!0),e(n,o,g,"≆","\\ncong",!0),e(n,o,g,"","\\@nshortparallel"),e(n,o,g,"∦","\\nparallel",!0),e(n,o,g,"⊯","\\nVDash",!0),e(n,o,g,"⋫","\\ntriangleright"),e(n,o,g,"⋭","\\ntrianglerighteq",!0),e(n,o,g,"","\\@nsupseteqq"),e(n,o,g,"⊋","\\supsetneq",!0),e(n,o,g,"","\\@varsupsetneq"),e(n,o,g,"⫌","\\supsetneqq",!0),e(n,o,g,"","\\@varsupsetneqq"),e(n,o,g,"⊮","\\nVdash",!0),e(n,o,g,"⪵","\\precneqq",!0),e(n,o,g,"⪶","\\succneqq",!0),e(n,o,g,"","\\@nsubseteqq"),e(n,o,l,"⊴","\\unlhd"),e(n,o,l,"⊵","\\unrhd"),e(n,o,g,"↚","\\nleftarrow",!0),e(n,o,g,"↛","\\nrightarrow",!0),e(n,o,g,"⇍","\\nLeftarrow",!0),e(n,o,g,"⇏","\\nRightarrow",!0),e(n,o,g,"↮","\\nleftrightarrow",!0),e(n,o,g,"⇎","\\nLeftrightarrow",!0),e(n,o,g,"△","\\vartriangle"),e(n,o,x,"ℏ","\\hslash"),e(n,o,x,"▽","\\triangledown"),e(n,o,x,"◊","\\lozenge"),e(n,o,x,"Ⓢ","\\circledS"),e(n,o,x,"®","\\circledR"),e(i,o,x,"®","\\circledR"),e(n,o,x,"∡","\\measuredangle",!0),e(n,o,x,"∄","\\nexists"),e(n,o,x,"℧","\\mho"),e(n,o,x,"Ⅎ","\\Finv",!0),e(n,o,x,"⅁","\\Game",!0),e(n,o,x,"‵","\\backprime"),e(n,o,x,"▲","\\blacktriangle"),e(n,o,x,"▼","\\blacktriangledown"),e(n,o,x,"■","\\blacksquare"),e(n,o,x,"⧫","\\blacklozenge"),e(n,o,x,"★","\\bigstar"),e(n,o,x,"∢","\\sphericalangle",!0),e(n,o,x,"∁","\\complement",!0),e(n,o,x,"ð","\\eth",!0),e(i,a,x,"ð","ð"),e(n,o,x,"╱","\\diagup"),e(n,o,x,"╲","\\diagdown"),e(n,o,x,"□","\\square"),e(n,o,x,"□","\\Box"),e(n,o,x,"◊","\\Diamond"),e(n,o,x,"¥","\\yen",!0),e(i,o,x,"¥","\\yen",!0),e(n,o,x,"✓","\\checkmark",!0),e(i,o,x,"✓","\\checkmark"),e(n,o,x,"ℶ","\\beth",!0),e(n,o,x,"ℸ","\\daleth",!0),e(n,o,x,"ℷ","\\gimel",!0),e(n,o,x,"ϝ","\\digamma",!0),e(n,o,x,"ϰ","\\varkappa"),e(n,o,u,"┌","\\@ulcorner",!0),e(n,o,h,"┐","\\@urcorner",!0),e(n,o,u,"└","\\@llcorner",!0),e(n,o,h,"┘","\\@lrcorner",!0),e(n,o,g,"≦","\\leqq",!0),e(n,o,g,"⩽","\\leqslant",!0),e(n,o,g,"⪕","\\eqslantless",!0),e(n,o,g,"≲","\\lesssim",!0),e(n,o,g,"⪅","\\lessapprox",!0),e(n,o,g,"≊","\\approxeq",!0),e(n,o,l,"⋖","\\lessdot"),e(n,o,g,"⋘","\\lll",!0),e(n,o,g,"≶","\\lessgtr",!0),e(n,o,g,"⋚","\\lesseqgtr",!0),e(n,o,g,"⪋","\\lesseqqgtr",!0),e(n,o,g,"≑","\\doteqdot"),e(n,o,g,"≓","\\risingdotseq",!0),e(n,o,g,"≒","\\fallingdotseq",!0),e(n,o,g,"∽","\\backsim",!0),e(n,o,g,"⋍","\\backsimeq",!0),e(n,o,g,"⫅","\\subseteqq",!0),e(n,o,g,"⋐","\\Subset",!0),e(n,o,g,"⊏","\\sqsubset",!0),e(n,o,g,"≼","\\preccurlyeq",!0),e(n,o,g,"⋞","\\curlyeqprec",!0),e(n,o,g,"≾","\\precsim",!0),e(n,o,g,"⪷","\\precapprox",!0),e(n,o,g,"⊲","\\vartriangleleft"),e(n,o,g,"⊴","\\trianglelefteq"),e(n,o,g,"⊨","\\vDash",!0),e(n,o,g,"⊪","\\Vvdash",!0),e(n,o,g,"⌣","\\smallsmile"),e(n,o,g,"⌢","\\smallfrown"),e(n,o,g,"≏","\\bumpeq",!0),e(n,o,g,"≎","\\Bumpeq",!0),e(n,o,g,"≧","\\geqq",!0),e(n,o,g,"⩾","\\geqslant",!0),e(n,o,g,"⪖","\\eqslantgtr",!0),e(n,o,g,"≳","\\gtrsim",!0),e(n,o,g,"⪆","\\gtrapprox",!0),e(n,o,l,"⋗","\\gtrdot"),e(n,o,g,"⋙","\\ggg",!0),e(n,o,g,"≷","\\gtrless",!0),e(n,o,g,"⋛","\\gtreqless",!0),e(n,o,g,"⪌","\\gtreqqless",!0),e(n,o,g,"≖","\\eqcirc",!0),e(n,o,g,"≗","\\circeq",!0),e(n,o,g,"≜","\\triangleq",!0),e(n,o,g,"∼","\\thicksim"),e(n,o,g,"≈","\\thickapprox"),e(n,o,g,"⫆","\\supseteqq",!0),e(n,o,g,"⋑","\\Supset",!0),e(n,o,g,"⊐","\\sqsupset",!0),e(n,o,g,"≽","\\succcurlyeq",!0),e(n,o,g,"⋟","\\curlyeqsucc",!0),e(n,o,g,"≿","\\succsim",!0),e(n,o,g,"⪸","\\succapprox",!0),e(n,o,g,"⊳","\\vartriangleright"),e(n,o,g,"⊵","\\trianglerighteq"),e(n,o,g,"⊩","\\Vdash",!0),e(n,o,g,"∣","\\shortmid"),e(n,o,g,"∥","\\shortparallel"),e(n,o,g,"≬","\\between",!0),e(n,o,g,"⋔","\\pitchfork",!0),e(n,o,g,"∝","\\varpropto"),e(n,o,g,"◀","\\blacktriangleleft"),e(n,o,g,"∴","\\therefore",!0),e(n,o,g,"∍","\\backepsilon"),e(n,o,g,"▶","\\blacktriangleright"),e(n,o,g,"∵","\\because",!0),e(n,o,g,"⋘","\\llless"),e(n,o,g,"⋙","\\gggtr"),e(n,o,l,"⊲","\\lhd"),e(n,o,l,"⊳","\\rhd"),e(n,o,g,"≂","\\eqsim",!0),e(n,a,g,"⋈","\\Join"),e(n,o,g,"≑","\\Doteq",!0),e(n,o,l,"∔","\\dotplus",!0),e(n,o,l,"∖","\\smallsetminus"),e(n,o,l,"⋒","\\Cap",!0),e(n,o,l,"⋓","\\Cup",!0),e(n,o,l,"⩞","\\doublebarwedge",!0),e(n,o,l,"⊟","\\boxminus",!0),e(n,o,l,"⊞","\\boxplus",!0),e(n,o,l,"⋇","\\divideontimes",!0),e(n,o,l,"⋉","\\ltimes",!0),e(n,o,l,"⋊","\\rtimes",!0),e(n,o,l,"⋋","\\leftthreetimes",!0),e(n,o,l,"⋌","\\rightthreetimes",!0),e(n,o,l,"⋏","\\curlywedge",!0),e(n,o,l,"⋎","\\curlyvee",!0),e(n,o,l,"⊝","\\circleddash",!0),e(n,o,l,"⊛","\\circledast",!0),e(n,o,l,"⋅","\\centerdot"),e(n,o,l,"⊺","\\intercal",!0),e(n,o,l,"⋒","\\doublecap"),e(n,o,l,"⋓","\\doublecup"),e(n,o,l,"⊠","\\boxtimes",!0),e(n,o,g,"⇢","\\dashrightarrow",!0),e(n,o,g,"⇠","\\dashleftarrow",!0),e(n,o,g,"⇇","\\leftleftarrows",!0),e(n,o,g,"⇆","\\leftrightarrows",!0),e(n,o,g,"⇚","\\Lleftarrow",!0),e(n,o,g,"↞","\\twoheadleftarrow",!0),e(n,o,g,"↢","\\leftarrowtail",!0),e(n,o,g,"↫","\\looparrowleft",!0),e(n,o,g,"⇋","\\leftrightharpoons",!0),e(n,o,g,"↶","\\curvearrowleft",!0),e(n,o,g,"↺","\\circlearrowleft",!0),e(n,o,g,"↰","\\Lsh",!0),e(n,o,g,"⇈","\\upuparrows",!0),e(n,o,g,"↿","\\upharpoonleft",!0),e(n,o,g,"⇃","\\downharpoonleft",!0),e(n,a,g,"⊶","\\origof",!0),e(n,a,g,"⊷","\\imageof",!0),e(n,o,g,"⊸","\\multimap",!0),e(n,o,g,"↭","\\leftrightsquigarrow",!0),e(n,o,g,"⇉","\\rightrightarrows",!0),e(n,o,g,"⇄","\\rightleftarrows",!0),e(n,o,g,"↠","\\twoheadrightarrow",!0),e(n,o,g,"↣","\\rightarrowtail",!0),e(n,o,g,"↬","\\looparrowright",!0),e(n,o,g,"↷","\\curvearrowright",!0),e(n,o,g,"↻","\\circlearrowright",!0),e(n,o,g,"↱","\\Rsh",!0),e(n,o,g,"⇊","\\downdownarrows",!0),e(n,o,g,"↾","\\upharpoonright",!0),e(n,o,g,"⇂","\\downharpoonright",!0),e(n,o,g,"⇝","\\rightsquigarrow",!0),e(n,o,g,"⇝","\\leadsto"),e(n,o,g,"⇛","\\Rrightarrow",!0),e(n,o,g,"↾","\\restriction"),e(n,a,x,"‘","`"),e(n,a,x,"$","\\$"),e(i,a,x,"$","\\$"),e(i,a,x,"$","\\textdollar"),e(n,a,x,"%","\\%"),e(i,a,x,"%","\\%"),e(n,a,x,"_","\\_"),e(i,a,x,"_","\\_"),e(i,a,x,"_","\\textunderscore"),e(n,a,x,"∠","\\angle",!0),e(n,a,x,"∞","\\infty",!0),e(n,a,x,"′","\\prime"),e(n,a,x,"△","\\triangle"),e(n,a,x,"Γ","\\Gamma",!0),e(n,a,x,"Δ","\\Delta",!0),e(n,a,x,"Θ","\\Theta",!0),e(n,a,x,"Λ","\\Lambda",!0),e(n,a,x,"Ξ","\\Xi",!0),e(n,a,x,"Π","\\Pi",!0),e(n,a,x,"Σ","\\Sigma",!0),e(n,a,x,"Υ","\\Upsilon",!0),e(n,a,x,"Φ","\\Phi",!0),e(n,a,x,"Ψ","\\Psi",!0),e(n,a,x,"Ω","\\Omega",!0),e(n,a,x,"A","Α"),e(n,a,x,"B","Β"),e(n,a,x,"E","Ε"),e(n,a,x,"Z","Ζ"),e(n,a,x,"H","Η"),e(n,a,x,"I","Ι"),e(n,a,x,"K","Κ"),e(n,a,x,"M","Μ"),e(n,a,x,"N","Ν"),e(n,a,x,"O","Ο"),e(n,a,x,"P","Ρ"),e(n,a,x,"T","Τ"),e(n,a,x,"X","Χ"),e(n,a,x,"¬","\\neg",!0),e(n,a,x,"¬","\\lnot"),e(n,a,x,"⊤","\\top"),e(n,a,x,"⊥","\\bot"),e(n,a,x,"∅","\\emptyset"),e(n,o,x,"∅","\\varnothing"),e(n,a,m,"α","\\alpha",!0),e(n,a,m,"β","\\beta",!0),e(n,a,m,"γ","\\gamma",!0),e(n,a,m,"δ","\\delta",!0),e(n,a,m,"ϵ","\\epsilon",!0),e(n,a,m,"ζ","\\zeta",!0),e(n,a,m,"η","\\eta",!0),e(n,a,m,"θ","\\theta",!0),e(n,a,m,"ι","\\iota",!0),e(n,a,m,"κ","\\kappa",!0),e(n,a,m,"λ","\\lambda",!0),e(n,a,m,"μ","\\mu",!0),e(n,a,m,"ν","\\nu",!0),e(n,a,m,"ξ","\\xi",!0),e(n,a,m,"ο","\\omicron",!0),e(n,a,m,"π","\\pi",!0),e(n,a,m,"ρ","\\rho",!0),e(n,a,m,"σ","\\sigma",!0),e(n,a,m,"τ","\\tau",!0),e(n,a,m,"υ","\\upsilon",!0),e(n,a,m,"ϕ","\\phi",!0),e(n,a,m,"χ","\\chi",!0),e(n,a,m,"ψ","\\psi",!0),e(n,a,m,"ω","\\omega",!0),e(n,a,m,"ε","\\varepsilon",!0),e(n,a,m,"ϑ","\\vartheta",!0),e(n,a,m,"ϖ","\\varpi",!0),e(n,a,m,"ϱ","\\varrho",!0),e(n,a,m,"ς","\\varsigma",!0),e(n,a,m,"φ","\\varphi",!0),e(n,a,l,"∗","*",!0),e(n,a,l,"+","+"),e(n,a,l,"−","-",!0),e(n,a,l,"⋅","\\cdot",!0),e(n,a,l,"∘","\\circ",!0),e(n,a,l,"÷","\\div",!0),e(n,a,l,"±","\\pm",!0),e(n,a,l,"×","\\times",!0),e(n,a,l,"∩","\\cap",!0),e(n,a,l,"∪","\\cup",!0),e(n,a,l,"∖","\\setminus",!0),e(n,a,l,"∧","\\land"),e(n,a,l,"∨","\\lor"),e(n,a,l,"∧","\\wedge",!0),e(n,a,l,"∨","\\vee",!0),e(n,a,x,"√","\\surd"),e(n,a,u,"⟨","\\langle",!0),e(n,a,u,"∣","\\lvert"),e(n,a,u,"∥","\\lVert"),e(n,a,h,"?","?"),e(n,a,h,"!","!"),e(n,a,h,"⟩","\\rangle",!0),e(n,a,h,"∣","\\rvert"),e(n,a,h,"∥","\\rVert"),e(n,a,g,"=","="),e(n,a,g,":",":"),e(n,a,g,"≈","\\approx",!0),e(n,a,g,"≅","\\cong",!0),e(n,a,g,"≥","\\ge"),e(n,a,g,"≥","\\geq",!0),e(n,a,g,"←","\\gets"),e(n,a,g,">","\\gt",!0),e(n,a,g,"∈","\\in",!0),e(n,a,g,"","\\@not"),e(n,a,g,"⊂","\\subset",!0),e(n,a,g,"⊃","\\supset",!0),e(n,a,g,"⊆","\\subseteq",!0),e(n,a,g,"⊇","\\supseteq",!0),e(n,o,g,"⊈","\\nsubseteq",!0),e(n,o,g,"⊉","\\nsupseteq",!0),e(n,a,g,"⊨","\\models"),e(n,a,g,"←","\\leftarrow",!0),e(n,a,g,"≤","\\le"),e(n,a,g,"≤","\\leq",!0),e(n,a,g,"<","\\lt",!0),e(n,a,g,"→","\\rightarrow",!0),e(n,a,g,"→","\\to"),e(n,o,g,"≱","\\ngeq",!0),e(n,o,g,"≰","\\nleq",!0),e(n,a,y," ","\\ "),e(n,a,y," ","\\space"),e(n,a,y," ","\\nobreakspace"),e(i,a,y," ","\\ "),e(i,a,y," "," "),e(i,a,y," ","\\space"),e(i,a,y," ","\\nobreakspace"),e(n,a,y,null,"\\nobreak"),e(n,a,y,null,"\\allowbreak"),e(n,a,f,",",","),e(n,a,f,";",";"),e(n,o,l,"⊼","\\barwedge",!0),e(n,o,l,"⊻","\\veebar",!0),e(n,a,l,"⊙","\\odot",!0),e(n,a,l,"⊕","\\oplus",!0),e(n,a,l,"⊗","\\otimes",!0),e(n,a,x,"∂","\\partial",!0),e(n,a,l,"⊘","\\oslash",!0),e(n,o,l,"⊚","\\circledcirc",!0),e(n,o,l,"⊡","\\boxdot",!0),e(n,a,l,"△","\\bigtriangleup"),e(n,a,l,"▽","\\bigtriangledown"),e(n,a,l,"†","\\dagger"),e(n,a,l,"⋄","\\diamond"),e(n,a,l,"⋆","\\star"),e(n,a,l,"◃","\\triangleleft"),e(n,a,l,"▹","\\triangleright"),e(n,a,u,"{","\\{"),e(i,a,x,"{","\\{"),e(i,a,x,"{","\\textbraceleft"),e(n,a,h,"}","\\}"),e(i,a,x,"}","\\}"),e(i,a,x,"}","\\textbraceright"),e(n,a,u,"{","\\lbrace"),e(n,a,h,"}","\\rbrace"),e(n,a,u,"[","\\lbrack",!0),e(i,a,x,"[","\\lbrack",!0),e(n,a,h,"]","\\rbrack",!0),e(i,a,x,"]","\\rbrack",!0),e(n,a,u,"(","\\lparen",!0),e(n,a,h,")","\\rparen",!0),e(i,a,x,"<","\\textless",!0),e(i,a,x,">","\\textgreater",!0),e(n,a,u,"⌊","\\lfloor",!0),e(n,a,h,"⌋","\\rfloor",!0),e(n,a,u,"⌈","\\lceil",!0),e(n,a,h,"⌉","\\rceil",!0),e(n,a,x,"\\","\\backslash"),e(n,a,x,"∣","|"),e(n,a,x,"∣","\\vert"),e(i,a,x,"|","\\textbar",!0),e(n,a,x,"∥","\\|"),e(n,a,x,"∥","\\Vert"),e(i,a,x,"∥","\\textbardbl"),e(i,a,x,"~","\\textasciitilde"),e(i,a,x,"\\","\\textbackslash"),e(i,a,x,"^","\\textasciicircum"),e(n,a,g,"↑","\\uparrow",!0),e(n,a,g,"⇑","\\Uparrow",!0),e(n,a,g,"↓","\\downarrow",!0),e(n,a,g,"⇓","\\Downarrow",!0),e(n,a,g,"↕","\\updownarrow",!0),e(n,a,g,"⇕","\\Updownarrow",!0),e(n,a,c,"∐","\\coprod"),e(n,a,c,"⋁","\\bigvee"),e(n,a,c,"⋀","\\bigwedge"),e(n,a,c,"⨄","\\biguplus"),e(n,a,c,"⋂","\\bigcap"),e(n,a,c,"⋃","\\bigcup"),e(n,a,c,"∫","\\int"),e(n,a,c,"∫","\\intop"),e(n,a,c,"∬","\\iint"),e(n,a,c,"∭","\\iiint"),e(n,a,c,"∏","\\prod"),e(n,a,c,"∑","\\sum"),e(n,a,c,"⨂","\\bigotimes"),e(n,a,c,"⨁","\\bigoplus"),e(n,a,c,"⨀","\\bigodot"),e(n,a,c,"∮","\\oint"),e(n,a,c,"∯","\\oiint"),e(n,a,c,"∰","\\oiiint"),e(n,a,c,"⨆","\\bigsqcup"),e(n,a,c,"∫","\\smallint"),e(i,a,it,"…","\\textellipsis"),e(n,a,it,"…","\\mathellipsis"),e(i,a,it,"…","\\ldots",!0),e(n,a,it,"…","\\ldots",!0),e(n,a,it,"⋯","\\@cdots",!0),e(n,a,it,"⋱","\\ddots",!0),e(n,a,x,"⋮","\\varvdots"),e(n,a,s,"ˊ","\\acute"),e(n,a,s,"ˋ","\\grave"),e(n,a,s,"¨","\\ddot"),e(n,a,s,"~","\\tilde"),e(n,a,s,"ˉ","\\bar"),e(n,a,s,"˘","\\breve"),e(n,a,s,"ˇ","\\check"),e(n,a,s,"^","\\hat"),e(n,a,s,"⃗","\\vec"),e(n,a,s,"˙","\\dot"),e(n,a,s,"˚","\\mathring"),e(n,a,m,"","\\@imath"),e(n,a,m,"","\\@jmath"),e(n,a,x,"ı","ı"),e(n,a,x,"ȷ","ȷ"),e(i,a,x,"ı","\\i",!0),e(i,a,x,"ȷ","\\j",!0),e(i,a,x,"ß","\\ss",!0),e(i,a,x,"æ","\\ae",!0),e(i,a,x,"œ","\\oe",!0),e(i,a,x,"ø","\\o",!0),e(i,a,x,"Æ","\\AE",!0),e(i,a,x,"Œ","\\OE",!0),e(i,a,x,"Ø","\\O",!0),e(i,a,s,"ˊ","\\'"),e(i,a,s,"ˋ","\\`"),e(i,a,s,"ˆ","\\^"),e(i,a,s,"˜","\\~"),e(i,a,s,"ˉ","\\="),e(i,a,s,"˘","\\u"),e(i,a,s,"˙","\\."),e(i,a,s,"¸","\\c"),e(i,a,s,"˚","\\r"),e(i,a,s,"ˇ","\\v"),e(i,a,s,"¨",'\\"'),e(i,a,s,"˝","\\H"),e(i,a,s,"◯","\\textcircled"),{"--":!0,"---":!0,"``":!0,"''":!0});e(i,a,x,"–","--",!0),e(i,a,x,"–","\\textendash"),e(i,a,x,"—","---",!0),e(i,a,x,"—","\\textemdash"),e(i,a,x,"‘","`",!0),e(i,a,x,"‘","\\textquoteleft"),e(i,a,x,"’","'",!0),e(i,a,x,"’","\\textquoteright"),e(i,a,x,"“","``",!0),e(i,a,x,"“","\\textquotedblleft"),e(i,a,x,"”","''",!0),e(i,a,x,"”","\\textquotedblright"),e(n,a,x,"°","\\degree",!0),e(i,a,x,"°","\\degree"),e(i,a,x,"°","\\textdegree",!0),e(n,a,x,"£","\\pounds"),e(n,a,x,"£","\\mathsterling",!0),e(i,a,x,"£","\\pounds"),e(i,a,x,"£","\\textsterling",!0),e(n,o,x,"✠","\\maltese"),e(i,o,x,"✠","\\maltese");for(var ot='0123456789/@."',st=0;st<14;st++){var lt=ot[0|st]||"";e(n,a,x,lt,lt)}for(var ht='0123456789!@*()-=+";:?/.,',mt=0;mt<25;mt++){var ct=ht[0|mt]||"";e(i,a,x,ct,ct)}for(var ut="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",pt=0;pt<52;pt++){var dt=ut[0|pt]||"";e(n,a,m,dt,dt),e(i,a,x,dt,dt)}e(n,o,x,"C","ℂ"),e(i,o,x,"C","ℂ"),e(n,o,x,"H","ℍ"),e(i,o,x,"H","ℍ"),e(n,o,x,"N","ℕ"),e(i,o,x,"N","ℕ"),e(n,o,x,"P","ℙ"),e(i,o,x,"P","ℙ"),e(n,o,x,"Q","ℚ"),e(i,o,x,"Q","ℚ"),e(n,o,x,"R","ℝ"),e(i,o,x,"R","ℝ"),e(n,o,x,"Z","ℤ"),e(i,o,x,"Z","ℤ"),e(n,a,m,"h","ℎ"),e(i,a,m,"h","ℎ");for(var v="",w=0;w<52;w++){var k=ut[0|w]||"";e(n,a,m,k,v=String.fromCharCode(55349,56320+w)),e(i,a,x,k,v),e(n,a,m,k,v=String.fromCharCode(55349,56372+w)),e(i,a,x,k,v),e(n,a,m,k,v=String.fromCharCode(55349,56424+w)),e(i,a,x,k,v),e(n,a,m,k,v=String.fromCharCode(55349,56580+w)),e(i,a,x,k,v),e(n,a,m,k,v=String.fromCharCode(55349,56736+w)),e(i,a,x,k,v),e(n,a,m,k,v=String.fromCharCode(55349,56788+w)),e(i,a,x,k,v),e(n,a,m,k,v=String.fromCharCode(55349,56840+w)),e(i,a,x,k,v),e(n,a,m,k,v=String.fromCharCode(55349,56944+w)),e(i,a,x,k,v),w<26&&(e(n,a,m,k,v=String.fromCharCode(55349,56632+w)),e(i,a,x,k,v),e(n,a,m,k,v=String.fromCharCode(55349,56476+w)),e(i,a,x,k,v))}e(n,a,m,"k",v="𝕜"),e(i,a,x,"k",v);for(var ft=0;ft<10;ft++){var gt=ft.toString();e(n,a,m,gt,v=String.fromCharCode(55349,57294+ft)),e(i,a,x,gt,v),e(n,a,m,gt,v=String.fromCharCode(55349,57314+ft)),e(i,a,x,gt,v),e(n,a,m,gt,v=String.fromCharCode(55349,57324+ft)),e(i,a,x,gt,v),e(n,a,m,gt,v=String.fromCharCode(55349,57334+ft)),e(i,a,x,gt,v)}for(var yt=0;yt<3;yt++){var bt="ÐÞþ"[0|yt]||"";e(n,a,m,bt,bt),e(i,a,x,bt,bt)}function xt(e,t,r){return{value:e=p[r][e]&&p[r][e].replace?p[r][e].replace:e,metrics:C(e,t,r)}}function vt(e,t,r,n,i){var a=(t=xt(e,t,r)).metrics;return e=t.value,r=a?(t=a.italic,("text"===r||n&&"mathit"===n.font)&&(t=0),new b(e,a.height,a.depth,t,a.skew,a.width,i)):new b(e,0,0,0,0,0,i),n&&(r.maxFontSize=n.sizeMultiplier,n.style.isTight()&&r.classes.push("mtight"),t=n.getColor())&&(r.style.color=t),r}function wt(e){for(var t=0,r=0,n=0,i=0;it&&(t=a.height),a.depth>r&&(r=a.depth),a.maxFontSize>n&&(n=a.maxFontSize)}e.height=t,e.depth=r,e.maxFontSize=n}function S(e,t,r,n){return e=new Ve(e,t,r,n),wt(e),e}function kt(e,t,r,n){return new Ve(e,t,r,n)}function St(e){return e=new Se(e),wt(e),e}function Mt(e,t,r){var n="";switch(e){case"amsrm":n="AMS";break;case"textrm":n="Main";break;case"textsf":n="SansSerif";break;case"texttt":n="Typewriter";break;default:n=e}return n+"-"+("textbf"===t&&"textit"===r?"BoldItalic":"textbf"===t?"Bold":"textit"===t?"Italic":"Regular")}function zt(e){return"ordgroup"===e.type&&1===e.body.length?e.body[0]:e}function M(e){return"ordgroup"===e.type?e.body:[e]}function ee(e,t,r,n){void 0===n&&(n=[null,null]);for(var i,a,o=[],s=0;s"},u.toText=function(){return this.children.map(function(e){return e.toText()}).join("")},Qt),Zt=((h=Jt.prototype).toNode=function(){return document.createTextNode(this.text)},h.toMarkup=function(){return Z.escape(this.toText())},h.toText=function(){return this.text},Jt),z={MathNode:jt,TextNode:Zt,SpaceNode:((g=Kt.prototype).toNode=function(){var e;return this.character?document.createTextNode(this.character):((e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace")).setAttribute("width",Q(this.width)),e)},g.toMarkup=function(){return this.character?""+this.character+"":''},g.toText=function(){return this.character||" "},Kt),newDocumentFragment:O},A=function(e,t,r){var n;if(1===e.length)return n=T(e[0],t),r&&n instanceof jt&&"mo"===n.type&&(n.setAttribute("lspace","0em"),n.setAttribute("rspace","0em")),[n];for(var i,a=[],o=0;o but got "+e+".")}(re(e,t)),e.base=r):s=(r=d(e,"accent")).base;var r,n,e=re(s,t.havingCrampedStyle()),i=0;r.isShifty&&Z.isCharacterBox(s)&&(s=Z.getBaseElem(s),i=q(re(s,t.havingCrampedStyle())).skew);var a,o,s="\\c"===r.label,l=s?e.height+e.depth:Math.min(e.height,t.fontMetrics().xHeight),h=r.isStretchy?(h=r0(r,t),te.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:e},{type:"elem",elem:h,wrapperClasses:["svg-align"],wrapperStyle:0"!==e&&"\\gt"!==e&&"⟩"!==e||(e="\\rangle"),c=Z.contains(E0,e)?D0:Z.contains(R0,e)?P0:L0;var o,s,l,h,m,c=x0(e,t,c,n);return"small"===c.type?(o=e,s=c.style,l=r,h=n,m=a,o=te.makeSymbol(o,"Main-Regular",i,h),o=u0(o,s,h,m),l&&p0(o,h,s),o):"large"===c.type?d0(e,c.size,r,n,i,a):y0(e,t,r,n,i,a)}function w0(e,t){var r,n,i,a,o,s,l,h,m=te.wrapFragment(re(e.body,t),t),c=e.label.substr(1),u=t.sizeMultiplier,p=0,d=Z.isCharacterBox(e.body);return"sout"==c?((r=te.makeSpan(["stretchy","sout"])).height=t.fontMetrics().defaultRuleThickness/u,p=-.5*t.fontMetrics().xHeight):"phase"==c?(n=J({number:.6,unit:"pt"},t),o=J({number:.35,unit:"ex"},t),u/=t.havingBaseSizing().sizeMultiplier,i=m.height+m.depth+n+o,m.style.paddingLeft=Q(i/2+n),u=new We([new Xe("phase","M400000 "+(u=Math.floor(1e3*i*u))+" H0 L"+u/2+" 0 l65 45 L145 "+(u-80)+" H400000z")],{width:"400em",height:Q(u/1e3),viewBox:"0 0 400000 "+u,preserveAspectRatio:"xMinYMin slice"}),(r=te.makeSvgSpan(["hide-tail"],[u],t)).style.height=Q(i),p=m.depth+n+o):(/cancel/.test(c)?d||m.classes.push("cancel-pad"):"angl"==c?m.classes.push("anglpad"):m.classes.push("boxpad"),n=i=u=0,i=/box/.test(c)?(n=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness),u=t.fontMetrics().fboxsep+("colorbox"==c?0:n)):"angl"==c?(u=4*(n=Math.max(t.fontMetrics().defaultRuleThickness,t.minRuleThickness)),Math.max(0,.25-m.depth)):u=d?.2:0,o=c,u=u,h=i,s=t,a=(a=m).height+a.depth+u+h,/fbox|color|angl/.test(o)?(l=te.makeSpan(["stretchy",o],[],s),"fbox"===o&&(u=s.color&&s.getColor())&&(l.style.borderColor=u)):(h=[],/^[bx]cancel$/.test(o)&&h.push(new _e({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(o)&&h.push(new _e({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"})),u=new We(h,{width:"100%",height:Q(a)}),l=te.makeSvgSpan([],[u],s)),l.height=a,l.style.height=Q(a),r=l,/fbox|boxed|fcolorbox/.test(c)?(r.style.borderStyle="solid",r.style.borderWidth=Q(n)):"angl"==c&&.049!==n&&(r.style.borderTopWidth=Q(n),r.style.borderRightWidth=Q(n)),p=m.depth+i,e.backgroundColor&&(r.style.backgroundColor=e.backgroundColor,e.borderColor)&&(r.style.borderColor=e.borderColor)),h=e.backgroundColor?te.makeVList({positionType:"individualShift",children:[{type:"elem",elem:r,shift:p},{type:"elem",elem:m,shift:0}]},t):te.makeVList({positionType:"individualShift",children:[{type:"elem",elem:m,shift:0},{type:"elem",elem:r,shift:p,wrapperClasses:/cancel|phase/.test(c)?["svg-align"]:[]}]},t),/cancel/.test(c)&&(h.height=m.height,h.depth=m.depth),/cancel/.test(c)&&!d?te.makeSpan(["mord","cancel-lap"],[h],t):te.makeSpan(["mord"],[h],t)}function k0(e,t){var r=new z.MathNode(~e.label.indexOf("colorbox")?"mpadded":"menclose",[T(e.body,t)]);switch(e.label){case"\\cancel":r.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":r.setAttribute("notation","downdiagonalstrike");break;case"\\phase":r.setAttribute("notation","phasorangle");break;case"\\sout":r.setAttribute("notation","horizontalstrike");break;case"\\fbox":r.setAttribute("notation","box");break;case"\\angl":r.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":var n=t.fontMetrics().fboxsep*t.fontMetrics().ptPerEm;r.setAttribute("width","+"+2*n+"pt"),r.setAttribute("height","+"+2*n+"pt"),r.setAttribute("lspace",n+"pt"),r.setAttribute("voffset",n+"pt"),"\\fcolorbox"===e.label&&(n=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness),r.setAttribute("style","border: "+n+"em solid "+e.borderColor));break;case"\\xcancel":r.setAttribute("notation","updiagonalstrike downdiagonalstrike")}return e.backgroundColor&&r.setAttribute("mathbackground",e.backgroundColor),r}var S0=function(e){return new Le({style:e.displayMode?K.DISPLAY:K.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},M0=function(e,t){var r;return t.displayMode&&(r=["katex-display"],t.leqno&&r.push("leqno"),t.fleqn&&r.push("fleqn"),e=te.makeSpan(r,[e])),e},z0={widehat:"^",widecheck:"ˇ",widetilde:"~",utilde:"~",overleftarrow:"←",underleftarrow:"←",xleftarrow:"←",overrightarrow:"→",underrightarrow:"→",xrightarrow:"→",underbrace:"⏟",overbrace:"⏞",overgroup:"⏠",undergroup:"⏡",overleftrightarrow:"↔",underleftrightarrow:"↔",xleftrightarrow:"↔",Overrightarrow:"⇒",xRightarrow:"⇒",overleftharpoon:"↼",xleftharpoonup:"↼",overrightharpoon:"⇀",xrightharpoonup:"⇀",xLeftarrow:"⇐",xLeftrightarrow:"⇔",xhookleftarrow:"↩",xhookrightarrow:"↪",xmapsto:"↦",xrightharpoondown:"⇁",xleftharpoondown:"↽",xrightleftharpoons:"⇌",xleftrightharpoons:"⇋",xtwoheadleftarrow:"↞",xtwoheadrightarrow:"↠",xlongequal:"=",xtofrom:"⇄",xrightleftarrows:"⇄",xrightequilibrium:"⇌",xleftequilibrium:"⇋","\\cdrightarrow":"→","\\cdleftarrow":"←","\\cdlongequal":"="},A0={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},T0=RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(function(e){return"\\"+e}).join("|")),B0=(t({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:function(e,t){var t=zt(t[0]),r=!T0.test(e.funcName),n=!r||"\\widehat"===e.funcName||"\\widetilde"===e.funcName||"\\widecheck"===e.funcName;return{type:"accent",mode:e.parser.mode,label:e.funcName,isStretchy:r,isShifty:n,base:t}},htmlBuilder:n0,mathmlBuilder:i0}),t({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:function(e,t){var t=t[0],r=e.parser.mode;return"math"===r&&(e.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+e.funcName+" works only in text mode"),r="text"),{type:"accent",mode:r,label:e.funcName,isStretchy:!1,isShifty:!0,base:t}},htmlBuilder:n0,mathmlBuilder:i0}),t({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:function(e,t){var r=e.parser,e=e.funcName,t=t[0];return{type:"accentUnder",mode:r.mode,label:e,base:t}},htmlBuilder:function(e,t){var r=re(e.base,t),n=r0(e,t),e="\\utilde"===e.label?.12:0,n=te.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:e},{type:"elem",elem:r}]},t);return te.makeSpan(["mord","accentunder"],[n],t)},mathmlBuilder:function(e,t){var r=t0(e.label),e=new z.MathNode("munder",[T(e.base,t),r]);return e.setAttribute("accentunder","true"),e}}),t({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler:function(e,t,r){var n=e.parser,e=e.funcName;return{type:"xArrow",mode:n.mode,label:e,body:t[0],below:r[0]}},htmlBuilder:function(e,t){var r=t.style,n=t.havingStyle(r.sup()),i=te.wrapFragment(re(e.body,n,t),t),a="\\x"===e.label.slice(0,2)?"x":"cd";i.classes.push(a+"-arrow-pad"),e.below&&(n=t.havingStyle(r.sub()),(o=te.wrapFragment(re(e.below,n,t),t)).classes.push(a+"-arrow-pad"));var o,r=r0(e,t),n=-t.fontMetrics().axisHeight+.5*r.height,a=-t.fontMetrics().axisHeight-.5*r.height-.111;return i.depth<=.25&&"\\xleftequilibrium"!==e.label||(a-=i.depth),(o=o?(e=-t.fontMetrics().axisHeight+o.height+.5*r.height+.111,te.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:a},{type:"elem",elem:r,shift:n},{type:"elem",elem:o,shift:e}]},t)):te.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:a},{type:"elem",elem:r,shift:n}]},t)).children[0].children[0].children[1].classes.push("svg-align"),te.makeSpan(["mrel","x-arrow"],[o],t)},mathmlBuilder:function(e,t){var r,n,i,a=t0(e.label);return a.setAttribute("minsize","x"==(e.label[0]||"")?"1.75em":"3.0em"),n=e.body?(r=a0(T(e.body,t)),e.below?(i=a0(T(e.below,t)),new z.MathNode("munderover",[a,i,r])):new z.MathNode("mover",[a,r])):e.below?(i=a0(T(e.below,t)),new z.MathNode("munder",[a,i])):(n=a0(),new z.MathNode("mover",[a,n]))}}),{">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"}),C0=(t({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler:function(e,t){var r=e.parser,e=e.funcName;return{type:"cdlabel",mode:r.mode,side:e.slice(4),label:t[0]}},htmlBuilder:function(e,t){var r=t.havingStyle(t.style.sup()),r=te.wrapFragment(re(e.label,r,t),t);return r.classes.push("cd-label-"+e.side),r.style.bottom=Q(.8-r.depth),r.height=0,r.depth=0,r},mathmlBuilder:function(e,t){t=new z.MathNode("mrow",[T(e.label,t)]);return(t=new z.MathNode("mpadded",[t])).setAttribute("width","0"),"left"===e.side&&t.setAttribute("lspace","-1width"),t.setAttribute("voffset","0.7em"),(t=new z.MathNode("mstyle",[t])).setAttribute("displaystyle","false"),t.setAttribute("scriptlevel","1"),t}}),t({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler:function(e,t){return{type:"cdlabelparent",mode:e.parser.mode,fragment:t[0]}},htmlBuilder:function(e,t){e=te.wrapFragment(re(e.fragment,t),t);return e.classes.push("cd-vert-arrow"),e},mathmlBuilder:function(e,t){return new z.MathNode("mrow",[T(e.fragment,t)])}}),t({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler:function(e,t){for(var e=e.parser,r=d(t[0],"ordgroup").body,n="",i=0;i>10),56320+(1023&t)):String.fromCharCode(t),{type:"textord",mode:e.mode,text:t}}}),t({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler:function(e,t){var e=e.parser,r=d(t[0],"color-token").color,t=t[1];return{type:"color",mode:e.mode,color:r,body:M(t)}},htmlBuilder:s0,mathmlBuilder:l0}),t({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler:function(e,t){var r=e.parser,e=e.breakOnTokenText,t=d(t[0],"color-token").color,e=(r.gullet.macros.set("\\current@color",t),r.parseExpression(!0,e));return{type:"color",mode:r.mode,color:t,body:e}},htmlBuilder:s0,mathmlBuilder:l0}),t({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:1,argTypes:["size"],allowedInText:!0},handler:function(e,t,r){var e=e.parser,r=r[0],n=!e.settings.displayMode||!e.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:e.mode,newLine:n,size:r&&d(r,"size").value}},htmlBuilder:function(e,t){var r=te.makeSpan(["mspace"],[],t);return e.newLine&&(r.classes.push("newline"),e.size)&&(r.style.marginTop=Q(J(e.size,t))),r},mathmlBuilder:function(e,t){var r=new z.MathNode("mspace");return e.newLine&&(r.setAttribute("linebreak","newline"),e.size)&&r.setAttribute("height",Q(J(e.size,t))),r}}),{"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"}),q0=(t({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler:function(e){var t=e.parser,e=e.funcName,r=(t.consumeSpaces(),t.fetch());if(C0[r.text])return"\\global"!==e&&"\\\\globallong"!==e||(r.text=C0[r.text]),d(t.parseFunction(),"internal");throw new j("Invalid token after macro prefix",r)}}),t({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e){var t=e.parser,e=e.funcName,r=t.gullet.popToken(),n=r.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(n))throw new j("Expected a control sequence",r);for(var i,a=0,o=[[]];"{"!==t.gullet.future().text;)if("#"===(r=t.gullet.popToken()).text){if("{"===t.gullet.future().text){i=t.gullet.future(),o[a].push("{");break}if(r=t.gullet.popToken(),!/^[1-9]$/.test(r.text))throw new j('Invalid argument number "'+r.text+'"');if(parseInt(r.text)!==a+1)throw new j('Argument number "'+r.text+'" out of order');a++,o.push([])}else{if("EOF"===r.text)throw new j("Expected a macro definition");o[a].push(r.text)}var s=t.gullet.consumeArg().tokens;return i&&s.unshift(i),"\\edef"!==e&&"\\xdef"!==e||(s=t.gullet.expandTokens(s)).reverse(),t.gullet.macros.set(n,{tokens:s,numArgs:a,delimiters:o},e===C0[e]),{type:"internal",mode:t.mode}}}),t({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e){var t,r,n=e.parser,e=e.funcName,i=h0(n.gullet.popToken());n.gullet.consumeSpaces(),r="="===(r=(t=n).gullet.popToken()).text&&" "===(r=t.gullet.popToken()).text?t.gullet.popToken():r;return m0(n,i,r,"\\\\globallet"===e),{type:"internal",mode:n.mode}}}),t({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e){var t=e.parser,e=e.funcName,r=h0(t.gullet.popToken()),n=t.gullet.popToken(),i=t.gullet.popToken();return m0(t,r,i,"\\\\globalfuture"===e),t.gullet.pushToken(i),t.gullet.pushToken(n),{type:"internal",mode:t.mode}}}),{type:"kern",size:-.008}),N0=["|","\\lvert","\\rvert","\\vert"],I0=["\\|","\\lVert","\\rVert","\\Vert"],R0=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","\\surd"],O0=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱"],E0=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],H0=[0,1.2,1.8,2.4,3],D0=[{type:"small",style:K.SCRIPTSCRIPT},{type:"small",style:K.SCRIPT},{type:"small",style:K.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],L0=[{type:"small",style:K.SCRIPTSCRIPT},{type:"small",style:K.SCRIPT},{type:"small",style:K.TEXT},{type:"stack"}],P0=[{type:"small",style:K.SCRIPTSCRIPT},{type:"small",style:K.SCRIPT},{type:"small",style:K.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],F0={sqrtImage:function(e,t){var r,n=t.havingBaseSizing(),i=x0("\\surd",e*n.sizeMultiplier,P0,n),n=n.sizeMultiplier,a=Math.max(0,t.minRuleThickness-t.fontMetrics().sqrtRuleThickness),o=0,s=0,l=0,i="small"===i.type?(e<1?n=1:e<1.4&&(n=.7),s=(1+a)/n,(r=b0("sqrtMain",o=(1.08+a)/n,l=1080+1e3*a,a,t)).style.minWidth="0.853em",.833/n):"large"===i.type?(l=1080*H0[i.size],s=(H0[i.size]+a)/n,o=(H0[i.size]+a+.08)/n,(r=b0("sqrtSize"+i.size,o,l,a,t)).style.minWidth="1.02em",1/n):((r=b0("sqrtTall",o=(s=e+a)+.08,l=80+Math.floor(1e3*e+a),a,t)).style.minWidth="0.742em",1.056);return r.height=s,r.style.height=Q(o),{span:r,advanceWidth:i,ruleWidth:(t.fontMetrics().sqrtRuleThickness+a)*n}},sizedDelim:function(e,t,r,n,i){if("<"===e||"\\lt"===e||"⟨"===e?e="\\langle":">"!==e&&"\\gt"!==e&&"⟩"!==e||(e="\\rangle"),Z.contains(R0,e)||Z.contains(E0,e))return d0(e,t,!1,r,n,i);if(Z.contains(O0,e))return y0(e,H0[t],!1,r,n,i);throw new j("Illegal delimiter: '"+e+"'")},sizeToMaxHeight:H0,customSizedDelim:v0,leftRightDelim:function(e,t,r,n,i,a){var o=n.fontMetrics().axisHeight*n.sizeMultiplier,s=5/n.fontMetrics().ptPerEm,t=Math.max(t-o,r+o);return v0(e,Math.max(t/500*901,2*t-s),!0,n,i,a)}},V0={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},G0=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","<",">","\\langle","⟨","\\rangle","⟩","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."],U0=(t({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:function(e,t){t=L(t[0],e);return{type:"delimsizing",mode:e.parser.mode,size:V0[e.funcName].size,mclass:V0[e.funcName].mclass,delim:t.text}},htmlBuilder:function(e,t){return"."===e.delim?te.makeSpan([e.mclass]):F0.sizedDelim(e.delim,e.size,t,e.mode,[e.mclass])},mathmlBuilder:function(e){var t=[],t=("."!==e.delim&&t.push(Bt(e.delim,e.mode)),new z.MathNode("mo",t)),e=("mopen"===e.mclass||"mclose"===e.mclass?t.setAttribute("fence","true"):t.setAttribute("fence","false"),t.setAttribute("stretchy","true"),Q(F0.sizeToMaxHeight[e.size]));return t.setAttribute("minsize",e),t.setAttribute("maxsize",e),t}}),t({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:function(e,t){var r=e.parser.gullet.macros.get("\\current@color");if(r&&"string"!=typeof r)throw new j("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:e.parser.mode,delim:L(t[0],e).text,color:r}}}),t({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:function(e,t){var t=L(t[0],e),e=e.parser,r=(++e.leftrightDepth,e.parseExpression(!1)),n=(--e.leftrightDepth,e.expect("\\right",!1),d(e.parseFunction(),"leftright-right"));return{type:"leftright",mode:e.mode,body:r,left:t.text,right:n.delim,rightColor:n.color}},htmlBuilder:function(e,t){P(e);for(var r,n=ee(e.body,t,!0,["mopen","mclose"]),i=0,a=0,o=!1,s=0;sf){for(var q=void 0,N=((0AV".indexOf(c))throw new j('Expected one of "<>AV=|." after @',l[m]);for(var p=0;p<2;p++){for(var d=!0,f=m+1;fr.height+r.depth+i&&(i=(i+s-r.height-r.depth)/2),a.height-r.height-i-o),i=(r.style.paddingLeft=Q(n),te.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+s)},{type:"elem",elem:a},{type:"kern",size:o}]},t));return e.index?(n=t.havingStyle(K.SCRIPTSCRIPT),r=re(e.index,n,t),s=.6*(i.height-i.depth),a=te.makeVList({positionType:"shift",positionData:-s,children:[{type:"elem",elem:r}]},t),o=te.makeSpan(["root"],[a]),te.makeSpan(["mord","sqrt"],[o,i],t)):te.makeSpan(["mord","sqrt"],[i],t)},mathmlBuilder:function(e,t){var r=e.body,e=e.index;return e?new z.MathNode("mroot",[T(r,t),T(e,t)]):new z.MathNode("msqrt",[T(r,t)])}}),{display:K.DISPLAY,text:K.TEXT,script:K.SCRIPT,scriptscript:K.SCRIPTSCRIPT}),zr=(t({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e,t){var r=e.breakOnTokenText,n=e.funcName,e=e.parser,r=e.parseExpression(!0,r),n=n.slice(1,n.length-5);return{type:"styling",mode:e.mode,style:n,body:r}},htmlBuilder:function(e,t){var r=Mr[e.style],r=t.havingStyle(r).withFont("");return _(e.body,r,t)},mathmlBuilder:function(e,t){var r=Mr[e.style],t=t.havingStyle(r),r=A(e.body,t),t=new z.MathNode("mstyle",r),r={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]}[e.style];return t.setAttribute("scriptlevel",r[0]),t.setAttribute("displaystyle",r[1]),t}}),N({type:"supsub",htmlBuilder:function(e,t){r=t;var r=(o=(a=e).base)?"op"===o.type?o.limits&&(r.style.size===K.DISPLAY.size||o.alwaysHandleSupSub)?mr:null:"operatorname"===o.type?o.alwaysHandleSupSub&&(r.style.size===K.DISPLAY.size||o.limits)?ur:null:"accent"===o.type?Z.isCharacterBox(o.base)?n0:null:"horizBrace"===o.type&&!a.sub===o.isOver?or:null:null;if(r)return r(e,t);var n,i,a=e.base,o=e.sup,r=e.sub,s=re(a,t),l=t.fontMetrics(),h=0,m=0,a=a&&Z.isCharacterBox(a),c=(o&&(c=t.havingStyle(t.style.sup()),n=re(o,c,t),a||(h=s.height-c.fontMetrics().supDrop*c.sizeMultiplier/t.sizeMultiplier)),r&&(o=t.havingStyle(t.style.sub()),i=re(r,o,t),a||(m=s.depth+o.fontMetrics().subDrop*o.sizeMultiplier/t.sizeMultiplier)),t.style===K.DISPLAY?l.sup1:t.style.cramped?l.sup3:l.sup2),r=t.sizeMultiplier,a=Q(.5/l.ptPerEm/r),o=null;if(i&&(r=e.base&&"op"===e.base.type&&e.base.name&&("\\oiint"===e.base.name||"\\oiiint"===e.base.name),s instanceof b||r)&&(o=Q(-s.italic)),n&&i){h=Math.max(h,c,n.depth+.25*l.xHeight),m=Math.max(m,l.sub2);e=4*l.defaultRuleThickness;h-n.depth-(i.height-m)":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"}),Ur=(r("\\dots",function(e){var t="\\dotso",e=e.expandAfterFuture().text;return e in Gr?t=Gr[e]:("\\not"==e.substr(0,4)||e in p.math&&Z.contains(["bin","rel"],p.math[e].group))&&(t="\\dotsb"),t}),{")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0}),s=(r("\\dotso",function(e){return e.future().text in Ur?"\\ldots\\,":"\\ldots"}),r("\\dotsc",function(e){e=e.future().text;return e in Ur&&","!==e?"\\ldots\\,":"\\ldots"}),r("\\cdots",function(e){return e.future().text in Ur?"\\@cdots\\,":"\\@cdots"}),r("\\dotsb","\\cdots"),r("\\dotsm","\\cdots"),r("\\dotsi","\\!\\cdots"),r("\\dotsx","\\ldots\\,"),r("\\DOTSI","\\relax"),r("\\DOTSB","\\relax"),r("\\DOTSX","\\relax"),r("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax"),r("\\,","\\tmspace+{3mu}{.1667em}"),r("\\thinspace","\\,"),r("\\>","\\mskip{4mu}"),r("\\:","\\tmspace+{4mu}{.2222em}"),r("\\medspace","\\:"),r("\\;","\\tmspace+{5mu}{.2777em}"),r("\\thickspace","\\;"),r("\\!","\\tmspace-{3mu}{.1667em}"),r("\\negthinspace","\\!"),r("\\negmedspace","\\tmspace-{4mu}{.2222em}"),r("\\negthickspace","\\tmspace-{5mu}{.277em}"),r("\\enspace","\\kern.5em "),r("\\enskip","\\hskip.5em\\relax"),r("\\quad","\\hskip1em\\relax"),r("\\qquad","\\hskip2em\\relax"),r("\\tag","\\@ifstar\\tag@literal\\tag@paren"),r("\\tag@paren","\\tag@literal{({#1})}"),r("\\tag@literal",function(e){if(e.macros.get("\\df@tag"))throw new j("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"}),r("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}"),r("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)"),r("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}"),r("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1"),r("\\pmb","\\html@mathml{\\@binrel{#1}{\\mathrlap{#1}\\kern0.5px#1}}{\\mathbf{#1}}"),r("\\newline","\\\\\\relax"),r("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}"),Q(Me["Main-Regular"][84][1]-.7*Me["Main-Regular"][65][1])),Yr=(r("\\LaTeX","\\textrm{\\html@mathml{L\\kern-.36em\\raisebox{"+s+"}{\\scriptstyle A}\\kern-.15em\\TeX}{LaTeX}}"),r("\\KaTeX","\\textrm{\\html@mathml{K\\kern-.17em\\raisebox{"+s+"}{\\scriptstyle A}\\kern-.15em\\TeX}{KaTeX}}"),r("\\hspace","\\@ifstar\\@hspacer\\@hspace"),r("\\@hspace","\\hskip #1\\relax"),r("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax"),r("\\ordinarycolon",":"),r("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}"),r("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}'),r("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}'),r("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}'),r("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}'),r("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}'),r("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}'),r("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}'),r("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}'),r("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}'),r("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}'),r("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}'),r("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}'),r("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}'),r("∷","\\dblcolon"),r("∹","\\eqcolon"),r("≔","\\coloneqq"),r("≕","\\eqqcolon"),r("⩴","\\Coloneqq"),r("\\ratio","\\vcentcolon"),r("\\coloncolon","\\dblcolon"),r("\\colonequals","\\coloneqq"),r("\\coloncolonequals","\\Coloneqq"),r("\\equalscolon","\\eqqcolon"),r("\\equalscoloncolon","\\Eqqcolon"),r("\\colonminus","\\coloneq"),r("\\coloncolonminus","\\Coloneq"),r("\\minuscolon","\\eqcolon"),r("\\minuscoloncolon","\\Eqcolon"),r("\\coloncolonapprox","\\Colonapprox"),r("\\coloncolonsim","\\Colonsim"),r("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),r("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}"),r("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),r("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}"),r("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}"),r("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}"),r("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}"),r("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}"),r("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}"),r("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}"),r("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}"),r("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}"),r("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}"),r("\\gvertneqq","\\html@mathml{\\@gvertneqq}{≩}"),r("\\lvertneqq","\\html@mathml{\\@lvertneqq}{≨}"),r("\\ngeqq","\\html@mathml{\\@ngeqq}{≱}"),r("\\ngeqslant","\\html@mathml{\\@ngeqslant}{≱}"),r("\\nleqq","\\html@mathml{\\@nleqq}{≰}"),r("\\nleqslant","\\html@mathml{\\@nleqslant}{≰}"),r("\\nshortmid","\\html@mathml{\\@nshortmid}{∤}"),r("\\nshortparallel","\\html@mathml{\\@nshortparallel}{∦}"),r("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{⊈}"),r("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{⊉}"),r("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{⊊}"),r("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{⫋}"),r("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{⊋}"),r("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{⫌}"),r("\\imath","\\html@mathml{\\@imath}{ı}"),r("\\jmath","\\html@mathml{\\@jmath}{ȷ}"),r("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}"),r("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}"),r("⟦","\\llbracket"),r("⟧","\\rrbracket"),r("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}"),r("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}"),r("⦃","\\lBrace"),r("⦄","\\rBrace"),r("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}"),r("⦵","\\minuso"),r("\\darr","\\downarrow"),r("\\dArr","\\Downarrow"),r("\\Darr","\\Downarrow"),r("\\lang","\\langle"),r("\\rang","\\rangle"),r("\\uarr","\\uparrow"),r("\\uArr","\\Uparrow"),r("\\Uarr","\\Uparrow"),r("\\N","\\mathbb{N}"),r("\\R","\\mathbb{R}"),r("\\Z","\\mathbb{Z}"),r("\\alef","\\aleph"),r("\\alefsym","\\aleph"),r("\\Alpha","\\mathrm{A}"),r("\\Beta","\\mathrm{B}"),r("\\bull","\\bullet"),r("\\Chi","\\mathrm{X}"),r("\\clubs","\\clubsuit"),r("\\cnums","\\mathbb{C}"),r("\\Complex","\\mathbb{C}"),r("\\Dagger","\\ddagger"),r("\\diamonds","\\diamondsuit"),r("\\empty","\\emptyset"),r("\\Epsilon","\\mathrm{E}"),r("\\Eta","\\mathrm{H}"),r("\\exist","\\exists"),r("\\harr","\\leftrightarrow"),r("\\hArr","\\Leftrightarrow"),r("\\Harr","\\Leftrightarrow"),r("\\hearts","\\heartsuit"),r("\\image","\\Im"),r("\\infin","\\infty"),r("\\Iota","\\mathrm{I}"),r("\\isin","\\in"),r("\\Kappa","\\mathrm{K}"),r("\\larr","\\leftarrow"),r("\\lArr","\\Leftarrow"),r("\\Larr","\\Leftarrow"),r("\\lrarr","\\leftrightarrow"),r("\\lrArr","\\Leftrightarrow"),r("\\Lrarr","\\Leftrightarrow"),r("\\Mu","\\mathrm{M}"),r("\\natnums","\\mathbb{N}"),r("\\Nu","\\mathrm{N}"),r("\\Omicron","\\mathrm{O}"),r("\\plusmn","\\pm"),r("\\rarr","\\rightarrow"),r("\\rArr","\\Rightarrow"),r("\\Rarr","\\Rightarrow"),r("\\real","\\Re"),r("\\reals","\\mathbb{R}"),r("\\Reals","\\mathbb{R}"),r("\\Rho","\\mathrm{P}"),r("\\sdot","\\cdot"),r("\\sect","\\S"),r("\\spades","\\spadesuit"),r("\\sub","\\subset"),r("\\sube","\\subseteq"),r("\\supe","\\supseteq"),r("\\Tau","\\mathrm{T}"),r("\\thetasym","\\vartheta"),r("\\weierp","\\wp"),r("\\Zeta","\\mathrm{Z}"),r("\\argmin","\\DOTSB\\operatorname*{arg\\,min}"),r("\\argmax","\\DOTSB\\operatorname*{arg\\,max}"),r("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits"),r("\\bra","\\mathinner{\\langle{#1}|}"),r("\\ket","\\mathinner{|{#1}\\rangle}"),r("\\braket","\\mathinner{\\langle{#1}\\rangle}"),r("\\Bra","\\left\\langle#1\\right|"),r("\\Ket","\\left|#1\\right\\rangle"),r("\\bra@ket",Fr(!1)),r("\\bra@set",Fr(!0)),r("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}"),r("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}"),r("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}"),r("\\angln","{\\angl n}"),r("\\blue","\\textcolor{##6495ed}{#1}"),r("\\orange","\\textcolor{##ffa500}{#1}"),r("\\pink","\\textcolor{##ff00af}{#1}"),r("\\red","\\textcolor{##df0030}{#1}"),r("\\green","\\textcolor{##28ae7b}{#1}"),r("\\gray","\\textcolor{gray}{#1}"),r("\\purple","\\textcolor{##9d38bd}{#1}"),r("\\blueA","\\textcolor{##ccfaff}{#1}"),r("\\blueB","\\textcolor{##80f6ff}{#1}"),r("\\blueC","\\textcolor{##63d9ea}{#1}"),r("\\blueD","\\textcolor{##11accd}{#1}"),r("\\blueE","\\textcolor{##0c7f99}{#1}"),r("\\tealA","\\textcolor{##94fff5}{#1}"),r("\\tealB","\\textcolor{##26edd5}{#1}"),r("\\tealC","\\textcolor{##01d1c1}{#1}"),r("\\tealD","\\textcolor{##01a995}{#1}"),r("\\tealE","\\textcolor{##208170}{#1}"),r("\\greenA","\\textcolor{##b6ffb0}{#1}"),r("\\greenB","\\textcolor{##8af281}{#1}"),r("\\greenC","\\textcolor{##74cf70}{#1}"),r("\\greenD","\\textcolor{##1fab54}{#1}"),r("\\greenE","\\textcolor{##0d923f}{#1}"),r("\\goldA","\\textcolor{##ffd0a9}{#1}"),r("\\goldB","\\textcolor{##ffbb71}{#1}"),r("\\goldC","\\textcolor{##ff9c39}{#1}"),r("\\goldD","\\textcolor{##e07d10}{#1}"),r("\\goldE","\\textcolor{##a75a05}{#1}"),r("\\redA","\\textcolor{##fca9a9}{#1}"),r("\\redB","\\textcolor{##ff8482}{#1}"),r("\\redC","\\textcolor{##f9685d}{#1}"),r("\\redD","\\textcolor{##e84d39}{#1}"),r("\\redE","\\textcolor{##bc2612}{#1}"),r("\\maroonA","\\textcolor{##ffbde0}{#1}"),r("\\maroonB","\\textcolor{##ff92c6}{#1}"),r("\\maroonC","\\textcolor{##ed5fa6}{#1}"),r("\\maroonD","\\textcolor{##ca337c}{#1}"),r("\\maroonE","\\textcolor{##9e034e}{#1}"),r("\\purpleA","\\textcolor{##ddd7ff}{#1}"),r("\\purpleB","\\textcolor{##c6b9fc}{#1}"),r("\\purpleC","\\textcolor{##aa87ff}{#1}"),r("\\purpleD","\\textcolor{##7854ab}{#1}"),r("\\purpleE","\\textcolor{##543b78}{#1}"),r("\\mintA","\\textcolor{##f5f9e8}{#1}"),r("\\mintB","\\textcolor{##edf2df}{#1}"),r("\\mintC","\\textcolor{##e0e5cc}{#1}"),r("\\grayA","\\textcolor{##f6f7f7}{#1}"),r("\\grayB","\\textcolor{##f0f1f2}{#1}"),r("\\grayC","\\textcolor{##e3e5e6}{#1}"),r("\\grayD","\\textcolor{##d6d8da}{#1}"),r("\\grayE","\\textcolor{##babec2}{#1}"),r("\\grayF","\\textcolor{##888d93}{#1}"),r("\\grayG","\\textcolor{##626569}{#1}"),r("\\grayH","\\textcolor{##3b3e40}{#1}"),r("\\grayI","\\textcolor{##21242c}{#1}"),r("\\kaBlue","\\textcolor{##314453}{#1}"),r("\\kaGreen","\\textcolor{##71B307}{#1}"),{"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0}),Wr=((o=Jr.prototype).feed=function(e){this.lexer=new Or(e,this.settings)},o.switchMode=function(e){this.mode=e},o.beginGroup=function(){this.macros.beginGroup()},o.endGroup=function(){this.macros.endGroup()},o.endGroups=function(){this.macros.endGroups()},o.future=function(){return 0===this.stack.length&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]},o.popToken=function(){return this.future(),this.stack.pop()},o.pushToken=function(e){this.stack.push(e)},o.pushTokens=function(e){var t;(t=this.stack).push.apply(t,e)},o.scanArgument=function(e){if(e){if(this.consumeSpaces(),"["!==this.future().text)return null;var t=this.popToken(),e=this.consumeArg(["]"]),r=e.tokens,n=e.end}else{e=this.consumeArg();r=e.tokens,t=e.start,n=e.end}return this.pushToken(new X0("EOF",n.loc)),this.pushTokens(r),t.range(n,"")},o.consumeSpaces=function(){for(;" "===this.future().text;)this.stack.pop()},o.consumeArg=function(e){var t=[],r=e&&0this.settings.maxExpand)throw new j("Too many expansions: infinite loop or need to increase maxExpand setting");var i=n.tokens,a=this.consumeArgs(n.numArgs,n.delimiters);if(n.numArgs)for(var o=(i=i.slice()).length-1;0<=o;--o){var s=i[o];if("#"===s.text){if(0===o)throw new j("Incomplete placeholder at end of macro body",s);if("#"===(s=i[--o]).text)i.splice(o+1,1);else{if(!/^[1-9]$/.test(s.text))throw new j("Not a valid argument number",s);i.splice.apply(i,[o,2].concat(a[+s.text-1]))}}}return this.pushTokens(i),i},o.expandAfterFuture=function(){return this.expandOnce(),this.future()},o.expandNextToken=function(){for(;;){var e=this.expandOnce();if(e instanceof X0)return e.treatAsRelax&&(e.text="\\relax"),this.stack.pop()}throw Error()},o.expandMacro=function(e){return this.macros.has(e)?this.expandTokens([new X0(e)]):void 0},o.expandTokens=function(e){var t=[],r=this.stack.length;for(this.pushTokens(e);this.stack.length>r;){var n=this.expandOnce(!0);n instanceof X0&&(n.treatAsRelax&&(n.noexpand=!1,n.treatAsRelax=!1),t.push(this.stack.pop()))}return t},o.expandMacroAsText=function(e){e=this.expandMacro(e);return e&&e.map(function(e){return e.text}).join("")},o._getExpansion=function(e){var t=this.macros.get(e);if(null==t)return t;if(1===e.length){e=this.lexer.catcodes[e];if(null!=e&&13!==e)return}e="function"==typeof t?t(this):t;if("string"!=typeof e)return e;var r=0;if(~e.indexOf("#"))for(var n=e.replace(/##/g,"");~n.indexOf("#"+(r+1));)++r;for(var i=new Or(e,this.settings),a=[],o=i.lex();"EOF"!==o.text;)a.push(o),o=i.lex();return a.reverse(),{tokens:a,numArgs:r}},o.isDefined=function(e){return this.macros.has(e)||Ir.hasOwnProperty(e)||p.math.hasOwnProperty(e)||p.text.hasOwnProperty(e)||Yr.hasOwnProperty(e)},o.isExpandable=function(e){var t=this.macros.get(e);return null!=t?"string"==typeof t||"function"==typeof t||!t.unexpandable:Ir.hasOwnProperty(e)&&!Ir[e].primitive},Jr),Xr=/^[\u208a\u208b\u208c\u208d\u208e\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089\u2090\u2091\u2095\u1d62\u2c7c\u2096\u2097\u2098\u2099\u2092\u209a\u1d63\u209b\u209c\u1d64\u1d65\u2093\u1d66\u1d67\u1d68\u1d69\u1d6a]/,_r=Object.freeze({"₊":"+","₋":"-","₌":"=","₍":"(","₎":")","₀":"0","₁":"1","₂":"2","₃":"3","₄":"4","₅":"5","₆":"6","₇":"7","₈":"8","₉":"9","ₐ":"a","ₑ":"e","ₕ":"h","ᵢ":"i","ⱼ":"j","ₖ":"k","ₗ":"l","ₘ":"m","ₙ":"n","ₒ":"o","ₚ":"p","ᵣ":"r","ₛ":"s","ₜ":"t","ᵤ":"u","ᵥ":"v","ₓ":"x","ᵦ":"β","ᵧ":"γ","ᵨ":"ρ","ᵩ":"ϕ","ᵪ":"χ","⁺":"+","⁻":"-","⁼":"=","⁽":"(","⁾":")","⁰":"0","¹":"1","²":"2","³":"3","⁴":"4","⁵":"5","⁶":"6","⁷":"7","⁸":"8","⁹":"9","ᴬ":"A","ᴮ":"B","ᴰ":"D","ᴱ":"E","ᴳ":"G","ᴴ":"H","ᴵ":"I","ᴶ":"J","ᴷ":"K","ᴸ":"L","ᴹ":"M","ᴺ":"N","ᴼ":"O","ᴾ":"P","ᴿ":"R","ᵀ":"T","ᵁ":"U","ⱽ":"V","ᵂ":"W","ᵃ":"a","ᵇ":"b","ᶜ":"c","ᵈ":"d","ᵉ":"e","ᶠ":"f","ᵍ":"g","ʰ":"h","ⁱ":"i","ʲ":"j","ᵏ":"k","ˡ":"l","ᵐ":"m","ⁿ":"n","ᵒ":"o","ᵖ":"p","ʳ":"r","ˢ":"s","ᵗ":"t","ᵘ":"u","ᵛ":"v","ʷ":"w","ˣ":"x","ʸ":"y","ᶻ":"z","ᵝ":"β","ᵞ":"γ","ᵟ":"δ","ᵠ":"ϕ","ᵡ":"χ","ᶿ":"θ"}),$r={"́":{text:"\\'",math:"\\acute"},"̀":{text:"\\`",math:"\\grave"},"̈":{text:'\\"',math:"\\ddot"},"̃":{text:"\\~",math:"\\tilde"},"̄":{text:"\\=",math:"\\bar"},"̆":{text:"\\u",math:"\\breve"},"̌":{text:"\\v",math:"\\check"},"̂":{text:"\\^",math:"\\hat"},"̇":{text:"\\.",math:"\\dot"},"̊":{text:"\\r",math:"\\mathring"},"̋":{text:"\\H"},"̧":{text:"\\c"}},jr={"á":"á","à":"à","ä":"ä","ǟ":"ǟ","ã":"ã","ā":"ā","ă":"ă","ắ":"ắ","ằ":"ằ","ẵ":"ẵ","ǎ":"ǎ","â":"â","ấ":"ấ","ầ":"ầ","ẫ":"ẫ","ȧ":"ȧ","ǡ":"ǡ","å":"å","ǻ":"ǻ","ḃ":"ḃ","ć":"ć","ḉ":"ḉ","č":"č","ĉ":"ĉ","ċ":"ċ","ç":"ç","ď":"ď","ḋ":"ḋ","ḑ":"ḑ","é":"é","è":"è","ë":"ë","ẽ":"ẽ","ē":"ē","ḗ":"ḗ","ḕ":"ḕ","ĕ":"ĕ","ḝ":"ḝ","ě":"ě","ê":"ê","ế":"ế","ề":"ề","ễ":"ễ","ė":"ė","ȩ":"ȩ","ḟ":"ḟ","ǵ":"ǵ","ḡ":"ḡ","ğ":"ğ","ǧ":"ǧ","ĝ":"ĝ","ġ":"ġ","ģ":"ģ","ḧ":"ḧ","ȟ":"ȟ","ĥ":"ĥ","ḣ":"ḣ","ḩ":"ḩ","í":"í","ì":"ì","ï":"ï","ḯ":"ḯ","ĩ":"ĩ","ī":"ī","ĭ":"ĭ","ǐ":"ǐ","î":"î","ǰ":"ǰ","ĵ":"ĵ","ḱ":"ḱ","ǩ":"ǩ","ķ":"ķ","ĺ":"ĺ","ľ":"ľ","ļ":"ļ","ḿ":"ḿ","ṁ":"ṁ","ń":"ń","ǹ":"ǹ","ñ":"ñ","ň":"ň","ṅ":"ṅ","ņ":"ņ","ó":"ó","ò":"ò","ö":"ö","ȫ":"ȫ","õ":"õ","ṍ":"ṍ","ṏ":"ṏ","ȭ":"ȭ","ō":"ō","ṓ":"ṓ","ṑ":"ṑ","ŏ":"ŏ","ǒ":"ǒ","ô":"ô","ố":"ố","ồ":"ồ","ỗ":"ỗ","ȯ":"ȯ","ȱ":"ȱ","ő":"ő","ṕ":"ṕ","ṗ":"ṗ","ŕ":"ŕ","ř":"ř","ṙ":"ṙ","ŗ":"ŗ","ś":"ś","ṥ":"ṥ","š":"š","ṧ":"ṧ","ŝ":"ŝ","ṡ":"ṡ","ş":"ş","ẗ":"ẗ","ť":"ť","ṫ":"ṫ","ţ":"ţ","ú":"ú","ù":"ù","ü":"ü","ǘ":"ǘ","ǜ":"ǜ","ǖ":"ǖ","ǚ":"ǚ","ũ":"ũ","ṹ":"ṹ","ū":"ū","ṻ":"ṻ","ŭ":"ŭ","ǔ":"ǔ","û":"û","ů":"ů","ű":"ű","ṽ":"ṽ","ẃ":"ẃ","ẁ":"ẁ","ẅ":"ẅ","ŵ":"ŵ","ẇ":"ẇ","ẘ":"ẘ","ẍ":"ẍ","ẋ":"ẋ","ý":"ý","ỳ":"ỳ","ÿ":"ÿ","ỹ":"ỹ","ȳ":"ȳ","ŷ":"ŷ","ẏ":"ẏ","ẙ":"ẙ","ź":"ź","ž":"ž","ẑ":"ẑ","ż":"ż","Á":"Á","À":"À","Ä":"Ä","Ǟ":"Ǟ","Ã":"Ã","Ā":"Ā","Ă":"Ă","Ắ":"Ắ","Ằ":"Ằ","Ẵ":"Ẵ","Ǎ":"Ǎ","Â":"Â","Ấ":"Ấ","Ầ":"Ầ","Ẫ":"Ẫ","Ȧ":"Ȧ","Ǡ":"Ǡ","Å":"Å","Ǻ":"Ǻ","Ḃ":"Ḃ","Ć":"Ć","Ḉ":"Ḉ","Č":"Č","Ĉ":"Ĉ","Ċ":"Ċ","Ç":"Ç","Ď":"Ď","Ḋ":"Ḋ","Ḑ":"Ḑ","É":"É","È":"È","Ë":"Ë","Ẽ":"Ẽ","Ē":"Ē","Ḗ":"Ḗ","Ḕ":"Ḕ","Ĕ":"Ĕ","Ḝ":"Ḝ","Ě":"Ě","Ê":"Ê","Ế":"Ế","Ề":"Ề","Ễ":"Ễ","Ė":"Ė","Ȩ":"Ȩ","Ḟ":"Ḟ","Ǵ":"Ǵ","Ḡ":"Ḡ","Ğ":"Ğ","Ǧ":"Ǧ","Ĝ":"Ĝ","Ġ":"Ġ","Ģ":"Ģ","Ḧ":"Ḧ","Ȟ":"Ȟ","Ĥ":"Ĥ","Ḣ":"Ḣ","Ḩ":"Ḩ","Í":"Í","Ì":"Ì","Ï":"Ï","Ḯ":"Ḯ","Ĩ":"Ĩ","Ī":"Ī","Ĭ":"Ĭ","Ǐ":"Ǐ","Î":"Î","İ":"İ","Ĵ":"Ĵ","Ḱ":"Ḱ","Ǩ":"Ǩ","Ķ":"Ķ","Ĺ":"Ĺ","Ľ":"Ľ","Ļ":"Ļ","Ḿ":"Ḿ","Ṁ":"Ṁ","Ń":"Ń","Ǹ":"Ǹ","Ñ":"Ñ","Ň":"Ň","Ṅ":"Ṅ","Ņ":"Ņ","Ó":"Ó","Ò":"Ò","Ö":"Ö","Ȫ":"Ȫ","Õ":"Õ","Ṍ":"Ṍ","Ṏ":"Ṏ","Ȭ":"Ȭ","Ō":"Ō","Ṓ":"Ṓ","Ṑ":"Ṑ","Ŏ":"Ŏ","Ǒ":"Ǒ","Ô":"Ô","Ố":"Ố","Ồ":"Ồ","Ỗ":"Ỗ","Ȯ":"Ȯ","Ȱ":"Ȱ","Ő":"Ő","Ṕ":"Ṕ","Ṗ":"Ṗ","Ŕ":"Ŕ","Ř":"Ř","Ṙ":"Ṙ","Ŗ":"Ŗ","Ś":"Ś","Ṥ":"Ṥ","Š":"Š","Ṧ":"Ṧ","Ŝ":"Ŝ","Ṡ":"Ṡ","Ş":"Ş","Ť":"Ť","Ṫ":"Ṫ","Ţ":"Ţ","Ú":"Ú","Ù":"Ù","Ü":"Ü","Ǘ":"Ǘ","Ǜ":"Ǜ","Ǖ":"Ǖ","Ǚ":"Ǚ","Ũ":"Ũ","Ṹ":"Ṹ","Ū":"Ū","Ṻ":"Ṻ","Ŭ":"Ŭ","Ǔ":"Ǔ","Û":"Û","Ů":"Ů","Ű":"Ű","Ṽ":"Ṽ","Ẃ":"Ẃ","Ẁ":"Ẁ","Ẅ":"Ẅ","Ŵ":"Ŵ","Ẇ":"Ẇ","Ẍ":"Ẍ","Ẋ":"Ẋ","Ý":"Ý","Ỳ":"Ỳ","Ÿ":"Ÿ","Ỹ":"Ỹ","Ȳ":"Ȳ","Ŷ":"Ŷ","Ẏ":"Ẏ","Ź":"Ź","Ž":"Ž","Ẑ":"Ẑ","Ż":"Ż","ά":"ά","ὰ":"ὰ","ᾱ":"ᾱ","ᾰ":"ᾰ","έ":"έ","ὲ":"ὲ","ή":"ή","ὴ":"ὴ","ί":"ί","ὶ":"ὶ","ϊ":"ϊ","ΐ":"ΐ","ῒ":"ῒ","ῑ":"ῑ","ῐ":"ῐ","ό":"ό","ὸ":"ὸ","ύ":"ύ","ὺ":"ὺ","ϋ":"ϋ","ΰ":"ΰ","ῢ":"ῢ","ῡ":"ῡ","ῠ":"ῠ","ώ":"ώ","ὼ":"ὼ","Ύ":"Ύ","Ὺ":"Ὺ","Ϋ":"Ϋ","Ῡ":"Ῡ","Ῠ":"Ῠ","Ώ":"Ώ","Ὼ":"Ὼ"},Zr=((f=Kr.prototype).expect=function(e,t){if(void 0===t&&(t=!0),this.fetch().text!==e)throw new j("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());t&&this.consume()},f.consume=function(){this.nextToken=null},f.fetch=function(){return null==this.nextToken&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken},f.switchMode=function(e){this.mode=e,this.gullet.switchMode(e)},f.parse=function(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}},f.subparse=function(e){var t=this.nextToken,e=(this.consume(),this.gullet.pushToken(new X0("}")),this.gullet.pushTokens(e),this.parseExpression(!1));return this.expect("}"),this.nextToken=t,e},f.parseExpression=function(e,t){for(var r=[];;){"math"===this.mode&&this.consumeSpaces();var n=this.fetch();if(~Kr.endOfExpression.indexOf(n.text))break;if(t&&n.text===t)break;if(e&&Ir[n.text]&&Ir[n.text].infix)break;n=this.parseAtom(t);if(!n)break;"internal"!==n.type&&r.push(n)}return"text"===this.mode&&this.formLigatures(r),this.handleInfixNodes(r)},f.handleInfixNodes=function(e){for(var t,r,n,i=-1,a=0;at.charCodeAt(0))return null;this.settings.strict&&(B(t.charCodeAt(0))?"math"===this.mode&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+t[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+t[0]+'" ('+t.charCodeAt(0)+")",e)),a={type:"textord",mode:"text",loc:W0.range(e),text:t}}if(this.consume(),i)for(var o=0;o= sbp.limit) + return; + sbp.cursor++; + } + while (!sbp.out_grouping(g_v, 97, 248)) { + if (sbp.cursor >= sbp.limit) + return; + sbp.cursor++; + } + I_p1 = sbp.cursor; + if (I_p1 < I_x) + I_p1 = I_x; + } + } + + function r_main_suffix() { + var among_var, v_1; + if (sbp.cursor >= I_p1) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_p1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_0, 32); + sbp.limit_backward = v_1; + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_del(); + break; + case 2: + if (sbp.in_grouping_b(g_s_ending, 97, 229)) + sbp.slice_del(); + break; + } + } + } + } + + function r_consonant_pair() { + var v_1 = sbp.limit - sbp.cursor, + v_2; + if (sbp.cursor >= I_p1) { + v_2 = sbp.limit_backward; + sbp.limit_backward = I_p1; + sbp.ket = sbp.cursor; + if (sbp.find_among_b(a_1, 4)) { + sbp.bra = sbp.cursor; + sbp.limit_backward = v_2; + sbp.cursor = sbp.limit - v_1; + if (sbp.cursor > sbp.limit_backward) { + sbp.cursor--; + sbp.bra = sbp.cursor; + sbp.slice_del(); + } + } else + sbp.limit_backward = v_2; + } + } + + function r_other_suffix() { + var among_var, v_1 = sbp.limit - sbp.cursor, + v_2, v_3; + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "st")) { + sbp.bra = sbp.cursor; + if (sbp.eq_s_b(2, "ig")) + sbp.slice_del(); + } + sbp.cursor = sbp.limit - v_1; + if (sbp.cursor >= I_p1) { + v_2 = sbp.limit_backward; + sbp.limit_backward = I_p1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_2, 5); + sbp.limit_backward = v_2; + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_del(); + v_3 = sbp.limit - sbp.cursor; + r_consonant_pair(); + sbp.cursor = sbp.limit - v_3; + break; + case 2: + sbp.slice_from("l\u00F8s"); + break; + } + } + } + } + + function r_undouble() { + var v_1; + if (sbp.cursor >= I_p1) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_p1; + sbp.ket = sbp.cursor; + if (sbp.out_grouping_b(g_v, 97, 248)) { + sbp.bra = sbp.cursor; + S_ch = sbp.slice_to(S_ch); + sbp.limit_backward = v_1; + if (sbp.eq_v_b(S_ch)) + sbp.slice_del(); + } else + sbp.limit_backward = v_1; + } + } + this.stem = function() { + var v_1 = sbp.cursor; + r_mark_regions(); + sbp.limit_backward = v_1; + sbp.cursor = sbp.limit; + r_main_suffix(); + sbp.cursor = sbp.limit; + r_consonant_pair(); + sbp.cursor = sbp.limit; + r_other_suffix(); + sbp.cursor = sbp.limit; + r_undouble(); + return true; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.da.stemmer, 'stemmer-da'); + + /* stop word filter function */ + lunr.da.stopWordFilter = function(token) { + if (lunr.da.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.da.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.da.stopWordFilter.stopWords.length = 95; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.da.stopWordFilter.stopWords.elements = ' ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været'.split(' '); + + lunr.Pipeline.registerFunction(lunr.da.stopWordFilter, 'stopWordFilter-da'); + }; +})) \ No newline at end of file diff --git a/js/lunr.da.min.js b/js/lunr.da.min.js new file mode 100644 index 0000000..2c3f742 --- /dev/null +++ b/js/lunr.da.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,t,i;r.da=function(){this.pipeline.reset(),this.pipeline.add(r.da.trimmer,r.da.stopWordFilter,r.da.stemmer)},r.da.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.da.trimmer=r.trimmerSupport.generateTrimmer(r.da.wordCharacters),r.Pipeline.registerFunction(r.da.trimmer,"trimmer-da"),r.da.stemmer=(e=r.stemmerSupport.Among,t=r.stemmerSupport.SnowballProgram,i=new function(){var n,s,o,d=[new e("hed",-1,1),new e("ethed",0,1),new e("ered",-1,1),new e("e",-1,1),new e("erede",3,1),new e("ende",3,1),new e("erende",5,1),new e("ene",3,1),new e("erne",3,1),new e("ere",3,1),new e("en",-1,1),new e("heden",10,1),new e("eren",10,1),new e("er",-1,1),new e("heder",13,1),new e("erer",13,1),new e("s",-1,2),new e("heds",16,1),new e("es",16,1),new e("endes",18,1),new e("erendes",19,1),new e("enes",18,1),new e("ernes",18,1),new e("eres",18,1),new e("ens",16,1),new e("hedens",24,1),new e("erens",24,1),new e("ers",16,1),new e("ets",16,1),new e("erets",28,1),new e("et",-1,1),new e("eret",30,1)],i=[new e("gd",-1,-1),new e("dt",-1,-1),new e("gt",-1,-1),new e("kt",-1,-1)],a=[new e("ig",-1,1),new e("lig",0,1),new e("elig",1,1),new e("els",-1,1),new e("løst",-1,2)],u=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],l=[239,254,42,3,0,0,0,0,0,0,0,0,0,0,0,0,16],c=new t;function m(){var e,r=c.limit-c.cursor;c.cursor>=s&&(e=c.limit_backward,c.limit_backward=s,c.ket=c.cursor,c.find_among_b(i,4)?(c.bra=c.cursor,c.limit_backward=e,c.cursor=c.limit-r,c.cursor>c.limit_backward&&(c.cursor--,c.bra=c.cursor,c.slice_del())):c.limit_backward=e)}this.setCurrent=function(e){c.setCurrent(e)},this.getCurrent=function(){return c.getCurrent()},this.stem=function(){var e,r=c.cursor;if(!function(){var e,r=c.cursor+3;if(s=c.limit,0<=r&&r<=c.limit){for(n=r;;){if(e=c.cursor,c.in_grouping(u,97,248)){c.cursor=e;break}if((c.cursor=e)>=c.limit)return;c.cursor++}for(;!c.out_grouping(u,97,248);){if(c.cursor>=c.limit)return;c.cursor++}(s=c.cursor)=s&&(r=c.limit_backward,c.limit_backward=s,c.ket=c.cursor,e=c.find_among_b(d,32),c.limit_backward=r,e))switch(c.bra=c.cursor,e){case 1:c.slice_del();break;case 2:c.in_grouping_b(l,97,229)&&c.slice_del()}c.cursor=c.limit,m(),c.cursor=c.limit;var i,t,r=c.limit-c.cursor;if(c.ket=c.cursor,c.eq_s_b(2,"st")&&(c.bra=c.cursor,c.eq_s_b(2,"ig"))&&c.slice_del(),c.cursor=c.limit-r,c.cursor>=s&&(r=c.limit_backward,c.limit_backward=s,c.ket=c.cursor,i=c.find_among_b(a,5),c.limit_backward=r,i))switch(c.bra=c.cursor,i){case 1:c.slice_del(),t=c.limit-c.cursor,m(),c.cursor=c.limit-t;break;case 2:c.slice_from("løs")}return c.cursor=c.limit,c.cursor>=s&&(e=c.limit_backward,c.limit_backward=s,c.ket=c.cursor,c.out_grouping_b(u,97,248)?(c.bra=c.cursor,o=c.slice_to(o),c.limit_backward=e,c.eq_v_b(o)&&c.slice_del()):c.limit_backward=e),!0}},function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}),r.Pipeline.registerFunction(r.da.stemmer,"stemmer-da"),r.da.stopWordFilter=function(e){if(-1===r.da.stopWordFilter.stopWords.indexOf(e))return e},r.da.stopWordFilter.stopWords=new r.SortedSet,r.da.stopWordFilter.stopWords.length=95,r.da.stopWordFilter.stopWords.elements=" ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været".split(" "),r.Pipeline.registerFunction(r.da.stopWordFilter,"stopWordFilter-da")}}); \ No newline at end of file diff --git a/js/lunr.de.js b/js/lunr.de.js new file mode 100644 index 0000000..3ed2b93 --- /dev/null +++ b/js/lunr.de.js @@ -0,0 +1,380 @@ +/*! + * Lunr languages, `German` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.de = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.de.trimmer, + lunr.de.stopWordFilter, + lunr.de.stemmer + ); + }; + + /* lunr trimmer function */ + lunr.de.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; + lunr.de.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.de.wordCharacters); + + lunr.Pipeline.registerFunction(lunr.de.trimmer, 'trimmer-de'); + + /* lunr stemmer function */ + lunr.de.stemmer = (function() { + /* create the wrapped stemmer object */ + var Among = lunr.stemmerSupport.Among, + SnowballProgram = lunr.stemmerSupport.SnowballProgram, + st = new function GermanStemmer() { + var a_0 = [new Among("", -1, 6), new Among("U", 0, 2), + new Among("Y", 0, 1), new Among("\u00E4", 0, 3), + new Among("\u00F6", 0, 4), new Among("\u00FC", 0, 5) + ], + a_1 = [ + new Among("e", -1, 2), new Among("em", -1, 1), + new Among("en", -1, 2), new Among("ern", -1, 1), + new Among("er", -1, 1), new Among("s", -1, 3), + new Among("es", 5, 2) + ], + a_2 = [new Among("en", -1, 1), + new Among("er", -1, 1), new Among("st", -1, 2), + new Among("est", 2, 1) + ], + a_3 = [new Among("ig", -1, 1), + new Among("lich", -1, 1) + ], + a_4 = [new Among("end", -1, 1), + new Among("ig", -1, 2), new Among("ung", -1, 1), + new Among("lich", -1, 3), new Among("isch", -1, 2), + new Among("ik", -1, 2), new Among("heit", -1, 3), + new Among("keit", -1, 4) + ], + g_v = [17, 65, 16, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 8, 0, 32, 8 + ], + g_s_ending = [117, 30, 5], + g_st_ending = [ + 117, 30, 4 + ], + I_x, I_p2, I_p1, sbp = new SnowballProgram(); + this.setCurrent = function(word) { + sbp.setCurrent(word); + }; + this.getCurrent = function() { + return sbp.getCurrent(); + }; + + function habr1(c1, c2, v_1) { + if (sbp.eq_s(1, c1)) { + sbp.ket = sbp.cursor; + if (sbp.in_grouping(g_v, 97, 252)) { + sbp.slice_from(c2); + sbp.cursor = v_1; + return true; + } + } + return false; + } + + function r_prelude() { + var v_1 = sbp.cursor, + v_2, v_3, v_4, v_5; + while (true) { + v_2 = sbp.cursor; + sbp.bra = v_2; + if (sbp.eq_s(1, "\u00DF")) { + sbp.ket = sbp.cursor; + sbp.slice_from("ss"); + } else { + if (v_2 >= sbp.limit) + break; + sbp.cursor = v_2 + 1; + } + } + sbp.cursor = v_1; + while (true) { + v_3 = sbp.cursor; + while (true) { + v_4 = sbp.cursor; + if (sbp.in_grouping(g_v, 97, 252)) { + v_5 = sbp.cursor; + sbp.bra = v_5; + if (habr1("u", "U", v_4)) + break; + sbp.cursor = v_5; + if (habr1("y", "Y", v_4)) + break; + } + if (v_4 >= sbp.limit) { + sbp.cursor = v_3; + return; + } + sbp.cursor = v_4 + 1; + } + } + } + + function habr2() { + while (!sbp.in_grouping(g_v, 97, 252)) { + if (sbp.cursor >= sbp.limit) + return true; + sbp.cursor++; + } + while (!sbp.out_grouping(g_v, 97, 252)) { + if (sbp.cursor >= sbp.limit) + return true; + sbp.cursor++; + } + return false; + } + + function r_mark_regions() { + I_p1 = sbp.limit; + I_p2 = I_p1; + var c = sbp.cursor + 3; + if (0 <= c && c <= sbp.limit) { + I_x = c; + if (!habr2()) { + I_p1 = sbp.cursor; + if (I_p1 < I_x) + I_p1 = I_x; + if (!habr2()) + I_p2 = sbp.cursor; + } + } + } + + function r_postlude() { + var among_var, v_1; + while (true) { + v_1 = sbp.cursor; + sbp.bra = v_1; + among_var = sbp.find_among(a_0, 6); + if (!among_var) + return; + sbp.ket = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_from("y"); + break; + case 2: + case 5: + sbp.slice_from("u"); + break; + case 3: + sbp.slice_from("a"); + break; + case 4: + sbp.slice_from("o"); + break; + case 6: + if (sbp.cursor >= sbp.limit) + return; + sbp.cursor++; + break; + } + } + } + + function r_R1() { + return I_p1 <= sbp.cursor; + } + + function r_R2() { + return I_p2 <= sbp.cursor; + } + + function r_standard_suffix() { + var among_var, v_1 = sbp.limit - sbp.cursor, + v_2, v_3, v_4; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_1, 7); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R1()) { + switch (among_var) { + case 1: + sbp.slice_del(); + break; + case 2: + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(1, "s")) { + sbp.bra = sbp.cursor; + if (sbp.eq_s_b(3, "nis")) + sbp.slice_del(); + } + break; + case 3: + if (sbp.in_grouping_b(g_s_ending, 98, 116)) + sbp.slice_del(); + break; + } + } + } + sbp.cursor = sbp.limit - v_1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_2, 4); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R1()) { + switch (among_var) { + case 1: + sbp.slice_del(); + break; + case 2: + if (sbp.in_grouping_b(g_st_ending, 98, 116)) { + var c = sbp.cursor - 3; + if (sbp.limit_backward <= c && c <= sbp.limit) { + sbp.cursor = c; + sbp.slice_del(); + } + } + break; + } + } + } + sbp.cursor = sbp.limit - v_1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_4, 8); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R2()) { + switch (among_var) { + case 1: + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "ig")) { + sbp.bra = sbp.cursor; + v_2 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(1, "e")) { + sbp.cursor = sbp.limit - v_2; + if (r_R2()) + sbp.slice_del(); + } + } + break; + case 2: + v_3 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(1, "e")) { + sbp.cursor = sbp.limit - v_3; + sbp.slice_del(); + } + break; + case 3: + sbp.slice_del(); + sbp.ket = sbp.cursor; + v_4 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(2, "er")) { + sbp.cursor = sbp.limit - v_4; + if (!sbp.eq_s_b(2, "en")) + break; + } + sbp.bra = sbp.cursor; + if (r_R1()) + sbp.slice_del(); + break; + case 4: + sbp.slice_del(); + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_3, 2); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R2() && among_var == 1) + sbp.slice_del(); + } + break; + } + } + } + } + this.stem = function() { + var v_1 = sbp.cursor; + r_prelude(); + sbp.cursor = v_1; + r_mark_regions(); + sbp.limit_backward = v_1; + sbp.cursor = sbp.limit; + r_standard_suffix(); + sbp.cursor = sbp.limit_backward; + r_postlude(); + return true; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.de.stemmer, 'stemmer-de'); + + /* stop word filter function */ + lunr.de.stopWordFilter = function(token) { + if (lunr.de.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.de.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.de.stopWordFilter.stopWords.length = 232; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.de.stopWordFilter.stopWords.elements = ' aber alle allem allen aller alles als also am an ander andere anderem anderen anderer anderes anderm andern anderr anders auch auf aus bei bin bis bist da damit dann das dasselbe dazu daß dein deine deinem deinen deiner deines dem demselben den denn denselben der derer derselbe derselben des desselben dessen dich die dies diese dieselbe dieselben diesem diesen dieser dieses dir doch dort du durch ein eine einem einen einer eines einig einige einigem einigen einiger einiges einmal er es etwas euch euer eure eurem euren eurer eures für gegen gewesen hab habe haben hat hatte hatten hier hin hinter ich ihm ihn ihnen ihr ihre ihrem ihren ihrer ihres im in indem ins ist jede jedem jeden jeder jedes jene jenem jenen jener jenes jetzt kann kein keine keinem keinen keiner keines können könnte machen man manche manchem manchen mancher manches mein meine meinem meinen meiner meines mich mir mit muss musste nach nicht nichts noch nun nur ob oder ohne sehr sein seine seinem seinen seiner seines selbst sich sie sind so solche solchem solchen solcher solches soll sollte sondern sonst um und uns unse unsem unsen unser unses unter viel vom von vor war waren warst was weg weil weiter welche welchem welchen welcher welches wenn werde werden wie wieder will wir wird wirst wo wollen wollte während würde würden zu zum zur zwar zwischen über'.split(' '); + + lunr.Pipeline.registerFunction(lunr.de.stopWordFilter, 'stopWordFilter-de'); + }; +})) \ No newline at end of file diff --git a/js/lunr.de.min.js b/js/lunr.de.min.js new file mode 100644 index 0000000..a10d26b --- /dev/null +++ b/js/lunr.de.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,n,i;r.de=function(){this.pipeline.reset(),this.pipeline.add(r.de.trimmer,r.de.stopWordFilter,r.de.stemmer)},r.de.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.de.trimmer=r.trimmerSupport.generateTrimmer(r.de.wordCharacters),r.Pipeline.registerFunction(r.de.trimmer,"trimmer-de"),r.de.stemmer=(e=r.stemmerSupport.Among,n=r.stemmerSupport.SnowballProgram,i=new function(){var t,o,c,u=[new e("",-1,6),new e("U",0,2),new e("Y",0,1),new e("ä",0,3),new e("ö",0,4),new e("ü",0,5)],d=[new e("e",-1,2),new e("em",-1,1),new e("en",-1,2),new e("ern",-1,1),new e("er",-1,1),new e("s",-1,3),new e("es",5,2)],l=[new e("en",-1,1),new e("er",-1,1),new e("st",-1,2),new e("est",2,1)],a=[new e("ig",-1,1),new e("lich",-1,1)],m=[new e("end",-1,1),new e("ig",-1,2),new e("ung",-1,1),new e("lich",-1,3),new e("isch",-1,2),new e("ik",-1,2),new e("heit",-1,3),new e("keit",-1,4)],w=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32,8],h=[117,30,5],b=[117,30,4],f=new n;function _(e,r,n){return f.eq_s(1,e)&&(f.ket=f.cursor,f.in_grouping(w,97,252))&&(f.slice_from(r),f.cursor=n,1)}function p(){for(;!f.in_grouping(w,97,252);){if(f.cursor>=f.limit)return 1;f.cursor++}for(;!f.out_grouping(w,97,252);){if(f.cursor>=f.limit)return 1;f.cursor++}}function g(){return c<=f.cursor}function k(){return o<=f.cursor}this.setCurrent=function(e){f.setCurrent(e)},this.getCurrent=function(){return f.getCurrent()},this.stem=function(){var e=f.cursor;!function(){for(var e,r,n,i,s=f.cursor;;)if(e=f.cursor,f.bra=e,f.eq_s(1,"ß"))f.ket=f.cursor,f.slice_from("ss");else{if(e>=f.limit)break;f.cursor=e+1}for(f.cursor=s;;)for(r=f.cursor;;){if(n=f.cursor,f.in_grouping(w,97,252)){if(i=f.cursor,f.bra=i,_("u","U",n))break;if(f.cursor=i,_("y","Y",n))break}if(n>=f.limit)return f.cursor=r;f.cursor=n+1}}(),f.cursor=e,c=f.limit,o=c,0<=(s=f.cursor+3)&&s<=f.limit&&(t=s,p()||((c=f.cursor)=f.limit)return;f.cursor++}}}(),!0}},function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}),r.Pipeline.registerFunction(r.de.stemmer,"stemmer-de"),r.de.stopWordFilter=function(e){if(-1===r.de.stopWordFilter.stopWords.indexOf(e))return e},r.de.stopWordFilter.stopWords=new r.SortedSet,r.de.stopWordFilter.stopWords.length=232,r.de.stopWordFilter.stopWords.elements=" aber alle allem allen aller alles als also am an ander andere anderem anderen anderer anderes anderm andern anderr anders auch auf aus bei bin bis bist da damit dann das dasselbe dazu daß dein deine deinem deinen deiner deines dem demselben den denn denselben der derer derselbe derselben des desselben dessen dich die dies diese dieselbe dieselben diesem diesen dieser dieses dir doch dort du durch ein eine einem einen einer eines einig einige einigem einigen einiger einiges einmal er es etwas euch euer eure eurem euren eurer eures für gegen gewesen hab habe haben hat hatte hatten hier hin hinter ich ihm ihn ihnen ihr ihre ihrem ihren ihrer ihres im in indem ins ist jede jedem jeden jeder jedes jene jenem jenen jener jenes jetzt kann kein keine keinem keinen keiner keines können könnte machen man manche manchem manchen mancher manches mein meine meinem meinen meiner meines mich mir mit muss musste nach nicht nichts noch nun nur ob oder ohne sehr sein seine seinem seinen seiner seines selbst sich sie sind so solche solchem solchen solcher solches soll sollte sondern sonst um und uns unse unsem unsen unser unses unter viel vom von vor war waren warst was weg weil weiter welche welchem welchen welcher welches wenn werde werden wie wieder will wir wird wirst wo wollen wollte während würde würden zu zum zur zwar zwischen über".split(" "),r.Pipeline.registerFunction(r.de.stopWordFilter,"stopWordFilter-de")}}); \ No newline at end of file diff --git a/js/lunr.du.js b/js/lunr.du.js new file mode 100644 index 0000000..7d13826 --- /dev/null +++ b/js/lunr.du.js @@ -0,0 +1,444 @@ +/*! + * Lunr languages, `Dutch` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.du = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.du.trimmer, + lunr.du.stopWordFilter, + lunr.du.stemmer + ); + }; + + /* lunr trimmer function */ + lunr.du.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; + lunr.du.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.du.wordCharacters); + + lunr.Pipeline.registerFunction(lunr.du.trimmer, 'trimmer-du'); + + /* lunr stemmer function */ + lunr.du.stemmer = (function() { + /* create the wrapped stemmer object */ + var Among = lunr.stemmerSupport.Among, + SnowballProgram = lunr.stemmerSupport.SnowballProgram, + st = new function DutchStemmer() { + var a_0 = [new Among("", -1, 6), new Among("\u00E1", 0, 1), + new Among("\u00E4", 0, 1), new Among("\u00E9", 0, 2), + new Among("\u00EB", 0, 2), new Among("\u00ED", 0, 3), + new Among("\u00EF", 0, 3), new Among("\u00F3", 0, 4), + new Among("\u00F6", 0, 4), new Among("\u00FA", 0, 5), + new Among("\u00FC", 0, 5) + ], + a_1 = [new Among("", -1, 3), + new Among("I", 0, 2), new Among("Y", 0, 1) + ], + a_2 = [ + new Among("dd", -1, -1), new Among("kk", -1, -1), + new Among("tt", -1, -1) + ], + a_3 = [new Among("ene", -1, 2), + new Among("se", -1, 3), new Among("en", -1, 2), + new Among("heden", 2, 1), new Among("s", -1, 3) + ], + a_4 = [ + new Among("end", -1, 1), new Among("ig", -1, 2), + new Among("ing", -1, 1), new Among("lijk", -1, 3), + new Among("baar", -1, 4), new Among("bar", -1, 5) + ], + a_5 = [ + new Among("aa", -1, -1), new Among("ee", -1, -1), + new Among("oo", -1, -1), new Among("uu", -1, -1) + ], + g_v = [17, 65, + 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 + ], + g_v_I = [1, 0, 0, + 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 + ], + g_v_j = [ + 17, 67, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 + ], + I_p2, I_p1, B_e_found, sbp = new SnowballProgram(); + this.setCurrent = function(word) { + sbp.setCurrent(word); + }; + this.getCurrent = function() { + return sbp.getCurrent(); + }; + + function r_prelude() { + var among_var, v_1 = sbp.cursor, + v_2, v_3; + while (true) { + sbp.bra = sbp.cursor; + among_var = sbp.find_among(a_0, 11); + if (among_var) { + sbp.ket = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_from("a"); + continue; + case 2: + sbp.slice_from("e"); + continue; + case 3: + sbp.slice_from("i"); + continue; + case 4: + sbp.slice_from("o"); + continue; + case 5: + sbp.slice_from("u"); + continue; + case 6: + if (sbp.cursor >= sbp.limit) + break; + sbp.cursor++; + continue; + } + } + break; + } + sbp.cursor = v_1; + sbp.bra = v_1; + if (sbp.eq_s(1, "y")) { + sbp.ket = sbp.cursor; + sbp.slice_from("Y"); + } else + sbp.cursor = v_1; + while (true) { + v_2 = sbp.cursor; + if (sbp.in_grouping(g_v, 97, 232)) { + v_3 = sbp.cursor; + sbp.bra = v_3; + if (sbp.eq_s(1, "i")) { + sbp.ket = sbp.cursor; + if (sbp.in_grouping(g_v, 97, 232)) { + sbp.slice_from("I"); + sbp.cursor = v_2; + } + } else { + sbp.cursor = v_3; + if (sbp.eq_s(1, "y")) { + sbp.ket = sbp.cursor; + sbp.slice_from("Y"); + sbp.cursor = v_2; + } else if (habr1(v_2)) + break; + } + } else if (habr1(v_2)) + break; + } + } + + function habr1(v_1) { + sbp.cursor = v_1; + if (v_1 >= sbp.limit) + return true; + sbp.cursor++; + return false; + } + + function r_mark_regions() { + I_p1 = sbp.limit; + I_p2 = I_p1; + if (!habr2()) { + I_p1 = sbp.cursor; + if (I_p1 < 3) + I_p1 = 3; + if (!habr2()) + I_p2 = sbp.cursor; + } + } + + function habr2() { + while (!sbp.in_grouping(g_v, 97, 232)) { + if (sbp.cursor >= sbp.limit) + return true; + sbp.cursor++; + } + while (!sbp.out_grouping(g_v, 97, 232)) { + if (sbp.cursor >= sbp.limit) + return true; + sbp.cursor++; + } + return false; + } + + function r_postlude() { + var among_var; + while (true) { + sbp.bra = sbp.cursor; + among_var = sbp.find_among(a_1, 3); + if (among_var) { + sbp.ket = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_from("y"); + break; + case 2: + sbp.slice_from("i"); + break; + case 3: + if (sbp.cursor >= sbp.limit) + return; + sbp.cursor++; + break; + } + } + } + } + + function r_R1() { + return I_p1 <= sbp.cursor; + } + + function r_R2() { + return I_p2 <= sbp.cursor; + } + + function r_undouble() { + var v_1 = sbp.limit - sbp.cursor; + if (sbp.find_among_b(a_2, 3)) { + sbp.cursor = sbp.limit - v_1; + sbp.ket = sbp.cursor; + if (sbp.cursor > sbp.limit_backward) { + sbp.cursor--; + sbp.bra = sbp.cursor; + sbp.slice_del(); + } + } + } + + function r_e_ending() { + var v_1; + B_e_found = false; + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(1, "e")) { + sbp.bra = sbp.cursor; + if (r_R1()) { + v_1 = sbp.limit - sbp.cursor; + if (sbp.out_grouping_b(g_v, 97, 232)) { + sbp.cursor = sbp.limit - v_1; + sbp.slice_del(); + B_e_found = true; + r_undouble(); + } + } + } + } + + function r_en_ending() { + var v_1; + if (r_R1()) { + v_1 = sbp.limit - sbp.cursor; + if (sbp.out_grouping_b(g_v, 97, 232)) { + sbp.cursor = sbp.limit - v_1; + if (!sbp.eq_s_b(3, "gem")) { + sbp.cursor = sbp.limit - v_1; + sbp.slice_del(); + r_undouble(); + } + } + } + } + + function r_standard_suffix() { + var among_var, v_1 = sbp.limit - sbp.cursor, + v_2, v_3, v_4, v_5, v_6; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_3, 5); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + if (r_R1()) + sbp.slice_from("heid"); + break; + case 2: + r_en_ending(); + break; + case 3: + if (r_R1() && sbp.out_grouping_b(g_v_j, 97, 232)) + sbp.slice_del(); + break; + } + } + sbp.cursor = sbp.limit - v_1; + r_e_ending(); + sbp.cursor = sbp.limit - v_1; + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(4, "heid")) { + sbp.bra = sbp.cursor; + if (r_R2()) { + v_2 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(1, "c")) { + sbp.cursor = sbp.limit - v_2; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "en")) { + sbp.bra = sbp.cursor; + r_en_ending(); + } + } + } + } + sbp.cursor = sbp.limit - v_1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_4, 6); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + if (r_R2()) { + sbp.slice_del(); + v_3 = sbp.limit - sbp.cursor; + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "ig")) { + sbp.bra = sbp.cursor; + if (r_R2()) { + v_4 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(1, "e")) { + sbp.cursor = sbp.limit - v_4; + sbp.slice_del(); + break; + } + } + } + sbp.cursor = sbp.limit - v_3; + r_undouble(); + } + break; + case 2: + if (r_R2()) { + v_5 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(1, "e")) { + sbp.cursor = sbp.limit - v_5; + sbp.slice_del(); + } + } + break; + case 3: + if (r_R2()) { + sbp.slice_del(); + r_e_ending(); + } + break; + case 4: + if (r_R2()) + sbp.slice_del(); + break; + case 5: + if (r_R2() && B_e_found) + sbp.slice_del(); + break; + } + } + sbp.cursor = sbp.limit - v_1; + if (sbp.out_grouping_b(g_v_I, 73, 232)) { + v_6 = sbp.limit - sbp.cursor; + if (sbp.find_among_b(a_5, 4) && sbp.out_grouping_b(g_v, 97, 232)) { + sbp.cursor = sbp.limit - v_6; + sbp.ket = sbp.cursor; + if (sbp.cursor > sbp.limit_backward) { + sbp.cursor--; + sbp.bra = sbp.cursor; + sbp.slice_del(); + } + } + } + } + this.stem = function() { + var v_1 = sbp.cursor; + r_prelude(); + sbp.cursor = v_1; + r_mark_regions(); + sbp.limit_backward = v_1; + sbp.cursor = sbp.limit; + r_standard_suffix(); + sbp.cursor = sbp.limit_backward; + r_postlude(); + return true; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.du.stemmer, 'stemmer-du'); + + /* stop word filter function */ + lunr.du.stopWordFilter = function(token) { + if (lunr.du.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.du.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.du.stopWordFilter.stopWords.length = 103; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.du.stopWordFilter.stopWords.elements = ' aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou'.split(' '); + + lunr.Pipeline.registerFunction(lunr.du.stopWordFilter, 'stopWordFilter-du'); + }; +})) \ No newline at end of file diff --git a/js/lunr.du.min.js b/js/lunr.du.min.js new file mode 100644 index 0000000..a93f314 --- /dev/null +++ b/js/lunr.du.min.js @@ -0,0 +1 @@ +!function(r,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():e()(r.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r,i,o;e.du=function(){this.pipeline.reset(),this.pipeline.add(e.du.trimmer,e.du.stopWordFilter,e.du.stemmer)},e.du.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.du.trimmer=e.trimmerSupport.generateTrimmer(e.du.wordCharacters),e.Pipeline.registerFunction(e.du.trimmer,"trimmer-du"),e.du.stemmer=(r=e.stemmerSupport.Among,i=e.stemmerSupport.SnowballProgram,o=new function(){var c,a,l,m=[new r("",-1,6),new r("á",0,1),new r("ä",0,1),new r("é",0,2),new r("ë",0,2),new r("í",0,3),new r("ï",0,3),new r("ó",0,4),new r("ö",0,4),new r("ú",0,5),new r("ü",0,5)],d=[new r("",-1,3),new r("I",0,2),new r("Y",0,1)],e=[new r("dd",-1,-1),new r("kk",-1,-1),new r("tt",-1,-1)],f=[new r("ene",-1,2),new r("se",-1,3),new r("en",-1,2),new r("heden",2,1),new r("s",-1,3)],_=[new r("end",-1,1),new r("ig",-1,2),new r("ing",-1,1),new r("lijk",-1,3),new r("baar",-1,4),new r("bar",-1,5)],w=[new r("aa",-1,-1),new r("ee",-1,-1),new r("oo",-1,-1),new r("uu",-1,-1)],b=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],p=[1,0,0,17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],g=[17,67,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],k=new i;function h(r){if((k.cursor=r)>=k.limit)return 1;k.cursor++}function v(){for(;!k.in_grouping(b,97,232);){if(k.cursor>=k.limit)return 1;k.cursor++}for(;!k.out_grouping(b,97,232);){if(k.cursor>=k.limit)return 1;k.cursor++}}function q(){return a<=k.cursor}function z(){return c<=k.cursor}function W(){var r=k.limit-k.cursor;k.find_among_b(e,3)&&(k.cursor=k.limit-r,k.ket=k.cursor,k.cursor>k.limit_backward)&&(k.cursor--,k.bra=k.cursor,k.slice_del())}function j(){var r;l=!1,k.ket=k.cursor,k.eq_s_b(1,"e")&&(k.bra=k.cursor,q())&&(r=k.limit-k.cursor,k.out_grouping_b(b,97,232))&&(k.cursor=k.limit-r,k.slice_del(),l=!0,W())}function F(){var r;q()&&(r=k.limit-k.cursor,k.out_grouping_b(b,97,232))&&(k.cursor=k.limit-r,k.eq_s_b(3,"gem")||(k.cursor=k.limit-r,k.slice_del(),W()))}this.setCurrent=function(r){k.setCurrent(r)},this.getCurrent=function(){return k.getCurrent()},this.stem=function(){for(var r,e,i,o=k.cursor,t=k.cursor;;){if(k.bra=k.cursor,r=k.find_among(m,11))switch(k.ket=k.cursor,r){case 1:k.slice_from("a");continue;case 2:k.slice_from("e");continue;case 3:k.slice_from("i");continue;case 4:k.slice_from("o");continue;case 5:k.slice_from("u");continue;case 6:if(!(k.cursor>=k.limit)){k.cursor++;continue}}break}for(k.cursor=t,k.bra=t,k.eq_s(1,"y")?(k.ket=k.cursor,k.slice_from("Y")):k.cursor=t;;)if(e=k.cursor,k.in_grouping(b,97,232)){if(i=k.cursor,k.bra=i,k.eq_s(1,"i"))k.ket=k.cursor,k.in_grouping(b,97,232)&&(k.slice_from("I"),k.cursor=e);else if(k.cursor=i,k.eq_s(1,"y"))k.ket=k.cursor,k.slice_from("Y"),k.cursor=e;else if(h(e))break}else if(h(e))break;k.cursor=o,a=k.limit,c=a,v()||((a=k.cursor)<3&&(a=3),v())||(c=k.cursor),k.limit_backward=o,k.cursor=k.limit;var s,n,u,t=k.limit-k.cursor;if(k.ket=k.cursor,o=k.find_among_b(f,5))switch(k.bra=k.cursor,o){case 1:q()&&k.slice_from("heid");break;case 2:F();break;case 3:q()&&k.out_grouping_b(g,97,232)&&k.slice_del()}if(k.cursor=k.limit-t,j(),k.cursor=k.limit-t,k.ket=k.cursor,k.eq_s_b(4,"heid")&&(k.bra=k.cursor,z())&&(u=k.limit-k.cursor,k.eq_s_b(1,"c")||(k.cursor=k.limit-u,k.slice_del(),k.ket=k.cursor,k.eq_s_b(2,"en")&&(k.bra=k.cursor,F()))),k.cursor=k.limit-t,k.ket=k.cursor,o=k.find_among_b(_,6))switch(k.bra=k.cursor,o){case 1:if(z()){if(k.slice_del(),s=k.limit-k.cursor,k.ket=k.cursor,k.eq_s_b(2,"ig")&&(k.bra=k.cursor,z())&&(n=k.limit-k.cursor,!k.eq_s_b(1,"e"))){k.cursor=k.limit-n,k.slice_del();break}k.cursor=k.limit-s,W()}break;case 2:z()&&(n=k.limit-k.cursor,k.eq_s_b(1,"e")||(k.cursor=k.limit-n,k.slice_del()));break;case 3:z()&&(k.slice_del(),j());break;case 4:z()&&k.slice_del();break;case 5:z()&&l&&k.slice_del()}return k.cursor=k.limit-t,k.out_grouping_b(p,73,232)&&(u=k.limit-k.cursor,k.find_among_b(w,4))&&k.out_grouping_b(b,97,232)&&(k.cursor=k.limit-u,k.ket=k.cursor,k.cursor>k.limit_backward)&&(k.cursor--,k.bra=k.cursor,k.slice_del()),k.cursor=k.limit_backward,function(){for(var r;;)if(k.bra=k.cursor,r=k.find_among(d,3))switch(k.ket=k.cursor,r){case 1:k.slice_from("y");break;case 2:k.slice_from("i");break;case 3:if(k.cursor>=k.limit)return;k.cursor++}}(),!0}},function(r){return o.setCurrent(r),o.stem(),o.getCurrent()}),e.Pipeline.registerFunction(e.du.stemmer,"stemmer-du"),e.du.stopWordFilter=function(r){if(-1===e.du.stopWordFilter.stopWords.indexOf(r))return r},e.du.stopWordFilter.stopWords=new e.SortedSet,e.du.stopWordFilter.stopWords.length=103,e.du.stopWordFilter.stopWords.elements=" aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou".split(" "),e.Pipeline.registerFunction(e.du.stopWordFilter,"stopWordFilter-du")}}); \ No newline at end of file diff --git a/js/lunr.es.js b/js/lunr.es.js new file mode 100644 index 0000000..f8c382d --- /dev/null +++ b/js/lunr.es.js @@ -0,0 +1,595 @@ +/*! + * Lunr languages, `Spanish` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.es = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.es.trimmer, + lunr.es.stopWordFilter, + lunr.es.stemmer + ); + }; + + /* lunr trimmer function */ + lunr.es.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; + lunr.es.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.es.wordCharacters); + + lunr.Pipeline.registerFunction(lunr.es.trimmer, 'trimmer-es'); + + /* lunr stemmer function */ + lunr.es.stemmer = (function() { + /* create the wrapped stemmer object */ + var Among = lunr.stemmerSupport.Among, + SnowballProgram = lunr.stemmerSupport.SnowballProgram, + st = new function SpanishStemmer() { + var a_0 = [new Among("", -1, 6), new Among("\u00E1", 0, 1), + new Among("\u00E9", 0, 2), new Among("\u00ED", 0, 3), + new Among("\u00F3", 0, 4), new Among("\u00FA", 0, 5) + ], + a_1 = [ + new Among("la", -1, -1), new Among("sela", 0, -1), + new Among("le", -1, -1), new Among("me", -1, -1), + new Among("se", -1, -1), new Among("lo", -1, -1), + new Among("selo", 5, -1), new Among("las", -1, -1), + new Among("selas", 7, -1), new Among("les", -1, -1), + new Among("los", -1, -1), new Among("selos", 10, -1), + new Among("nos", -1, -1) + ], + a_2 = [new Among("ando", -1, 6), + new Among("iendo", -1, 6), new Among("yendo", -1, 7), + new Among("\u00E1ndo", -1, 2), new Among("i\u00E9ndo", -1, 1), + new Among("ar", -1, 6), new Among("er", -1, 6), + new Among("ir", -1, 6), new Among("\u00E1r", -1, 3), + new Among("\u00E9r", -1, 4), new Among("\u00EDr", -1, 5) + ], + a_3 = [ + new Among("ic", -1, -1), new Among("ad", -1, -1), + new Among("os", -1, -1), new Among("iv", -1, 1) + ], + a_4 = [ + new Among("able", -1, 1), new Among("ible", -1, 1), + new Among("ante", -1, 1) + ], + a_5 = [new Among("ic", -1, 1), + new Among("abil", -1, 1), new Among("iv", -1, 1) + ], + a_6 = [ + new Among("ica", -1, 1), new Among("ancia", -1, 2), + new Among("encia", -1, 5), new Among("adora", -1, 2), + new Among("osa", -1, 1), new Among("ista", -1, 1), + new Among("iva", -1, 9), new Among("anza", -1, 1), + new Among("log\u00EDa", -1, 3), new Among("idad", -1, 8), + new Among("able", -1, 1), new Among("ible", -1, 1), + new Among("ante", -1, 2), new Among("mente", -1, 7), + new Among("amente", 13, 6), new Among("aci\u00F3n", -1, 2), + new Among("uci\u00F3n", -1, 4), new Among("ico", -1, 1), + new Among("ismo", -1, 1), new Among("oso", -1, 1), + new Among("amiento", -1, 1), new Among("imiento", -1, 1), + new Among("ivo", -1, 9), new Among("ador", -1, 2), + new Among("icas", -1, 1), new Among("ancias", -1, 2), + new Among("encias", -1, 5), new Among("adoras", -1, 2), + new Among("osas", -1, 1), new Among("istas", -1, 1), + new Among("ivas", -1, 9), new Among("anzas", -1, 1), + new Among("log\u00EDas", -1, 3), new Among("idades", -1, 8), + new Among("ables", -1, 1), new Among("ibles", -1, 1), + new Among("aciones", -1, 2), new Among("uciones", -1, 4), + new Among("adores", -1, 2), new Among("antes", -1, 2), + new Among("icos", -1, 1), new Among("ismos", -1, 1), + new Among("osos", -1, 1), new Among("amientos", -1, 1), + new Among("imientos", -1, 1), new Among("ivos", -1, 9) + ], + a_7 = [ + new Among("ya", -1, 1), new Among("ye", -1, 1), + new Among("yan", -1, 1), new Among("yen", -1, 1), + new Among("yeron", -1, 1), new Among("yendo", -1, 1), + new Among("yo", -1, 1), new Among("yas", -1, 1), + new Among("yes", -1, 1), new Among("yais", -1, 1), + new Among("yamos", -1, 1), new Among("y\u00F3", -1, 1) + ], + a_8 = [ + new Among("aba", -1, 2), new Among("ada", -1, 2), + new Among("ida", -1, 2), new Among("ara", -1, 2), + new Among("iera", -1, 2), new Among("\u00EDa", -1, 2), + new Among("ar\u00EDa", 5, 2), new Among("er\u00EDa", 5, 2), + new Among("ir\u00EDa", 5, 2), new Among("ad", -1, 2), + new Among("ed", -1, 2), new Among("id", -1, 2), + new Among("ase", -1, 2), new Among("iese", -1, 2), + new Among("aste", -1, 2), new Among("iste", -1, 2), + new Among("an", -1, 2), new Among("aban", 16, 2), + new Among("aran", 16, 2), new Among("ieran", 16, 2), + new Among("\u00EDan", 16, 2), new Among("ar\u00EDan", 20, 2), + new Among("er\u00EDan", 20, 2), new Among("ir\u00EDan", 20, 2), + new Among("en", -1, 1), new Among("asen", 24, 2), + new Among("iesen", 24, 2), new Among("aron", -1, 2), + new Among("ieron", -1, 2), new Among("ar\u00E1n", -1, 2), + new Among("er\u00E1n", -1, 2), new Among("ir\u00E1n", -1, 2), + new Among("ado", -1, 2), new Among("ido", -1, 2), + new Among("ando", -1, 2), new Among("iendo", -1, 2), + new Among("ar", -1, 2), new Among("er", -1, 2), + new Among("ir", -1, 2), new Among("as", -1, 2), + new Among("abas", 39, 2), new Among("adas", 39, 2), + new Among("idas", 39, 2), new Among("aras", 39, 2), + new Among("ieras", 39, 2), new Among("\u00EDas", 39, 2), + new Among("ar\u00EDas", 45, 2), new Among("er\u00EDas", 45, 2), + new Among("ir\u00EDas", 45, 2), new Among("es", -1, 1), + new Among("ases", 49, 2), new Among("ieses", 49, 2), + new Among("abais", -1, 2), new Among("arais", -1, 2), + new Among("ierais", -1, 2), new Among("\u00EDais", -1, 2), + new Among("ar\u00EDais", 55, 2), new Among("er\u00EDais", 55, 2), + new Among("ir\u00EDais", 55, 2), new Among("aseis", -1, 2), + new Among("ieseis", -1, 2), new Among("asteis", -1, 2), + new Among("isteis", -1, 2), new Among("\u00E1is", -1, 2), + new Among("\u00E9is", -1, 1), new Among("ar\u00E9is", 64, 2), + new Among("er\u00E9is", 64, 2), new Among("ir\u00E9is", 64, 2), + new Among("ados", -1, 2), new Among("idos", -1, 2), + new Among("amos", -1, 2), new Among("\u00E1bamos", 70, 2), + new Among("\u00E1ramos", 70, 2), new Among("i\u00E9ramos", 70, 2), + new Among("\u00EDamos", 70, 2), new Among("ar\u00EDamos", 74, 2), + new Among("er\u00EDamos", 74, 2), new Among("ir\u00EDamos", 74, 2), + new Among("emos", -1, 1), new Among("aremos", 78, 2), + new Among("eremos", 78, 2), new Among("iremos", 78, 2), + new Among("\u00E1semos", 78, 2), new Among("i\u00E9semos", 78, 2), + new Among("imos", -1, 2), new Among("ar\u00E1s", -1, 2), + new Among("er\u00E1s", -1, 2), new Among("ir\u00E1s", -1, 2), + new Among("\u00EDs", -1, 2), new Among("ar\u00E1", -1, 2), + new Among("er\u00E1", -1, 2), new Among("ir\u00E1", -1, 2), + new Among("ar\u00E9", -1, 2), new Among("er\u00E9", -1, 2), + new Among("ir\u00E9", -1, 2), new Among("i\u00F3", -1, 2) + ], + a_9 = [ + new Among("a", -1, 1), new Among("e", -1, 2), + new Among("o", -1, 1), new Among("os", -1, 1), + new Among("\u00E1", -1, 1), new Among("\u00E9", -1, 2), + new Among("\u00ED", -1, 1), new Among("\u00F3", -1, 1) + ], + g_v = [17, + 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 10 + ], + I_p2, I_p1, I_pV, sbp = new SnowballProgram(); + this.setCurrent = function(word) { + sbp.setCurrent(word); + }; + this.getCurrent = function() { + return sbp.getCurrent(); + }; + + function habr1() { + if (sbp.out_grouping(g_v, 97, 252)) { + while (!sbp.in_grouping(g_v, 97, 252)) { + if (sbp.cursor >= sbp.limit) + return true; + sbp.cursor++; + } + return false; + } + return true; + } + + function habr2() { + if (sbp.in_grouping(g_v, 97, 252)) { + var v_1 = sbp.cursor; + if (habr1()) { + sbp.cursor = v_1; + if (!sbp.in_grouping(g_v, 97, 252)) + return true; + while (!sbp.out_grouping(g_v, 97, 252)) { + if (sbp.cursor >= sbp.limit) + return true; + sbp.cursor++; + } + } + return false; + } + return true; + } + + function habr3() { + var v_1 = sbp.cursor, + v_2; + if (habr2()) { + sbp.cursor = v_1; + if (!sbp.out_grouping(g_v, 97, 252)) + return; + v_2 = sbp.cursor; + if (habr1()) { + sbp.cursor = v_2; + if (!sbp.in_grouping(g_v, 97, 252) || sbp.cursor >= sbp.limit) + return; + sbp.cursor++; + } + } + I_pV = sbp.cursor; + } + + function habr4() { + while (!sbp.in_grouping(g_v, 97, 252)) { + if (sbp.cursor >= sbp.limit) + return false; + sbp.cursor++; + } + while (!sbp.out_grouping(g_v, 97, 252)) { + if (sbp.cursor >= sbp.limit) + return false; + sbp.cursor++; + } + return true; + } + + function r_mark_regions() { + var v_1 = sbp.cursor; + I_pV = sbp.limit; + I_p1 = I_pV; + I_p2 = I_pV; + habr3(); + sbp.cursor = v_1; + if (habr4()) { + I_p1 = sbp.cursor; + if (habr4()) + I_p2 = sbp.cursor; + } + } + + function r_postlude() { + var among_var; + while (true) { + sbp.bra = sbp.cursor; + among_var = sbp.find_among(a_0, 6); + if (among_var) { + sbp.ket = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_from("a"); + continue; + case 2: + sbp.slice_from("e"); + continue; + case 3: + sbp.slice_from("i"); + continue; + case 4: + sbp.slice_from("o"); + continue; + case 5: + sbp.slice_from("u"); + continue; + case 6: + if (sbp.cursor >= sbp.limit) + break; + sbp.cursor++; + continue; + } + } + break; + } + } + + function r_RV() { + return I_pV <= sbp.cursor; + } + + function r_R1() { + return I_p1 <= sbp.cursor; + } + + function r_R2() { + return I_p2 <= sbp.cursor; + } + + function r_attached_pronoun() { + var among_var; + sbp.ket = sbp.cursor; + if (sbp.find_among_b(a_1, 13)) { + sbp.bra = sbp.cursor; + among_var = sbp.find_among_b(a_2, 11); + if (among_var && r_RV()) + switch (among_var) { + case 1: + sbp.bra = sbp.cursor; + sbp.slice_from("iendo"); + break; + case 2: + sbp.bra = sbp.cursor; + sbp.slice_from("ando"); + break; + case 3: + sbp.bra = sbp.cursor; + sbp.slice_from("ar"); + break; + case 4: + sbp.bra = sbp.cursor; + sbp.slice_from("er"); + break; + case 5: + sbp.bra = sbp.cursor; + sbp.slice_from("ir"); + break; + case 6: + sbp.slice_del(); + break; + case 7: + if (sbp.eq_s_b(1, "u")) + sbp.slice_del(); + break; + } + } + } + + function habr5(a, n) { + if (!r_R2()) + return true; + sbp.slice_del(); + sbp.ket = sbp.cursor; + var among_var = sbp.find_among_b(a, n); + if (among_var) { + sbp.bra = sbp.cursor; + if (among_var == 1 && r_R2()) + sbp.slice_del(); + } + return false; + } + + function habr6(c1) { + if (!r_R2()) + return true; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, c1)) { + sbp.bra = sbp.cursor; + if (r_R2()) + sbp.slice_del(); + } + return false; + } + + function r_standard_suffix() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_6, 46); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + if (!r_R2()) + return false; + sbp.slice_del(); + break; + case 2: + if (habr6("ic")) + return false; + break; + case 3: + if (!r_R2()) + return false; + sbp.slice_from("log"); + break; + case 4: + if (!r_R2()) + return false; + sbp.slice_from("u"); + break; + case 5: + if (!r_R2()) + return false; + sbp.slice_from("ente"); + break; + case 6: + if (!r_R1()) + return false; + sbp.slice_del(); + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_3, 4); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R2()) { + sbp.slice_del(); + if (among_var == 1) { + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "at")) { + sbp.bra = sbp.cursor; + if (r_R2()) + sbp.slice_del(); + } + } + } + } + break; + case 7: + if (habr5(a_4, 3)) + return false; + break; + case 8: + if (habr5(a_5, 3)) + return false; + break; + case 9: + if (habr6("at")) + return false; + break; + } + return true; + } + return false; + } + + function r_y_verb_suffix() { + var among_var, v_1; + if (sbp.cursor >= I_pV) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_pV; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_7, 12); + sbp.limit_backward = v_1; + if (among_var) { + sbp.bra = sbp.cursor; + if (among_var == 1) { + if (!sbp.eq_s_b(1, "u")) + return false; + sbp.slice_del(); + } + return true; + } + } + return false; + } + + function r_verb_suffix() { + var among_var, v_1, v_2, v_3; + if (sbp.cursor >= I_pV) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_pV; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_8, 96); + sbp.limit_backward = v_1; + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + v_2 = sbp.limit - sbp.cursor; + if (sbp.eq_s_b(1, "u")) { + v_3 = sbp.limit - sbp.cursor; + if (sbp.eq_s_b(1, "g")) + sbp.cursor = sbp.limit - v_3; + else + sbp.cursor = sbp.limit - v_2; + } else + sbp.cursor = sbp.limit - v_2; + sbp.bra = sbp.cursor; + case 2: + sbp.slice_del(); + break; + } + } + } + } + + function r_residual_suffix() { + var among_var, v_1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_9, 8); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + if (r_RV()) + sbp.slice_del(); + break; + case 2: + if (r_RV()) { + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(1, "u")) { + sbp.bra = sbp.cursor; + v_1 = sbp.limit - sbp.cursor; + if (sbp.eq_s_b(1, "g")) { + sbp.cursor = sbp.limit - v_1; + if (r_RV()) + sbp.slice_del(); + } + } + } + break; + } + } + } + this.stem = function() { + var v_1 = sbp.cursor; + r_mark_regions(); + sbp.limit_backward = v_1; + sbp.cursor = sbp.limit; + r_attached_pronoun(); + sbp.cursor = sbp.limit; + if (!r_standard_suffix()) { + sbp.cursor = sbp.limit; + if (!r_y_verb_suffix()) { + sbp.cursor = sbp.limit; + r_verb_suffix(); + } + } + sbp.cursor = sbp.limit; + r_residual_suffix(); + sbp.cursor = sbp.limit_backward; + r_postlude(); + return true; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.es.stemmer, 'stemmer-es'); + + /* stop word filter function */ + lunr.es.stopWordFilter = function(token) { + if (lunr.es.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.es.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.es.stopWordFilter.stopWords.length = 309; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.es.stopWordFilter.stopWords.elements = ' a al algo algunas algunos ante antes como con contra cual cuando de del desde donde durante e el ella ellas ellos en entre era erais eran eras eres es esa esas ese eso esos esta estaba estabais estaban estabas estad estada estadas estado estados estamos estando estar estaremos estará estarán estarás estaré estaréis estaría estaríais estaríamos estarían estarías estas este estemos esto estos estoy estuve estuviera estuvierais estuvieran estuvieras estuvieron estuviese estuvieseis estuviesen estuvieses estuvimos estuviste estuvisteis estuviéramos estuviésemos estuvo está estábamos estáis están estás esté estéis estén estés fue fuera fuerais fueran fueras fueron fuese fueseis fuesen fueses fui fuimos fuiste fuisteis fuéramos fuésemos ha habida habidas habido habidos habiendo habremos habrá habrán habrás habré habréis habría habríais habríamos habrían habrías habéis había habíais habíamos habían habías han has hasta hay haya hayamos hayan hayas hayáis he hemos hube hubiera hubierais hubieran hubieras hubieron hubiese hubieseis hubiesen hubieses hubimos hubiste hubisteis hubiéramos hubiésemos hubo la las le les lo los me mi mis mucho muchos muy más mí mía mías mío míos nada ni no nos nosotras nosotros nuestra nuestras nuestro nuestros o os otra otras otro otros para pero poco por porque que quien quienes qué se sea seamos sean seas seremos será serán serás seré seréis sería seríais seríamos serían serías seáis sido siendo sin sobre sois somos son soy su sus suya suyas suyo suyos sí también tanto te tendremos tendrá tendrán tendrás tendré tendréis tendría tendríais tendríamos tendrían tendrías tened tenemos tenga tengamos tengan tengas tengo tengáis tenida tenidas tenido tenidos teniendo tenéis tenía teníais teníamos tenían tenías ti tiene tienen tienes todo todos tu tus tuve tuviera tuvierais tuvieran tuvieras tuvieron tuviese tuvieseis tuviesen tuvieses tuvimos tuviste tuvisteis tuviéramos tuviésemos tuvo tuya tuyas tuyo tuyos tú un una uno unos vosotras vosotros vuestra vuestras vuestro vuestros y ya yo él éramos'.split(' '); + + lunr.Pipeline.registerFunction(lunr.es.stopWordFilter, 'stopWordFilter-es'); + }; +})) \ No newline at end of file diff --git a/js/lunr.es.min.js b/js/lunr.es.min.js new file mode 100644 index 0000000..f8463d4 --- /dev/null +++ b/js/lunr.es.min.js @@ -0,0 +1 @@ +!function(e,s){"function"==typeof define&&define.amd?define(s):"object"==typeof exports?module.exports=s():s()(e.lunr)}(this,function(){return function(s){if(void 0===s)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===s.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,W,r;s.es=function(){this.pipeline.reset(),this.pipeline.add(s.es.trimmer,s.es.stopWordFilter,s.es.stemmer)},s.es.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",s.es.trimmer=s.trimmerSupport.generateTrimmer(s.es.wordCharacters),s.Pipeline.registerFunction(s.es.trimmer,"trimmer-es"),s.es.stemmer=(e=s.stemmerSupport.Among,W=s.stemmerSupport.SnowballProgram,r=new function(){var u,w,c,m=[new e("",-1,6),new e("á",0,1),new e("é",0,2),new e("í",0,3),new e("ó",0,4),new e("ú",0,5)],l=[new e("la",-1,-1),new e("sela",0,-1),new e("le",-1,-1),new e("me",-1,-1),new e("se",-1,-1),new e("lo",-1,-1),new e("selo",5,-1),new e("las",-1,-1),new e("selas",7,-1),new e("les",-1,-1),new e("los",-1,-1),new e("selos",10,-1),new e("nos",-1,-1)],d=[new e("ando",-1,6),new e("iendo",-1,6),new e("yendo",-1,7),new e("ándo",-1,2),new e("iéndo",-1,1),new e("ar",-1,6),new e("er",-1,6),new e("ir",-1,6),new e("ár",-1,3),new e("ér",-1,4),new e("ír",-1,5)],s=[new e("ic",-1,-1),new e("ad",-1,-1),new e("os",-1,-1),new e("iv",-1,1)],r=[new e("able",-1,1),new e("ible",-1,1),new e("ante",-1,1)],n=[new e("ic",-1,1),new e("abil",-1,1),new e("iv",-1,1)],i=[new e("ica",-1,1),new e("ancia",-1,2),new e("encia",-1,5),new e("adora",-1,2),new e("osa",-1,1),new e("ista",-1,1),new e("iva",-1,9),new e("anza",-1,1),new e("logía",-1,3),new e("idad",-1,8),new e("able",-1,1),new e("ible",-1,1),new e("ante",-1,2),new e("mente",-1,7),new e("amente",13,6),new e("ación",-1,2),new e("ución",-1,4),new e("ico",-1,1),new e("ismo",-1,1),new e("oso",-1,1),new e("amiento",-1,1),new e("imiento",-1,1),new e("ivo",-1,9),new e("ador",-1,2),new e("icas",-1,1),new e("ancias",-1,2),new e("encias",-1,5),new e("adoras",-1,2),new e("osas",-1,1),new e("istas",-1,1),new e("ivas",-1,9),new e("anzas",-1,1),new e("logías",-1,3),new e("idades",-1,8),new e("ables",-1,1),new e("ibles",-1,1),new e("aciones",-1,2),new e("uciones",-1,4),new e("adores",-1,2),new e("antes",-1,2),new e("icos",-1,1),new e("ismos",-1,1),new e("osos",-1,1),new e("amientos",-1,1),new e("imientos",-1,1),new e("ivos",-1,9)],b=[new e("ya",-1,1),new e("ye",-1,1),new e("yan",-1,1),new e("yen",-1,1),new e("yeron",-1,1),new e("yendo",-1,1),new e("yo",-1,1),new e("yas",-1,1),new e("yes",-1,1),new e("yais",-1,1),new e("yamos",-1,1),new e("yó",-1,1)],f=[new e("aba",-1,2),new e("ada",-1,2),new e("ida",-1,2),new e("ara",-1,2),new e("iera",-1,2),new e("ía",-1,2),new e("aría",5,2),new e("ería",5,2),new e("iría",5,2),new e("ad",-1,2),new e("ed",-1,2),new e("id",-1,2),new e("ase",-1,2),new e("iese",-1,2),new e("aste",-1,2),new e("iste",-1,2),new e("an",-1,2),new e("aban",16,2),new e("aran",16,2),new e("ieran",16,2),new e("ían",16,2),new e("arían",20,2),new e("erían",20,2),new e("irían",20,2),new e("en",-1,1),new e("asen",24,2),new e("iesen",24,2),new e("aron",-1,2),new e("ieron",-1,2),new e("arán",-1,2),new e("erán",-1,2),new e("irán",-1,2),new e("ado",-1,2),new e("ido",-1,2),new e("ando",-1,2),new e("iendo",-1,2),new e("ar",-1,2),new e("er",-1,2),new e("ir",-1,2),new e("as",-1,2),new e("abas",39,2),new e("adas",39,2),new e("idas",39,2),new e("aras",39,2),new e("ieras",39,2),new e("ías",39,2),new e("arías",45,2),new e("erías",45,2),new e("irías",45,2),new e("es",-1,1),new e("ases",49,2),new e("ieses",49,2),new e("abais",-1,2),new e("arais",-1,2),new e("ierais",-1,2),new e("íais",-1,2),new e("aríais",55,2),new e("eríais",55,2),new e("iríais",55,2),new e("aseis",-1,2),new e("ieseis",-1,2),new e("asteis",-1,2),new e("isteis",-1,2),new e("áis",-1,2),new e("éis",-1,1),new e("aréis",64,2),new e("eréis",64,2),new e("iréis",64,2),new e("ados",-1,2),new e("idos",-1,2),new e("amos",-1,2),new e("ábamos",70,2),new e("áramos",70,2),new e("iéramos",70,2),new e("íamos",70,2),new e("aríamos",74,2),new e("eríamos",74,2),new e("iríamos",74,2),new e("emos",-1,1),new e("aremos",78,2),new e("eremos",78,2),new e("iremos",78,2),new e("ásemos",78,2),new e("iésemos",78,2),new e("imos",-1,2),new e("arás",-1,2),new e("erás",-1,2),new e("irás",-1,2),new e("ís",-1,2),new e("ará",-1,2),new e("erá",-1,2),new e("irá",-1,2),new e("aré",-1,2),new e("eré",-1,2),new e("iré",-1,2),new e("ió",-1,2)],_=[new e("a",-1,1),new e("e",-1,2),new e("o",-1,1),new e("os",-1,1),new e("á",-1,1),new e("é",-1,2),new e("í",-1,1),new e("ó",-1,1)],a=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,4,10],h=new W;function o(){if(!h.out_grouping(a,97,252))return 1;for(;!h.in_grouping(a,97,252);){if(h.cursor>=h.limit)return 1;h.cursor++}}function p(){var e=h.cursor;if(function(){if(!h.in_grouping(a,97,252))return 1;var e=h.cursor;if(o()){if(h.cursor=e,!h.in_grouping(a,97,252))return 1;for(;!h.out_grouping(a,97,252);){if(h.cursor>=h.limit)return 1;h.cursor++}}}()){if(h.cursor=e,!h.out_grouping(a,97,252))return;if(e=h.cursor,o()){if(h.cursor=e,!h.in_grouping(a,97,252)||h.cursor>=h.limit)return;h.cursor++}}c=h.cursor}function v(){for(;!h.in_grouping(a,97,252);){if(h.cursor>=h.limit)return;h.cursor++}for(;!h.out_grouping(a,97,252);){if(h.cursor>=h.limit)return;h.cursor++}return 1}function g(){return c<=h.cursor}function t(){return u<=h.cursor}function k(e,s){if(!t())return 1;h.slice_del(),h.ket=h.cursor;e=h.find_among_b(e,s);e&&(h.bra=h.cursor,1==e)&&t()&&h.slice_del()}function y(e){if(!t())return 1;h.slice_del(),h.ket=h.cursor,h.eq_s_b(2,e)&&(h.bra=h.cursor,t())&&h.slice_del()}function q(){var e;if(h.ket=h.cursor,e=h.find_among_b(i,46)){switch(h.bra=h.cursor,e){case 1:if(!t())return;h.slice_del();break;case 2:if(y("ic"))return;break;case 3:if(!t())return;h.slice_from("log");break;case 4:if(!t())return;h.slice_from("u");break;case 5:if(!t())return;h.slice_from("ente");break;case 6:if(!(w<=h.cursor))return;h.slice_del(),h.ket=h.cursor,(e=h.find_among_b(s,4))&&(h.bra=h.cursor,t())&&(h.slice_del(),1==e)&&(h.ket=h.cursor,h.eq_s_b(2,"at"))&&(h.bra=h.cursor,t())&&h.slice_del();break;case 7:if(k(r,3))return;break;case 8:if(k(n,3))return;break;case 9:if(y("at"))return}return 1}}this.setCurrent=function(e){h.setCurrent(e)},this.getCurrent=function(){return h.getCurrent()},this.stem=function(){var e,s,r,n,i,a,o,t=h.cursor;if(r=h.cursor,c=h.limit,u=w=c,p(),h.cursor=r,v()&&(w=h.cursor,v())&&(u=h.cursor),h.limit_backward=t,h.cursor=h.limit,h.ket=h.cursor,h.find_among_b(l,13)&&(h.bra=h.cursor,e=h.find_among_b(d,11))&&g())switch(e){case 1:h.bra=h.cursor,h.slice_from("iendo");break;case 2:h.bra=h.cursor,h.slice_from("ando");break;case 3:h.bra=h.cursor,h.slice_from("ar");break;case 4:h.bra=h.cursor,h.slice_from("er");break;case 5:h.bra=h.cursor,h.slice_from("ir");break;case 6:h.slice_del();break;case 7:h.eq_s_b(1,"u")&&h.slice_del()}if((h.cursor=h.limit,!q())&&(h.cursor=h.limit,!function(){var e,s;if(h.cursor>=c&&(s=h.limit_backward,h.limit_backward=c,h.ket=h.cursor,e=h.find_among_b(b,12),h.limit_backward=s,e)){if(h.bra=h.cursor,1==e){if(!h.eq_s_b(1,"u"))return;h.slice_del()}return 1}}()&&(h.cursor=h.limit,h.cursor>=c)&&(r=h.limit_backward,h.limit_backward=c,h.ket=h.cursor,s=h.find_among_b(f,96),h.limit_backward=r,s)))switch(h.bra=h.cursor,s){case 1:n=h.limit-h.cursor,h.eq_s_b(1,"u")&&(i=h.limit-h.cursor,h.eq_s_b(1,"g"))?h.cursor=h.limit-i:h.cursor=h.limit-n,h.bra=h.cursor;case 2:h.slice_del()}if(h.cursor=h.limit,h.ket=h.cursor,t=h.find_among_b(_,8))switch(h.bra=h.cursor,t){case 1:g()&&h.slice_del();break;case 2:g()&&(h.slice_del(),h.ket=h.cursor,h.eq_s_b(1,"u"))&&(h.bra=h.cursor,a=h.limit-h.cursor,h.eq_s_b(1,"g"))&&(h.cursor=h.limit-a,g())&&h.slice_del()}for(h.cursor=h.limit_backward;;){if(h.bra=h.cursor,o=h.find_among(m,6))switch(h.ket=h.cursor,o){case 1:h.slice_from("a");continue;case 2:h.slice_from("e");continue;case 3:h.slice_from("i");continue;case 4:h.slice_from("o");continue;case 5:h.slice_from("u");continue;case 6:if(!(h.cursor>=h.limit)){h.cursor++;continue}}break}return!0}},function(e){return r.setCurrent(e),r.stem(),r.getCurrent()}),s.Pipeline.registerFunction(s.es.stemmer,"stemmer-es"),s.es.stopWordFilter=function(e){if(-1===s.es.stopWordFilter.stopWords.indexOf(e))return e},s.es.stopWordFilter.stopWords=new s.SortedSet,s.es.stopWordFilter.stopWords.length=309,s.es.stopWordFilter.stopWords.elements=" a al algo algunas algunos ante antes como con contra cual cuando de del desde donde durante e el ella ellas ellos en entre era erais eran eras eres es esa esas ese eso esos esta estaba estabais estaban estabas estad estada estadas estado estados estamos estando estar estaremos estará estarán estarás estaré estaréis estaría estaríais estaríamos estarían estarías estas este estemos esto estos estoy estuve estuviera estuvierais estuvieran estuvieras estuvieron estuviese estuvieseis estuviesen estuvieses estuvimos estuviste estuvisteis estuviéramos estuviésemos estuvo está estábamos estáis están estás esté estéis estén estés fue fuera fuerais fueran fueras fueron fuese fueseis fuesen fueses fui fuimos fuiste fuisteis fuéramos fuésemos ha habida habidas habido habidos habiendo habremos habrá habrán habrás habré habréis habría habríais habríamos habrían habrías habéis había habíais habíamos habían habías han has hasta hay haya hayamos hayan hayas hayáis he hemos hube hubiera hubierais hubieran hubieras hubieron hubiese hubieseis hubiesen hubieses hubimos hubiste hubisteis hubiéramos hubiésemos hubo la las le les lo los me mi mis mucho muchos muy más mí mía mías mío míos nada ni no nos nosotras nosotros nuestra nuestras nuestro nuestros o os otra otras otro otros para pero poco por porque que quien quienes qué se sea seamos sean seas seremos será serán serás seré seréis sería seríais seríamos serían serías seáis sido siendo sin sobre sois somos son soy su sus suya suyas suyo suyos sí también tanto te tendremos tendrá tendrán tendrás tendré tendréis tendría tendríais tendríamos tendrían tendrías tened tenemos tenga tengamos tengan tengas tengo tengáis tenida tenidas tenido tenidos teniendo tenéis tenía teníais teníamos tenían tenías ti tiene tienen tienes todo todos tu tus tuve tuviera tuvierais tuvieran tuvieras tuvieron tuviese tuvieseis tuviesen tuvieses tuvimos tuviste tuvisteis tuviéramos tuviésemos tuvo tuya tuyas tuyo tuyos tú un una uno unos vosotras vosotros vuestra vuestras vuestro vuestros y ya yo él éramos".split(" "),s.Pipeline.registerFunction(s.es.stopWordFilter,"stopWordFilter-es")}}); \ No newline at end of file diff --git a/js/lunr.fi.js b/js/lunr.fi.js new file mode 100644 index 0000000..c49d7de --- /dev/null +++ b/js/lunr.fi.js @@ -0,0 +1,536 @@ +/*! + * Lunr languages, `Finnish` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.fi = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.fi.trimmer, + lunr.fi.stopWordFilter, + lunr.fi.stemmer + ); + }; + + /* lunr trimmer function */ + lunr.fi.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; + lunr.fi.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.fi.wordCharacters); + + lunr.Pipeline.registerFunction(lunr.fi.trimmer, 'trimmer-fi'); + + /* lunr stemmer function */ + lunr.fi.stemmer = (function() { + /* create the wrapped stemmer object */ + var Among = lunr.stemmerSupport.Among, + SnowballProgram = lunr.stemmerSupport.SnowballProgram, + st = new function FinnishStemmer() { + var a_0 = [new Among("pa", -1, 1), new Among("sti", -1, 2), + new Among("kaan", -1, 1), new Among("han", -1, 1), + new Among("kin", -1, 1), new Among("h\u00E4n", -1, 1), + new Among("k\u00E4\u00E4n", -1, 1), new Among("ko", -1, 1), + new Among("p\u00E4", -1, 1), new Among("k\u00F6", -1, 1) + ], + a_1 = [ + new Among("lla", -1, -1), new Among("na", -1, -1), + new Among("ssa", -1, -1), new Among("ta", -1, -1), + new Among("lta", 3, -1), new Among("sta", 3, -1) + ], + a_2 = [ + new Among("ll\u00E4", -1, -1), new Among("n\u00E4", -1, -1), + new Among("ss\u00E4", -1, -1), new Among("t\u00E4", -1, -1), + new Among("lt\u00E4", 3, -1), new Among("st\u00E4", 3, -1) + ], + a_3 = [ + new Among("lle", -1, -1), new Among("ine", -1, -1) + ], + a_4 = [ + new Among("nsa", -1, 3), new Among("mme", -1, 3), + new Among("nne", -1, 3), new Among("ni", -1, 2), + new Among("si", -1, 1), new Among("an", -1, 4), + new Among("en", -1, 6), new Among("\u00E4n", -1, 5), + new Among("ns\u00E4", -1, 3) + ], + a_5 = [new Among("aa", -1, -1), + new Among("ee", -1, -1), new Among("ii", -1, -1), + new Among("oo", -1, -1), new Among("uu", -1, -1), + new Among("\u00E4\u00E4", -1, -1), + new Among("\u00F6\u00F6", -1, -1) + ], + a_6 = [new Among("a", -1, 8), + new Among("lla", 0, -1), new Among("na", 0, -1), + new Among("ssa", 0, -1), new Among("ta", 0, -1), + new Among("lta", 4, -1), new Among("sta", 4, -1), + new Among("tta", 4, 9), new Among("lle", -1, -1), + new Among("ine", -1, -1), new Among("ksi", -1, -1), + new Among("n", -1, 7), new Among("han", 11, 1), + new Among("den", 11, -1, r_VI), new Among("seen", 11, -1, r_LONG), + new Among("hen", 11, 2), new Among("tten", 11, -1, r_VI), + new Among("hin", 11, 3), new Among("siin", 11, -1, r_VI), + new Among("hon", 11, 4), new Among("h\u00E4n", 11, 5), + new Among("h\u00F6n", 11, 6), new Among("\u00E4", -1, 8), + new Among("ll\u00E4", 22, -1), new Among("n\u00E4", 22, -1), + new Among("ss\u00E4", 22, -1), new Among("t\u00E4", 22, -1), + new Among("lt\u00E4", 26, -1), new Among("st\u00E4", 26, -1), + new Among("tt\u00E4", 26, 9) + ], + a_7 = [new Among("eja", -1, -1), + new Among("mma", -1, 1), new Among("imma", 1, -1), + new Among("mpa", -1, 1), new Among("impa", 3, -1), + new Among("mmi", -1, 1), new Among("immi", 5, -1), + new Among("mpi", -1, 1), new Among("impi", 7, -1), + new Among("ej\u00E4", -1, -1), new Among("mm\u00E4", -1, 1), + new Among("imm\u00E4", 10, -1), new Among("mp\u00E4", -1, 1), + new Among("imp\u00E4", 12, -1) + ], + a_8 = [new Among("i", -1, -1), + new Among("j", -1, -1) + ], + a_9 = [new Among("mma", -1, 1), + new Among("imma", 0, -1) + ], + g_AEI = [17, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 8 + ], + g_V1 = [17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 8, 0, 32 + ], + g_V2 = [17, 65, 16, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 8, 0, 32 + ], + g_particle_end = [17, 97, 24, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 + ], + B_ending_removed, S_x, I_p2, I_p1, sbp = new SnowballProgram(); + this.setCurrent = function(word) { + sbp.setCurrent(word); + }; + this.getCurrent = function() { + return sbp.getCurrent(); + }; + + function r_mark_regions() { + I_p1 = sbp.limit; + I_p2 = I_p1; + if (!habr1()) { + I_p1 = sbp.cursor; + if (!habr1()) + I_p2 = sbp.cursor; + } + } + + function habr1() { + var v_1; + while (true) { + v_1 = sbp.cursor; + if (sbp.in_grouping(g_V1, 97, 246)) + break; + sbp.cursor = v_1; + if (v_1 >= sbp.limit) + return true; + sbp.cursor++; + } + sbp.cursor = v_1; + while (!sbp.out_grouping(g_V1, 97, 246)) { + if (sbp.cursor >= sbp.limit) + return true; + sbp.cursor++; + } + return false; + } + + function r_R2() { + return I_p2 <= sbp.cursor; + } + + function r_particle_etc() { + var among_var, v_1; + if (sbp.cursor >= I_p1) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_p1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_0, 10); + if (among_var) { + sbp.bra = sbp.cursor; + sbp.limit_backward = v_1; + switch (among_var) { + case 1: + if (!sbp.in_grouping_b(g_particle_end, 97, 246)) + return; + break; + case 2: + if (!r_R2()) + return; + break; + } + sbp.slice_del(); + } else + sbp.limit_backward = v_1; + } + } + + function r_possessive() { + var among_var, v_1, v_2; + if (sbp.cursor >= I_p1) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_p1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_4, 9); + if (among_var) { + sbp.bra = sbp.cursor; + sbp.limit_backward = v_1; + switch (among_var) { + case 1: + v_2 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(1, "k")) { + sbp.cursor = sbp.limit - v_2; + sbp.slice_del(); + } + break; + case 2: + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(3, "kse")) { + sbp.bra = sbp.cursor; + sbp.slice_from("ksi"); + } + break; + case 3: + sbp.slice_del(); + break; + case 4: + if (sbp.find_among_b(a_1, 6)) + sbp.slice_del(); + break; + case 5: + if (sbp.find_among_b(a_2, 6)) + sbp.slice_del(); + break; + case 6: + if (sbp.find_among_b(a_3, 2)) + sbp.slice_del(); + break; + } + } else + sbp.limit_backward = v_1; + } + } + + function r_LONG() { + return sbp.find_among_b(a_5, 7); + } + + function r_VI() { + return sbp.eq_s_b(1, "i") && sbp.in_grouping_b(g_V2, 97, 246); + } + + function r_case_ending() { + var among_var, v_1, v_2; + if (sbp.cursor >= I_p1) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_p1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_6, 30); + if (among_var) { + sbp.bra = sbp.cursor; + sbp.limit_backward = v_1; + switch (among_var) { + case 1: + if (!sbp.eq_s_b(1, "a")) + return; + break; + case 2: + case 9: + if (!sbp.eq_s_b(1, "e")) + return; + break; + case 3: + if (!sbp.eq_s_b(1, "i")) + return; + break; + case 4: + if (!sbp.eq_s_b(1, "o")) + return; + break; + case 5: + if (!sbp.eq_s_b(1, "\u00E4")) + return; + break; + case 6: + if (!sbp.eq_s_b(1, "\u00F6")) + return; + break; + case 7: + v_2 = sbp.limit - sbp.cursor; + if (!r_LONG()) { + sbp.cursor = sbp.limit - v_2; + if (!sbp.eq_s_b(2, "ie")) { + sbp.cursor = sbp.limit - v_2; + break; + } + } + sbp.cursor = sbp.limit - v_2; + if (sbp.cursor <= sbp.limit_backward) { + sbp.cursor = sbp.limit - v_2; + break; + } + sbp.cursor--; + sbp.bra = sbp.cursor; + break; + case 8: + if (!sbp.in_grouping_b(g_V1, 97, 246) || !sbp.out_grouping_b(g_V1, 97, 246)) + return; + break; + } + sbp.slice_del(); + B_ending_removed = true; + } else + sbp.limit_backward = v_1; + } + } + + function r_other_endings() { + var among_var, v_1, v_2; + if (sbp.cursor >= I_p2) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_p2; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_7, 14); + if (among_var) { + sbp.bra = sbp.cursor; + sbp.limit_backward = v_1; + if (among_var == 1) { + v_2 = sbp.limit - sbp.cursor; + if (sbp.eq_s_b(2, "po")) + return; + sbp.cursor = sbp.limit - v_2; + } + sbp.slice_del(); + } else + sbp.limit_backward = v_1; + } + } + + function r_i_plural() { + var v_1; + if (sbp.cursor >= I_p1) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_p1; + sbp.ket = sbp.cursor; + if (sbp.find_among_b(a_8, 2)) { + sbp.bra = sbp.cursor; + sbp.limit_backward = v_1; + sbp.slice_del(); + } else + sbp.limit_backward = v_1; + } + } + + function r_t_plural() { + var among_var, v_1, v_2, v_3, v_4, v_5; + if (sbp.cursor >= I_p1) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_p1; + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(1, "t")) { + sbp.bra = sbp.cursor; + v_2 = sbp.limit - sbp.cursor; + if (sbp.in_grouping_b(g_V1, 97, 246)) { + sbp.cursor = sbp.limit - v_2; + sbp.slice_del(); + sbp.limit_backward = v_1; + v_3 = sbp.limit - sbp.cursor; + if (sbp.cursor >= I_p2) { + sbp.cursor = I_p2; + v_4 = sbp.limit_backward; + sbp.limit_backward = sbp.cursor; + sbp.cursor = sbp.limit - v_3; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_9, 2); + if (among_var) { + sbp.bra = sbp.cursor; + sbp.limit_backward = v_4; + if (among_var == 1) { + v_5 = sbp.limit - sbp.cursor; + if (sbp.eq_s_b(2, "po")) + return; + sbp.cursor = sbp.limit - v_5; + } + sbp.slice_del(); + return; + } + } + } + } + sbp.limit_backward = v_1; + } + } + + function r_tidy() { + var v_1, v_2, v_3, v_4; + if (sbp.cursor >= I_p1) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_p1; + v_2 = sbp.limit - sbp.cursor; + if (r_LONG()) { + sbp.cursor = sbp.limit - v_2; + sbp.ket = sbp.cursor; + if (sbp.cursor > sbp.limit_backward) { + sbp.cursor--; + sbp.bra = sbp.cursor; + sbp.slice_del(); + } + } + sbp.cursor = sbp.limit - v_2; + sbp.ket = sbp.cursor; + if (sbp.in_grouping_b(g_AEI, 97, 228)) { + sbp.bra = sbp.cursor; + if (sbp.out_grouping_b(g_V1, 97, 246)) + sbp.slice_del(); + } + sbp.cursor = sbp.limit - v_2; + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(1, "j")) { + sbp.bra = sbp.cursor; + v_3 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(1, "o")) { + sbp.cursor = sbp.limit - v_3; + if (sbp.eq_s_b(1, "u")) + sbp.slice_del(); + } else + sbp.slice_del(); + } + sbp.cursor = sbp.limit - v_2; + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(1, "o")) { + sbp.bra = sbp.cursor; + if (sbp.eq_s_b(1, "j")) + sbp.slice_del(); + } + sbp.cursor = sbp.limit - v_2; + sbp.limit_backward = v_1; + while (true) { + v_4 = sbp.limit - sbp.cursor; + if (sbp.out_grouping_b(g_V1, 97, 246)) { + sbp.cursor = sbp.limit - v_4; + break; + } + sbp.cursor = sbp.limit - v_4; + if (sbp.cursor <= sbp.limit_backward) + return; + sbp.cursor--; + } + sbp.ket = sbp.cursor; + if (sbp.cursor > sbp.limit_backward) { + sbp.cursor--; + sbp.bra = sbp.cursor; + S_x = sbp.slice_to(); + if (sbp.eq_v_b(S_x)) + sbp.slice_del(); + } + } + } + this.stem = function() { + var v_1 = sbp.cursor; + r_mark_regions(); + B_ending_removed = false; + sbp.limit_backward = v_1; + sbp.cursor = sbp.limit; + r_particle_etc(); + sbp.cursor = sbp.limit; + r_possessive(); + sbp.cursor = sbp.limit; + r_case_ending(); + sbp.cursor = sbp.limit; + r_other_endings(); + sbp.cursor = sbp.limit; + if (B_ending_removed) { + r_i_plural(); + sbp.cursor = sbp.limit; + } else { + sbp.cursor = sbp.limit; + r_t_plural(); + sbp.cursor = sbp.limit; + } + r_tidy(); + return true; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.fi.stemmer, 'stemmer-fi'); + + /* stop word filter function */ + lunr.fi.stopWordFilter = function(token) { + if (lunr.fi.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.fi.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.fi.stopWordFilter.stopWords.length = 236; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.fi.stopWordFilter.stopWords.elements = ' ei eivät emme en et ette että he heidän heidät heihin heille heillä heiltä heissä heistä heitä hän häneen hänelle hänellä häneltä hänen hänessä hänestä hänet häntä itse ja johon joiden joihin joiksi joilla joille joilta joina joissa joista joita joka joksi jolla jolle jolta jona jonka jos jossa josta jota jotka kanssa keiden keihin keiksi keille keillä keiltä keinä keissä keistä keitä keneen keneksi kenelle kenellä keneltä kenen kenenä kenessä kenestä kenet ketkä ketkä ketä koska kuin kuka kun me meidän meidät meihin meille meillä meiltä meissä meistä meitä mihin miksi mikä mille millä miltä minkä minkä minua minulla minulle minulta minun minussa minusta minut minuun minä minä missä mistä mitkä mitä mukaan mutta ne niiden niihin niiksi niille niillä niiltä niin niin niinä niissä niistä niitä noiden noihin noiksi noilla noille noilta noin noina noissa noista noita nuo nyt näiden näihin näiksi näille näillä näiltä näinä näissä näistä näitä nämä ole olemme olen olet olette oli olimme olin olisi olisimme olisin olisit olisitte olisivat olit olitte olivat olla olleet ollut on ovat poikki se sekä sen siihen siinä siitä siksi sille sillä sillä siltä sinua sinulla sinulle sinulta sinun sinussa sinusta sinut sinuun sinä sinä sitä tai te teidän teidät teihin teille teillä teiltä teissä teistä teitä tuo tuohon tuoksi tuolla tuolle tuolta tuon tuona tuossa tuosta tuota tähän täksi tälle tällä tältä tämä tämän tänä tässä tästä tätä vaan vai vaikka yli'.split(' '); + + lunr.Pipeline.registerFunction(lunr.fi.stopWordFilter, 'stopWordFilter-fi'); + }; +})) \ No newline at end of file diff --git a/js/lunr.fi.min.js b/js/lunr.fi.min.js new file mode 100644 index 0000000..4d8f82e --- /dev/null +++ b/js/lunr.fi.min.js @@ -0,0 +1 @@ +!function(i,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():e()(i.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var v,W,r;e.fi=function(){this.pipeline.reset(),this.pipeline.add(e.fi.trimmer,e.fi.stopWordFilter,e.fi.stemmer)},e.fi.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.fi.trimmer=e.trimmerSupport.generateTrimmer(e.fi.wordCharacters),e.Pipeline.registerFunction(e.fi.trimmer,"trimmer-fi"),e.fi.stemmer=(v=e.stemmerSupport.Among,W=e.stemmerSupport.SnowballProgram,r=new function(){var n,t,s,o,r=[new v("pa",-1,1),new v("sti",-1,2),new v("kaan",-1,1),new v("han",-1,1),new v("kin",-1,1),new v("hän",-1,1),new v("kään",-1,1),new v("ko",-1,1),new v("pä",-1,1),new v("kö",-1,1)],l=[new v("lla",-1,-1),new v("na",-1,-1),new v("ssa",-1,-1),new v("ta",-1,-1),new v("lta",3,-1),new v("sta",3,-1)],a=[new v("llä",-1,-1),new v("nä",-1,-1),new v("ssä",-1,-1),new v("tä",-1,-1),new v("ltä",3,-1),new v("stä",3,-1)],u=[new v("lle",-1,-1),new v("ine",-1,-1)],c=[new v("nsa",-1,3),new v("mme",-1,3),new v("nne",-1,3),new v("ni",-1,2),new v("si",-1,1),new v("an",-1,4),new v("en",-1,6),new v("än",-1,5),new v("nsä",-1,3)],i=[new v("aa",-1,-1),new v("ee",-1,-1),new v("ii",-1,-1),new v("oo",-1,-1),new v("uu",-1,-1),new v("ää",-1,-1),new v("öö",-1,-1)],m=[new v("a",-1,8),new v("lla",0,-1),new v("na",0,-1),new v("ssa",0,-1),new v("ta",0,-1),new v("lta",4,-1),new v("sta",4,-1),new v("tta",4,9),new v("lle",-1,-1),new v("ine",-1,-1),new v("ksi",-1,-1),new v("n",-1,7),new v("han",11,1),new v("den",11,-1,q),new v("seen",11,-1,j),new v("hen",11,2),new v("tten",11,-1,q),new v("hin",11,3),new v("siin",11,-1,q),new v("hon",11,4),new v("hän",11,5),new v("hön",11,6),new v("ä",-1,8),new v("llä",22,-1),new v("nä",22,-1),new v("ssä",22,-1),new v("tä",22,-1),new v("ltä",26,-1),new v("stä",26,-1),new v("ttä",26,9)],w=[new v("eja",-1,-1),new v("mma",-1,1),new v("imma",1,-1),new v("mpa",-1,1),new v("impa",3,-1),new v("mmi",-1,1),new v("immi",5,-1),new v("mpi",-1,1),new v("impi",7,-1),new v("ejä",-1,-1),new v("mmä",-1,1),new v("immä",10,-1),new v("mpä",-1,1),new v("impä",12,-1)],_=[new v("i",-1,-1),new v("j",-1,-1)],k=[new v("mma",-1,1),new v("imma",0,-1)],b=[17,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],e=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],f=[17,97,24,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],p=new W;function h(){for(var i;i=p.cursor,!p.in_grouping(d,97,246);){if((p.cursor=i)>=p.limit)return 1;p.cursor++}for(p.cursor=i;!p.out_grouping(d,97,246);){if(p.cursor>=p.limit)return 1;p.cursor++}}function g(){var i,e;if(p.cursor>=o)if(e=p.limit_backward,p.limit_backward=o,p.ket=p.cursor,i=p.find_among_b(r,10)){switch(p.bra=p.cursor,p.limit_backward=e,i){case 1:if(p.in_grouping_b(f,97,246))break;return;case 2:if(s<=p.cursor)break;return}p.slice_del()}else p.limit_backward=e}function j(){return p.find_among_b(i,7)}function q(){return p.eq_s_b(1,"i")&&p.in_grouping_b(e,97,246)}this.setCurrent=function(i){p.setCurrent(i)},this.getCurrent=function(){return p.getCurrent()},this.stem=function(){var i,e,r=p.cursor;if(o=p.limit,s=o,h()||(o=p.cursor,h())||(s=p.cursor),n=!1,p.limit_backward=r,p.cursor=p.limit,g(),p.cursor=p.limit,p.cursor>=o)if(r=p.limit_backward,p.limit_backward=o,p.ket=p.cursor,e=p.find_among_b(c,9))switch(p.bra=p.cursor,p.limit_backward=r,e){case 1:i=p.limit-p.cursor,p.eq_s_b(1,"k")||(p.cursor=p.limit-i,p.slice_del());break;case 2:p.slice_del(),p.ket=p.cursor,p.eq_s_b(3,"kse")&&(p.bra=p.cursor,p.slice_from("ksi"));break;case 3:p.slice_del();break;case 4:p.find_among_b(l,6)&&p.slice_del();break;case 5:p.find_among_b(a,6)&&p.slice_del();break;case 6:p.find_among_b(u,2)&&p.slice_del()}else p.limit_backward=r;return p.cursor=p.limit,function(){var i,e,r;if(p.cursor>=o)if(e=p.limit_backward,p.limit_backward=o,p.ket=p.cursor,i=p.find_among_b(m,30)){switch(p.bra=p.cursor,p.limit_backward=e,i){case 1:if(p.eq_s_b(1,"a"))break;return;case 2:case 9:if(p.eq_s_b(1,"e"))break;return;case 3:if(p.eq_s_b(1,"i"))break;return;case 4:if(p.eq_s_b(1,"o"))break;return;case 5:if(p.eq_s_b(1,"ä"))break;return;case 6:if(p.eq_s_b(1,"ö"))break;return;case 7:r=p.limit-p.cursor,j()||(p.cursor=p.limit-r,p.eq_s_b(2,"ie"))?(p.cursor=p.limit-r,p.cursor<=p.limit_backward?p.cursor=p.limit-r:(p.cursor--,p.bra=p.cursor)):p.cursor=p.limit-r;break;case 8:if(p.in_grouping_b(d,97,246)&&p.out_grouping_b(d,97,246))break;return}p.slice_del(),n=!0}else p.limit_backward=e}(),p.cursor=p.limit,function(){var i,e;if(p.cursor>=s)if(i=p.limit_backward,p.limit_backward=s,p.ket=p.cursor,e=p.find_among_b(w,14)){if(p.bra=p.cursor,p.limit_backward=i,1==e){if(e=p.limit-p.cursor,p.eq_s_b(2,"po"))return;p.cursor=p.limit-e}p.slice_del()}else p.limit_backward=i}(),p.cursor=p.limit,n?p.cursor>=o&&(e=p.limit_backward,p.limit_backward=o,p.ket=p.cursor,p.find_among_b(_,2)?(p.bra=p.cursor,p.limit_backward=e,p.slice_del()):p.limit_backward=e):(p.cursor=p.limit,function(){var i,e,r,n;if(p.cursor>=o)if(e=p.limit_backward,p.limit_backward=o,p.ket=p.cursor,p.eq_s_b(1,"t")&&(p.bra=p.cursor,n=p.limit-p.cursor,p.in_grouping_b(d,97,246))&&(p.cursor=p.limit-n,p.slice_del(),p.limit_backward=e,n=p.limit-p.cursor,p.cursor>=s)&&(p.cursor=s,r=p.limit_backward,p.limit_backward=p.cursor,p.cursor=p.limit-n,p.ket=p.cursor,i=p.find_among_b(k,2))){if(p.bra=p.cursor,p.limit_backward=r,1==i){if(n=p.limit-p.cursor,p.eq_s_b(2,"po"))return;p.cursor=p.limit-n}p.slice_del()}else p.limit_backward=e}()),p.cursor=p.limit,function(){var i,e,r,n;if(p.cursor>=o){for(i=p.limit_backward,p.limit_backward=o,e=p.limit-p.cursor,j()&&(p.cursor=p.limit-e,p.ket=p.cursor,p.cursor>p.limit_backward)&&(p.cursor--,p.bra=p.cursor,p.slice_del()),p.cursor=p.limit-e,p.ket=p.cursor,p.in_grouping_b(b,97,228)&&(p.bra=p.cursor,p.out_grouping_b(d,97,246))&&p.slice_del(),p.cursor=p.limit-e,p.ket=p.cursor,p.eq_s_b(1,"j")&&(p.bra=p.cursor,r=p.limit-p.cursor,p.eq_s_b(1,"o")||(p.cursor=p.limit-r,p.eq_s_b(1,"u")))&&p.slice_del(),p.cursor=p.limit-e,p.ket=p.cursor,p.eq_s_b(1,"o")&&(p.bra=p.cursor,p.eq_s_b(1,"j"))&&p.slice_del(),p.cursor=p.limit-e,p.limit_backward=i;;){if(n=p.limit-p.cursor,p.out_grouping_b(d,97,246)){p.cursor=p.limit-n;break}if(p.cursor=p.limit-n,p.cursor<=p.limit_backward)return;p.cursor--}p.ket=p.cursor,p.cursor>p.limit_backward&&(p.cursor--,p.bra=p.cursor,t=p.slice_to(),p.eq_v_b(t))&&p.slice_del()}}(),!0}},function(i){return r.setCurrent(i),r.stem(),r.getCurrent()}),e.Pipeline.registerFunction(e.fi.stemmer,"stemmer-fi"),e.fi.stopWordFilter=function(i){if(-1===e.fi.stopWordFilter.stopWords.indexOf(i))return i},e.fi.stopWordFilter.stopWords=new e.SortedSet,e.fi.stopWordFilter.stopWords.length=236,e.fi.stopWordFilter.stopWords.elements=" ei eivät emme en et ette että he heidän heidät heihin heille heillä heiltä heissä heistä heitä hän häneen hänelle hänellä häneltä hänen hänessä hänestä hänet häntä itse ja johon joiden joihin joiksi joilla joille joilta joina joissa joista joita joka joksi jolla jolle jolta jona jonka jos jossa josta jota jotka kanssa keiden keihin keiksi keille keillä keiltä keinä keissä keistä keitä keneen keneksi kenelle kenellä keneltä kenen kenenä kenessä kenestä kenet ketkä ketkä ketä koska kuin kuka kun me meidän meidät meihin meille meillä meiltä meissä meistä meitä mihin miksi mikä mille millä miltä minkä minkä minua minulla minulle minulta minun minussa minusta minut minuun minä minä missä mistä mitkä mitä mukaan mutta ne niiden niihin niiksi niille niillä niiltä niin niin niinä niissä niistä niitä noiden noihin noiksi noilla noille noilta noin noina noissa noista noita nuo nyt näiden näihin näiksi näille näillä näiltä näinä näissä näistä näitä nämä ole olemme olen olet olette oli olimme olin olisi olisimme olisin olisit olisitte olisivat olit olitte olivat olla olleet ollut on ovat poikki se sekä sen siihen siinä siitä siksi sille sillä sillä siltä sinua sinulla sinulle sinulta sinun sinussa sinusta sinut sinuun sinä sinä sitä tai te teidän teidät teihin teille teillä teiltä teissä teistä teitä tuo tuohon tuoksi tuolla tuolle tuolta tuon tuona tuossa tuosta tuota tähän täksi tälle tällä tältä tämä tämän tänä tässä tästä tätä vaan vai vaikka yli".split(" "),e.Pipeline.registerFunction(e.fi.stopWordFilter,"stopWordFilter-fi")}}); \ No newline at end of file diff --git a/js/lunr.fr.js b/js/lunr.fr.js new file mode 100644 index 0000000..07978b2 --- /dev/null +++ b/js/lunr.fr.js @@ -0,0 +1,698 @@ +/*! + * Lunr languages, `French` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.fr = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.fr.trimmer, + lunr.fr.stopWordFilter, + lunr.fr.stemmer + ); + }; + + /* lunr trimmer function */ + lunr.fr.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; + lunr.fr.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.fr.wordCharacters); + + lunr.Pipeline.registerFunction(lunr.fr.trimmer, 'trimmer-fr'); + + /* lunr stemmer function */ + lunr.fr.stemmer = (function() { + /* create the wrapped stemmer object */ + var Among = lunr.stemmerSupport.Among, + SnowballProgram = lunr.stemmerSupport.SnowballProgram, + st = new function FrenchStemmer() { + var a_0 = [new Among("col", -1, -1), new Among("par", -1, -1), + new Among("tap", -1, -1) + ], + a_1 = [new Among("", -1, 4), + new Among("I", 0, 1), new Among("U", 0, 2), new Among("Y", 0, 3) + ], + a_2 = [ + new Among("iqU", -1, 3), new Among("abl", -1, 3), + new Among("I\u00E8r", -1, 4), new Among("i\u00E8r", -1, 4), + new Among("eus", -1, 2), new Among("iv", -1, 1) + ], + a_3 = [ + new Among("ic", -1, 2), new Among("abil", -1, 1), + new Among("iv", -1, 3) + ], + a_4 = [new Among("iqUe", -1, 1), + new Among("atrice", -1, 2), new Among("ance", -1, 1), + new Among("ence", -1, 5), new Among("logie", -1, 3), + new Among("able", -1, 1), new Among("isme", -1, 1), + new Among("euse", -1, 11), new Among("iste", -1, 1), + new Among("ive", -1, 8), new Among("if", -1, 8), + new Among("usion", -1, 4), new Among("ation", -1, 2), + new Among("ution", -1, 4), new Among("ateur", -1, 2), + new Among("iqUes", -1, 1), new Among("atrices", -1, 2), + new Among("ances", -1, 1), new Among("ences", -1, 5), + new Among("logies", -1, 3), new Among("ables", -1, 1), + new Among("ismes", -1, 1), new Among("euses", -1, 11), + new Among("istes", -1, 1), new Among("ives", -1, 8), + new Among("ifs", -1, 8), new Among("usions", -1, 4), + new Among("ations", -1, 2), new Among("utions", -1, 4), + new Among("ateurs", -1, 2), new Among("ments", -1, 15), + new Among("ements", 30, 6), new Among("issements", 31, 12), + new Among("it\u00E9s", -1, 7), new Among("ment", -1, 15), + new Among("ement", 34, 6), new Among("issement", 35, 12), + new Among("amment", 34, 13), new Among("emment", 34, 14), + new Among("aux", -1, 10), new Among("eaux", 39, 9), + new Among("eux", -1, 1), new Among("it\u00E9", -1, 7) + ], + a_5 = [ + new Among("ira", -1, 1), new Among("ie", -1, 1), + new Among("isse", -1, 1), new Among("issante", -1, 1), + new Among("i", -1, 1), new Among("irai", 4, 1), + new Among("ir", -1, 1), new Among("iras", -1, 1), + new Among("ies", -1, 1), new Among("\u00EEmes", -1, 1), + new Among("isses", -1, 1), new Among("issantes", -1, 1), + new Among("\u00EEtes", -1, 1), new Among("is", -1, 1), + new Among("irais", 13, 1), new Among("issais", 13, 1), + new Among("irions", -1, 1), new Among("issions", -1, 1), + new Among("irons", -1, 1), new Among("issons", -1, 1), + new Among("issants", -1, 1), new Among("it", -1, 1), + new Among("irait", 21, 1), new Among("issait", 21, 1), + new Among("issant", -1, 1), new Among("iraIent", -1, 1), + new Among("issaIent", -1, 1), new Among("irent", -1, 1), + new Among("issent", -1, 1), new Among("iront", -1, 1), + new Among("\u00EEt", -1, 1), new Among("iriez", -1, 1), + new Among("issiez", -1, 1), new Among("irez", -1, 1), + new Among("issez", -1, 1) + ], + a_6 = [new Among("a", -1, 3), + new Among("era", 0, 2), new Among("asse", -1, 3), + new Among("ante", -1, 3), new Among("\u00E9e", -1, 2), + new Among("ai", -1, 3), new Among("erai", 5, 2), + new Among("er", -1, 2), new Among("as", -1, 3), + new Among("eras", 8, 2), new Among("\u00E2mes", -1, 3), + new Among("asses", -1, 3), new Among("antes", -1, 3), + new Among("\u00E2tes", -1, 3), new Among("\u00E9es", -1, 2), + new Among("ais", -1, 3), new Among("erais", 15, 2), + new Among("ions", -1, 1), new Among("erions", 17, 2), + new Among("assions", 17, 3), new Among("erons", -1, 2), + new Among("ants", -1, 3), new Among("\u00E9s", -1, 2), + new Among("ait", -1, 3), new Among("erait", 23, 2), + new Among("ant", -1, 3), new Among("aIent", -1, 3), + new Among("eraIent", 26, 2), new Among("\u00E8rent", -1, 2), + new Among("assent", -1, 3), new Among("eront", -1, 2), + new Among("\u00E2t", -1, 3), new Among("ez", -1, 2), + new Among("iez", 32, 2), new Among("eriez", 33, 2), + new Among("assiez", 33, 3), new Among("erez", 32, 2), + new Among("\u00E9", -1, 2) + ], + a_7 = [new Among("e", -1, 3), + new Among("I\u00E8re", 0, 2), new Among("i\u00E8re", 0, 2), + new Among("ion", -1, 1), new Among("Ier", -1, 2), + new Among("ier", -1, 2), new Among("\u00EB", -1, 4) + ], + a_8 = [ + new Among("ell", -1, -1), new Among("eill", -1, -1), + new Among("enn", -1, -1), new Among("onn", -1, -1), + new Among("ett", -1, -1) + ], + g_v = [17, 65, 16, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 128, 130, 103, 8, 5 + ], + g_keep_with_s = [1, 65, 20, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 + ], + I_p2, I_p1, I_pV, sbp = new SnowballProgram(); + this.setCurrent = function(word) { + sbp.setCurrent(word); + }; + this.getCurrent = function() { + return sbp.getCurrent(); + }; + + function habr1(c1, c2, v_1) { + if (sbp.eq_s(1, c1)) { + sbp.ket = sbp.cursor; + if (sbp.in_grouping(g_v, 97, 251)) { + sbp.slice_from(c2); + sbp.cursor = v_1; + return true; + } + } + return false; + } + + function habr2(c1, c2, v_1) { + if (sbp.eq_s(1, c1)) { + sbp.ket = sbp.cursor; + sbp.slice_from(c2); + sbp.cursor = v_1; + return true; + } + return false; + } + + function r_prelude() { + var v_1, v_2; + while (true) { + v_1 = sbp.cursor; + if (sbp.in_grouping(g_v, 97, 251)) { + sbp.bra = sbp.cursor; + v_2 = sbp.cursor; + if (habr1("u", "U", v_1)) + continue; + sbp.cursor = v_2; + if (habr1("i", "I", v_1)) + continue; + sbp.cursor = v_2; + if (habr2("y", "Y", v_1)) + continue; + } + sbp.cursor = v_1; + sbp.bra = v_1; + if (!habr1("y", "Y", v_1)) { + sbp.cursor = v_1; + if (sbp.eq_s(1, "q")) { + sbp.bra = sbp.cursor; + if (habr2("u", "U", v_1)) + continue; + } + sbp.cursor = v_1; + if (v_1 >= sbp.limit) + return; + sbp.cursor++; + } + } + } + + function habr3() { + while (!sbp.in_grouping(g_v, 97, 251)) { + if (sbp.cursor >= sbp.limit) + return true; + sbp.cursor++; + } + while (!sbp.out_grouping(g_v, 97, 251)) { + if (sbp.cursor >= sbp.limit) + return true; + sbp.cursor++; + } + return false; + } + + function r_mark_regions() { + var v_1 = sbp.cursor; + I_pV = sbp.limit; + I_p1 = I_pV; + I_p2 = I_pV; + if (sbp.in_grouping(g_v, 97, 251) && sbp.in_grouping(g_v, 97, 251) && sbp.cursor < sbp.limit) + sbp.cursor++; + else { + sbp.cursor = v_1; + if (!sbp.find_among(a_0, 3)) { + sbp.cursor = v_1; + do { + if (sbp.cursor >= sbp.limit) { + sbp.cursor = I_pV; + break; + } + sbp.cursor++; + } while (!sbp.in_grouping(g_v, 97, 251)); + } + } + I_pV = sbp.cursor; + sbp.cursor = v_1; + if (!habr3()) { + I_p1 = sbp.cursor; + if (!habr3()) + I_p2 = sbp.cursor; + } + } + + function r_postlude() { + var among_var, v_1; + while (true) { + v_1 = sbp.cursor; + sbp.bra = v_1; + among_var = sbp.find_among(a_1, 4); + if (!among_var) + break; + sbp.ket = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_from("i"); + break; + case 2: + sbp.slice_from("u"); + break; + case 3: + sbp.slice_from("y"); + break; + case 4: + if (sbp.cursor >= sbp.limit) + return; + sbp.cursor++; + break; + } + } + } + + function r_RV() { + return I_pV <= sbp.cursor; + } + + function r_R1() { + return I_p1 <= sbp.cursor; + } + + function r_R2() { + return I_p2 <= sbp.cursor; + } + + function r_standard_suffix() { + var among_var, v_1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_4, 43); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + if (!r_R2()) + return false; + sbp.slice_del(); + break; + case 2: + if (!r_R2()) + return false; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "ic")) { + sbp.bra = sbp.cursor; + if (!r_R2()) + sbp.slice_from("iqU"); + else + sbp.slice_del(); + } + break; + case 3: + if (!r_R2()) + return false; + sbp.slice_from("log"); + break; + case 4: + if (!r_R2()) + return false; + sbp.slice_from("u"); + break; + case 5: + if (!r_R2()) + return false; + sbp.slice_from("ent"); + break; + case 6: + if (!r_RV()) + return false; + sbp.slice_del(); + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_2, 6); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + if (r_R2()) { + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "at")) { + sbp.bra = sbp.cursor; + if (r_R2()) + sbp.slice_del(); + } + } + break; + case 2: + if (r_R2()) + sbp.slice_del(); + else if (r_R1()) + sbp.slice_from("eux"); + break; + case 3: + if (r_R2()) + sbp.slice_del(); + break; + case 4: + if (r_RV()) + sbp.slice_from("i"); + break; + } + } + break; + case 7: + if (!r_R2()) + return false; + sbp.slice_del(); + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_3, 3); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + if (r_R2()) + sbp.slice_del(); + else + sbp.slice_from("abl"); + break; + case 2: + if (r_R2()) + sbp.slice_del(); + else + sbp.slice_from("iqU"); + break; + case 3: + if (r_R2()) + sbp.slice_del(); + break; + } + } + break; + case 8: + if (!r_R2()) + return false; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "at")) { + sbp.bra = sbp.cursor; + if (r_R2()) { + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "ic")) { + sbp.bra = sbp.cursor; + if (r_R2()) + sbp.slice_del(); + else + sbp.slice_from("iqU"); + break; + } + } + } + break; + case 9: + sbp.slice_from("eau"); + break; + case 10: + if (!r_R1()) + return false; + sbp.slice_from("al"); + break; + case 11: + if (r_R2()) + sbp.slice_del(); + else if (!r_R1()) + return false; + else + sbp.slice_from("eux"); + break; + case 12: + if (!r_R1() || !sbp.out_grouping_b(g_v, 97, 251)) + return false; + sbp.slice_del(); + break; + case 13: + if (r_RV()) + sbp.slice_from("ant"); + return false; + case 14: + if (r_RV()) + sbp.slice_from("ent"); + return false; + case 15: + v_1 = sbp.limit - sbp.cursor; + if (sbp.in_grouping_b(g_v, 97, 251) && r_RV()) { + sbp.cursor = sbp.limit - v_1; + sbp.slice_del(); + } + return false; + } + return true; + } + return false; + } + + function r_i_verb_suffix() { + var among_var, v_1; + if (sbp.cursor < I_pV) + return false; + v_1 = sbp.limit_backward; + sbp.limit_backward = I_pV; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_5, 35); + if (!among_var) { + sbp.limit_backward = v_1; + return false; + } + sbp.bra = sbp.cursor; + if (among_var == 1) { + if (!sbp.out_grouping_b(g_v, 97, 251)) { + sbp.limit_backward = v_1; + return false; + } + sbp.slice_del(); + } + sbp.limit_backward = v_1; + return true; + } + + function r_verb_suffix() { + var among_var, v_2, v_3; + if (sbp.cursor < I_pV) + return false; + v_2 = sbp.limit_backward; + sbp.limit_backward = I_pV; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_6, 38); + if (!among_var) { + sbp.limit_backward = v_2; + return false; + } + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + if (!r_R2()) { + sbp.limit_backward = v_2; + return false; + } + sbp.slice_del(); + break; + case 2: + sbp.slice_del(); + break; + case 3: + sbp.slice_del(); + v_3 = sbp.limit - sbp.cursor; + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(1, "e")) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + } else + sbp.cursor = sbp.limit - v_3; + break; + } + sbp.limit_backward = v_2; + return true; + } + + function r_residual_suffix() { + var among_var, v_1 = sbp.limit - sbp.cursor, + v_2, v_4, v_5; + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(1, "s")) { + sbp.bra = sbp.cursor; + v_2 = sbp.limit - sbp.cursor; + if (sbp.out_grouping_b(g_keep_with_s, 97, 232)) { + sbp.cursor = sbp.limit - v_2; + sbp.slice_del(); + } else + sbp.cursor = sbp.limit - v_1; + } else + sbp.cursor = sbp.limit - v_1; + if (sbp.cursor >= I_pV) { + v_4 = sbp.limit_backward; + sbp.limit_backward = I_pV; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_7, 7); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + if (r_R2()) { + v_5 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(1, "s")) { + sbp.cursor = sbp.limit - v_5; + if (!sbp.eq_s_b(1, "t")) + break; + } + sbp.slice_del(); + } + break; + case 2: + sbp.slice_from("i"); + break; + case 3: + sbp.slice_del(); + break; + case 4: + if (sbp.eq_s_b(2, "gu")) + sbp.slice_del(); + break; + } + } + sbp.limit_backward = v_4; + } + } + + function r_un_double() { + var v_1 = sbp.limit - sbp.cursor; + if (sbp.find_among_b(a_8, 5)) { + sbp.cursor = sbp.limit - v_1; + sbp.ket = sbp.cursor; + if (sbp.cursor > sbp.limit_backward) { + sbp.cursor--; + sbp.bra = sbp.cursor; + sbp.slice_del(); + } + } + } + + function r_un_accent() { + var v_1, v_2 = 1; + while (sbp.out_grouping_b(g_v, 97, 251)) + v_2--; + if (v_2 <= 0) { + sbp.ket = sbp.cursor; + v_1 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(1, "\u00E9")) { + sbp.cursor = sbp.limit - v_1; + if (!sbp.eq_s_b(1, "\u00E8")) + return; + } + sbp.bra = sbp.cursor; + sbp.slice_from("e"); + } + } + + function habr5() { + if (!r_standard_suffix()) { + sbp.cursor = sbp.limit; + if (!r_i_verb_suffix()) { + sbp.cursor = sbp.limit; + if (!r_verb_suffix()) { + sbp.cursor = sbp.limit; + r_residual_suffix(); + return; + } + } + } + sbp.cursor = sbp.limit; + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(1, "Y")) { + sbp.bra = sbp.cursor; + sbp.slice_from("i"); + } else { + sbp.cursor = sbp.limit; + if (sbp.eq_s_b(1, "\u00E7")) { + sbp.bra = sbp.cursor; + sbp.slice_from("c"); + } + } + } + this.stem = function() { + var v_1 = sbp.cursor; + r_prelude(); + sbp.cursor = v_1; + r_mark_regions(); + sbp.limit_backward = v_1; + sbp.cursor = sbp.limit; + habr5(); + sbp.cursor = sbp.limit; + r_un_double(); + sbp.cursor = sbp.limit; + r_un_accent(); + sbp.cursor = sbp.limit_backward; + r_postlude(); + return true; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.fr.stemmer, 'stemmer-fr'); + + /* stop word filter function */ + lunr.fr.stopWordFilter = function(token) { + if (lunr.fr.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.fr.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.fr.stopWordFilter.stopWords.length = 164; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.fr.stopWordFilter.stopWords.elements = ' ai aie aient aies ait as au aura aurai auraient aurais aurait auras aurez auriez aurions aurons auront aux avaient avais avait avec avez aviez avions avons ayant ayez ayons c ce ceci celà ces cet cette d dans de des du elle en es est et eu eue eues eurent eus eusse eussent eusses eussiez eussions eut eux eûmes eût eûtes furent fus fusse fussent fusses fussiez fussions fut fûmes fût fûtes ici il ils j je l la le les leur leurs lui m ma mais me mes moi mon même n ne nos notre nous on ont ou par pas pour qu que quel quelle quelles quels qui s sa sans se sera serai seraient serais serait seras serez seriez serions serons seront ses soi soient sois soit sommes son sont soyez soyons suis sur t ta te tes toi ton tu un une vos votre vous y à étaient étais était étant étiez étions été étée étées étés êtes'.split(' '); + + lunr.Pipeline.registerFunction(lunr.fr.stopWordFilter, 'stopWordFilter-fr'); + }; +})) \ No newline at end of file diff --git a/js/lunr.fr.min.js b/js/lunr.fr.min.js new file mode 100644 index 0000000..2f29909 --- /dev/null +++ b/js/lunr.fr.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,s,i;r.fr=function(){this.pipeline.reset(),this.pipeline.add(r.fr.trimmer,r.fr.stopWordFilter,r.fr.stemmer)},r.fr.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.fr.trimmer=r.trimmerSupport.generateTrimmer(r.fr.wordCharacters),r.Pipeline.registerFunction(r.fr.trimmer,"trimmer-fr"),r.fr.stemmer=(e=r.stemmerSupport.Among,s=r.stemmerSupport.SnowballProgram,i=new function(){var i,n,t,o=[new e("col",-1,-1),new e("par",-1,-1),new e("tap",-1,-1)],u=[new e("",-1,4),new e("I",0,1),new e("U",0,2),new e("Y",0,3)],c=[new e("iqU",-1,3),new e("abl",-1,3),new e("Ièr",-1,4),new e("ièr",-1,4),new e("eus",-1,2),new e("iv",-1,1)],a=[new e("ic",-1,2),new e("abil",-1,1),new e("iv",-1,3)],l=[new e("iqUe",-1,1),new e("atrice",-1,2),new e("ance",-1,1),new e("ence",-1,5),new e("logie",-1,3),new e("able",-1,1),new e("isme",-1,1),new e("euse",-1,11),new e("iste",-1,1),new e("ive",-1,8),new e("if",-1,8),new e("usion",-1,4),new e("ation",-1,2),new e("ution",-1,4),new e("ateur",-1,2),new e("iqUes",-1,1),new e("atrices",-1,2),new e("ances",-1,1),new e("ences",-1,5),new e("logies",-1,3),new e("ables",-1,1),new e("ismes",-1,1),new e("euses",-1,11),new e("istes",-1,1),new e("ives",-1,8),new e("ifs",-1,8),new e("usions",-1,4),new e("ations",-1,2),new e("utions",-1,4),new e("ateurs",-1,2),new e("ments",-1,15),new e("ements",30,6),new e("issements",31,12),new e("ités",-1,7),new e("ment",-1,15),new e("ement",34,6),new e("issement",35,12),new e("amment",34,13),new e("emment",34,14),new e("aux",-1,10),new e("eaux",39,9),new e("eux",-1,1),new e("ité",-1,7)],w=[new e("ira",-1,1),new e("ie",-1,1),new e("isse",-1,1),new e("issante",-1,1),new e("i",-1,1),new e("irai",4,1),new e("ir",-1,1),new e("iras",-1,1),new e("ies",-1,1),new e("îmes",-1,1),new e("isses",-1,1),new e("issantes",-1,1),new e("îtes",-1,1),new e("is",-1,1),new e("irais",13,1),new e("issais",13,1),new e("irions",-1,1),new e("issions",-1,1),new e("irons",-1,1),new e("issons",-1,1),new e("issants",-1,1),new e("it",-1,1),new e("irait",21,1),new e("issait",21,1),new e("issant",-1,1),new e("iraIent",-1,1),new e("issaIent",-1,1),new e("irent",-1,1),new e("issent",-1,1),new e("iront",-1,1),new e("ît",-1,1),new e("iriez",-1,1),new e("issiez",-1,1),new e("irez",-1,1),new e("issez",-1,1)],f=[new e("a",-1,3),new e("era",0,2),new e("asse",-1,3),new e("ante",-1,3),new e("ée",-1,2),new e("ai",-1,3),new e("erai",5,2),new e("er",-1,2),new e("as",-1,3),new e("eras",8,2),new e("âmes",-1,3),new e("asses",-1,3),new e("antes",-1,3),new e("âtes",-1,3),new e("ées",-1,2),new e("ais",-1,3),new e("erais",15,2),new e("ions",-1,1),new e("erions",17,2),new e("assions",17,3),new e("erons",-1,2),new e("ants",-1,3),new e("és",-1,2),new e("ait",-1,3),new e("erait",23,2),new e("ant",-1,3),new e("aIent",-1,3),new e("eraIent",26,2),new e("èrent",-1,2),new e("assent",-1,3),new e("eront",-1,2),new e("ât",-1,3),new e("ez",-1,2),new e("iez",32,2),new e("eriez",33,2),new e("assiez",33,3),new e("erez",32,2),new e("é",-1,2)],m=[new e("e",-1,3),new e("Ière",0,2),new e("ière",0,2),new e("ion",-1,1),new e("Ier",-1,2),new e("ier",-1,2),new e("ë",-1,4)],_=[new e("ell",-1,-1),new e("eill",-1,-1),new e("enn",-1,-1),new e("onn",-1,-1),new e("ett",-1,-1)],b=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,128,130,103,8,5],d=[1,65,20,0,0,0,0,0,0,0,0,0,0,0,0,0,128],k=new s;function p(e,r,s){return k.eq_s(1,e)&&(k.ket=k.cursor,k.in_grouping(b,97,251))&&(k.slice_from(r),k.cursor=s,1)}function g(e,r,s){return k.eq_s(1,e)&&(k.ket=k.cursor,k.slice_from(r),k.cursor=s,1)}function q(){for(;!k.in_grouping(b,97,251);){if(k.cursor>=k.limit)return 1;k.cursor++}for(;!k.out_grouping(b,97,251);){if(k.cursor>=k.limit)return 1;k.cursor++}}function v(){return t<=k.cursor}function z(){return n<=k.cursor}function h(){return i<=k.cursor}function W(){if(function(){var e,r;if(k.ket=k.cursor,e=k.find_among_b(l,43)){switch(k.bra=k.cursor,e){case 1:if(!h())return;k.slice_del();break;case 2:if(!h())return;k.slice_del(),k.ket=k.cursor,k.eq_s_b(2,"ic")&&(k.bra=k.cursor,h()?k.slice_del():k.slice_from("iqU"));break;case 3:if(!h())return;k.slice_from("log");break;case 4:if(!h())return;k.slice_from("u");break;case 5:if(!h())return;k.slice_from("ent");break;case 6:if(!v())return;if(k.slice_del(),k.ket=k.cursor,e=k.find_among_b(c,6))switch(k.bra=k.cursor,e){case 1:h()&&(k.slice_del(),k.ket=k.cursor,k.eq_s_b(2,"at"))&&(k.bra=k.cursor,h())&&k.slice_del();break;case 2:h()?k.slice_del():z()&&k.slice_from("eux");break;case 3:h()&&k.slice_del();break;case 4:v()&&k.slice_from("i")}break;case 7:if(!h())return;if(k.slice_del(),k.ket=k.cursor,e=k.find_among_b(a,3))switch(k.bra=k.cursor,e){case 1:h()?k.slice_del():k.slice_from("abl");break;case 2:h()?k.slice_del():k.slice_from("iqU");break;case 3:h()&&k.slice_del()}break;case 8:if(!h())return;k.slice_del(),k.ket=k.cursor,k.eq_s_b(2,"at")&&(k.bra=k.cursor,h())&&(k.slice_del(),k.ket=k.cursor,k.eq_s_b(2,"ic"))&&(k.bra=k.cursor,h()?k.slice_del():k.slice_from("iqU"));break;case 9:k.slice_from("eau");break;case 10:if(!z())return;k.slice_from("al");break;case 11:if(h())k.slice_del();else{if(!z())return;k.slice_from("eux")}break;case 12:if(!z()||!k.out_grouping_b(b,97,251))return;k.slice_del();break;case 13:return v()&&k.slice_from("ant"),0;case 14:return v()&&k.slice_from("ent"),0;case 15:return r=k.limit-k.cursor,k.in_grouping_b(b,97,251)&&v()&&(k.cursor=k.limit-r,k.slice_del()),0}return 1}}()||(k.cursor=k.limit,function(){var e,r;if(!(k.cursor=t){if(e=k.limit_backward,k.limit_backward=t,k.ket=k.cursor,s=k.find_among_b(m,7))switch(k.bra=k.cursor,s){case 1:if(h()){if(r=k.limit-k.cursor,!k.eq_s_b(1,"s")&&(k.cursor=k.limit-r,!k.eq_s_b(1,"t")))break;k.slice_del()}break;case 2:k.slice_from("i");break;case 3:k.slice_del();break;case 4:k.eq_s_b(2,"gu")&&k.slice_del()}k.limit_backward=e}}}this.setCurrent=function(e){k.setCurrent(e)},this.getCurrent=function(){return k.getCurrent()},this.stem=function(){var e=k.cursor,r=(!function(){for(var e,r;;){if(e=k.cursor,k.in_grouping(b,97,251)){if(k.bra=k.cursor,r=k.cursor,p("u","U",e))continue;if(k.cursor=r,p("i","I",e))continue;if(k.cursor=r,g("y","Y",e))continue}if(k.cursor=e,k.bra=e,!p("y","Y",e)&&(k.cursor=e,!k.eq_s(1,"q")||(k.bra=k.cursor,!g("u","U",e)))){if((k.cursor=e)>=k.limit)return;k.cursor++}}}(),k.cursor=e,k.cursor);if(t=k.limit,i=n=t,k.in_grouping(b,97,251)&&k.in_grouping(b,97,251)&&k.cursor=k.limit){k.cursor=t;break}}while(k.cursor++,!k.in_grouping(b,97,251))}t=k.cursor,k.cursor=r,q()||(n=k.cursor,q())||(i=k.cursor),k.limit_backward=e,k.cursor=k.limit,W(),k.cursor=k.limit,r=k.limit-k.cursor,k.find_among_b(_,5)&&(k.cursor=k.limit-r,k.ket=k.cursor,k.cursor>k.limit_backward)&&(k.cursor--,k.bra=k.cursor,k.slice_del()),k.cursor=k.limit;for(var s=1;k.out_grouping_b(b,97,251);)s--;return s<=0&&(k.ket=k.cursor,e=k.limit-k.cursor,k.eq_s_b(1,"é")||(k.cursor=k.limit-e,k.eq_s_b(1,"è")))&&(k.bra=k.cursor,k.slice_from("e")),k.cursor=k.limit_backward,function(){for(var e;e=k.cursor,k.bra=e,e=k.find_among(u,4);)switch(k.ket=k.cursor,e){case 1:k.slice_from("i");break;case 2:k.slice_from("u");break;case 3:k.slice_from("y");break;case 4:if(k.cursor>=k.limit)return;k.cursor++}}(),!0}},function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}),r.Pipeline.registerFunction(r.fr.stemmer,"stemmer-fr"),r.fr.stopWordFilter=function(e){if(-1===r.fr.stopWordFilter.stopWords.indexOf(e))return e},r.fr.stopWordFilter.stopWords=new r.SortedSet,r.fr.stopWordFilter.stopWords.length=164,r.fr.stopWordFilter.stopWords.elements=" ai aie aient aies ait as au aura aurai auraient aurais aurait auras aurez auriez aurions aurons auront aux avaient avais avait avec avez aviez avions avons ayant ayez ayons c ce ceci celà ces cet cette d dans de des du elle en es est et eu eue eues eurent eus eusse eussent eusses eussiez eussions eut eux eûmes eût eûtes furent fus fusse fussent fusses fussiez fussions fut fûmes fût fûtes ici il ils j je l la le les leur leurs lui m ma mais me mes moi mon même n ne nos notre nous on ont ou par pas pour qu que quel quelle quelles quels qui s sa sans se sera serai seraient serais serait seras serez seriez serions serons seront ses soi soient sois soit sommes son sont soyez soyons suis sur t ta te tes toi ton tu un une vos votre vous y à étaient étais était étant étiez étions été étée étées étés êtes".split(" "),r.Pipeline.registerFunction(r.fr.stopWordFilter,"stopWordFilter-fr")}}); \ No newline at end of file diff --git a/js/lunr.hu.js b/js/lunr.hu.js new file mode 100644 index 0000000..de7dc97 --- /dev/null +++ b/js/lunr.hu.js @@ -0,0 +1,561 @@ +/*! + * Lunr languages, `Hungarian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.hu = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.hu.trimmer, + lunr.hu.stopWordFilter, + lunr.hu.stemmer + ); + }; + + /* lunr trimmer function */ + lunr.hu.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; + lunr.hu.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.hu.wordCharacters); + + lunr.Pipeline.registerFunction(lunr.hu.trimmer, 'trimmer-hu'); + + /* lunr stemmer function */ + lunr.hu.stemmer = (function() { + /* create the wrapped stemmer object */ + var Among = lunr.stemmerSupport.Among, + SnowballProgram = lunr.stemmerSupport.SnowballProgram, + st = new function HungarianStemmer() { + var a_0 = [new Among("cs", -1, -1), new Among("dzs", -1, -1), + new Among("gy", -1, -1), new Among("ly", -1, -1), + new Among("ny", -1, -1), new Among("sz", -1, -1), + new Among("ty", -1, -1), new Among("zs", -1, -1) + ], + a_1 = [ + new Among("\u00E1", -1, 1), new Among("\u00E9", -1, 2) + ], + a_2 = [ + new Among("bb", -1, -1), new Among("cc", -1, -1), + new Among("dd", -1, -1), new Among("ff", -1, -1), + new Among("gg", -1, -1), new Among("jj", -1, -1), + new Among("kk", -1, -1), new Among("ll", -1, -1), + new Among("mm", -1, -1), new Among("nn", -1, -1), + new Among("pp", -1, -1), new Among("rr", -1, -1), + new Among("ccs", -1, -1), new Among("ss", -1, -1), + new Among("zzs", -1, -1), new Among("tt", -1, -1), + new Among("vv", -1, -1), new Among("ggy", -1, -1), + new Among("lly", -1, -1), new Among("nny", -1, -1), + new Among("tty", -1, -1), new Among("ssz", -1, -1), + new Among("zz", -1, -1) + ], + a_3 = [new Among("al", -1, 1), + new Among("el", -1, 2) + ], + a_4 = [new Among("ba", -1, -1), + new Among("ra", -1, -1), new Among("be", -1, -1), + new Among("re", -1, -1), new Among("ig", -1, -1), + new Among("nak", -1, -1), new Among("nek", -1, -1), + new Among("val", -1, -1), new Among("vel", -1, -1), + new Among("ul", -1, -1), new Among("n\u00E1l", -1, -1), + new Among("n\u00E9l", -1, -1), new Among("b\u00F3l", -1, -1), + new Among("r\u00F3l", -1, -1), new Among("t\u00F3l", -1, -1), + new Among("b\u00F5l", -1, -1), new Among("r\u00F5l", -1, -1), + new Among("t\u00F5l", -1, -1), new Among("\u00FCl", -1, -1), + new Among("n", -1, -1), new Among("an", 19, -1), + new Among("ban", 20, -1), new Among("en", 19, -1), + new Among("ben", 22, -1), new Among("k\u00E9ppen", 22, -1), + new Among("on", 19, -1), new Among("\u00F6n", 19, -1), + new Among("k\u00E9pp", -1, -1), new Among("kor", -1, -1), + new Among("t", -1, -1), new Among("at", 29, -1), + new Among("et", 29, -1), new Among("k\u00E9nt", 29, -1), + new Among("ank\u00E9nt", 32, -1), new Among("enk\u00E9nt", 32, -1), + new Among("onk\u00E9nt", 32, -1), new Among("ot", 29, -1), + new Among("\u00E9rt", 29, -1), new Among("\u00F6t", 29, -1), + new Among("hez", -1, -1), new Among("hoz", -1, -1), + new Among("h\u00F6z", -1, -1), new Among("v\u00E1", -1, -1), + new Among("v\u00E9", -1, -1) + ], + a_5 = [new Among("\u00E1n", -1, 2), + new Among("\u00E9n", -1, 1), new Among("\u00E1nk\u00E9nt", -1, 3) + ], + a_6 = [ + new Among("stul", -1, 2), new Among("astul", 0, 1), + new Among("\u00E1stul", 0, 3), new Among("st\u00FCl", -1, 2), + new Among("est\u00FCl", 3, 1), new Among("\u00E9st\u00FCl", 3, 4) + ], + a_7 = [ + new Among("\u00E1", -1, 1), new Among("\u00E9", -1, 2) + ], + a_8 = [ + new Among("k", -1, 7), new Among("ak", 0, 4), + new Among("ek", 0, 6), new Among("ok", 0, 5), + new Among("\u00E1k", 0, 1), new Among("\u00E9k", 0, 2), + new Among("\u00F6k", 0, 3) + ], + a_9 = [new Among("\u00E9i", -1, 7), + new Among("\u00E1\u00E9i", 0, 6), new Among("\u00E9\u00E9i", 0, 5), + new Among("\u00E9", -1, 9), new Among("k\u00E9", 3, 4), + new Among("ak\u00E9", 4, 1), new Among("ek\u00E9", 4, 1), + new Among("ok\u00E9", 4, 1), new Among("\u00E1k\u00E9", 4, 3), + new Among("\u00E9k\u00E9", 4, 2), new Among("\u00F6k\u00E9", 4, 1), + new Among("\u00E9\u00E9", 3, 8) + ], + a_10 = [new Among("a", -1, 18), + new Among("ja", 0, 17), new Among("d", -1, 16), + new Among("ad", 2, 13), new Among("ed", 2, 13), + new Among("od", 2, 13), new Among("\u00E1d", 2, 14), + new Among("\u00E9d", 2, 15), new Among("\u00F6d", 2, 13), + new Among("e", -1, 18), new Among("je", 9, 17), + new Among("nk", -1, 4), new Among("unk", 11, 1), + new Among("\u00E1nk", 11, 2), new Among("\u00E9nk", 11, 3), + new Among("\u00FCnk", 11, 1), new Among("uk", -1, 8), + new Among("juk", 16, 7), new Among("\u00E1juk", 17, 5), + new Among("\u00FCk", -1, 8), new Among("j\u00FCk", 19, 7), + new Among("\u00E9j\u00FCk", 20, 6), new Among("m", -1, 12), + new Among("am", 22, 9), new Among("em", 22, 9), + new Among("om", 22, 9), new Among("\u00E1m", 22, 10), + new Among("\u00E9m", 22, 11), new Among("o", -1, 18), + new Among("\u00E1", -1, 19), new Among("\u00E9", -1, 20) + ], + a_11 = [ + new Among("id", -1, 10), new Among("aid", 0, 9), + new Among("jaid", 1, 6), new Among("eid", 0, 9), + new Among("jeid", 3, 6), new Among("\u00E1id", 0, 7), + new Among("\u00E9id", 0, 8), new Among("i", -1, 15), + new Among("ai", 7, 14), new Among("jai", 8, 11), + new Among("ei", 7, 14), new Among("jei", 10, 11), + new Among("\u00E1i", 7, 12), new Among("\u00E9i", 7, 13), + new Among("itek", -1, 24), new Among("eitek", 14, 21), + new Among("jeitek", 15, 20), new Among("\u00E9itek", 14, 23), + new Among("ik", -1, 29), new Among("aik", 18, 26), + new Among("jaik", 19, 25), new Among("eik", 18, 26), + new Among("jeik", 21, 25), new Among("\u00E1ik", 18, 27), + new Among("\u00E9ik", 18, 28), new Among("ink", -1, 20), + new Among("aink", 25, 17), new Among("jaink", 26, 16), + new Among("eink", 25, 17), new Among("jeink", 28, 16), + new Among("\u00E1ink", 25, 18), new Among("\u00E9ink", 25, 19), + new Among("aitok", -1, 21), new Among("jaitok", 32, 20), + new Among("\u00E1itok", -1, 22), new Among("im", -1, 5), + new Among("aim", 35, 4), new Among("jaim", 36, 1), + new Among("eim", 35, 4), new Among("jeim", 38, 1), + new Among("\u00E1im", 35, 2), new Among("\u00E9im", 35, 3) + ], + g_v = [ + 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 52, 14 + ], + I_p1, sbp = new SnowballProgram(); + this.setCurrent = function(word) { + sbp.setCurrent(word); + }; + this.getCurrent = function() { + return sbp.getCurrent(); + }; + + function r_mark_regions() { + var v_1 = sbp.cursor, + v_2; + I_p1 = sbp.limit; + if (sbp.in_grouping(g_v, 97, 252)) { + while (true) { + v_2 = sbp.cursor; + if (sbp.out_grouping(g_v, 97, 252)) { + sbp.cursor = v_2; + if (!sbp.find_among(a_0, 8)) { + sbp.cursor = v_2; + if (v_2 < sbp.limit) + sbp.cursor++; + } + I_p1 = sbp.cursor; + return; + } + sbp.cursor = v_2; + if (v_2 >= sbp.limit) { + I_p1 = v_2; + return; + } + sbp.cursor++; + } + } + sbp.cursor = v_1; + if (sbp.out_grouping(g_v, 97, 252)) { + while (!sbp.in_grouping(g_v, 97, 252)) { + if (sbp.cursor >= sbp.limit) + return; + sbp.cursor++; + } + I_p1 = sbp.cursor; + } + } + + function r_R1() { + return I_p1 <= sbp.cursor; + } + + function r_v_ending() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_1, 2); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R1()) { + switch (among_var) { + case 1: + sbp.slice_from("a"); + break; + case 2: + sbp.slice_from("e"); + break; + } + } + } + } + + function r_double() { + var v_1 = sbp.limit - sbp.cursor; + if (!sbp.find_among_b(a_2, 23)) + return false; + sbp.cursor = sbp.limit - v_1; + return true; + } + + function r_undouble() { + if (sbp.cursor > sbp.limit_backward) { + sbp.cursor--; + sbp.ket = sbp.cursor; + var c = sbp.cursor - 1; + if (sbp.limit_backward <= c && c <= sbp.limit) { + sbp.cursor = c; + sbp.bra = c; + sbp.slice_del(); + } + } + } + + function r_instrum() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_3, 2); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R1()) { + if (among_var == 1 || among_var == 2) + if (!r_double()) + return; + sbp.slice_del(); + r_undouble(); + } + } + } + + function r_case() { + sbp.ket = sbp.cursor; + if (sbp.find_among_b(a_4, 44)) { + sbp.bra = sbp.cursor; + if (r_R1()) { + sbp.slice_del(); + r_v_ending(); + } + } + } + + function r_case_special() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_5, 3); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R1()) { + switch (among_var) { + case 1: + sbp.slice_from("e"); + break; + case 2: + case 3: + sbp.slice_from("a"); + break; + } + } + } + } + + function r_case_other() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_6, 6); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R1()) { + switch (among_var) { + case 1: + case 2: + sbp.slice_del(); + break; + case 3: + sbp.slice_from("a"); + break; + case 4: + sbp.slice_from("e"); + break; + } + } + } + } + + function r_factive() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_7, 2); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R1()) { + if (among_var == 1 || among_var == 2) + if (!r_double()) + return; + sbp.slice_del(); + r_undouble() + } + } + } + + function r_plural() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_8, 7); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R1()) { + switch (among_var) { + case 1: + sbp.slice_from("a"); + break; + case 2: + sbp.slice_from("e"); + break; + case 3: + case 4: + case 5: + case 6: + case 7: + sbp.slice_del(); + break; + } + } + } + } + + function r_owned() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_9, 12); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R1()) { + switch (among_var) { + case 1: + case 4: + case 7: + case 9: + sbp.slice_del(); + break; + case 2: + case 5: + case 8: + sbp.slice_from("e"); + break; + case 3: + case 6: + sbp.slice_from("a"); + break; + } + } + } + } + + function r_sing_owner() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_10, 31); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R1()) { + switch (among_var) { + case 1: + case 4: + case 7: + case 8: + case 9: + case 12: + case 13: + case 16: + case 17: + case 18: + sbp.slice_del(); + break; + case 2: + case 5: + case 10: + case 14: + case 19: + sbp.slice_from("a"); + break; + case 3: + case 6: + case 11: + case 15: + case 20: + sbp.slice_from("e"); + break; + } + } + } + } + + function r_plur_owner() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_11, 42); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R1()) { + switch (among_var) { + case 1: + case 4: + case 5: + case 6: + case 9: + case 10: + case 11: + case 14: + case 15: + case 16: + case 17: + case 20: + case 21: + case 24: + case 25: + case 26: + case 29: + sbp.slice_del(); + break; + case 2: + case 7: + case 12: + case 18: + case 22: + case 27: + sbp.slice_from("a"); + break; + case 3: + case 8: + case 13: + case 19: + case 23: + case 28: + sbp.slice_from("e"); + break; + } + } + } + } + this.stem = function() { + var v_1 = sbp.cursor; + r_mark_regions(); + sbp.limit_backward = v_1; + sbp.cursor = sbp.limit; + r_instrum(); + sbp.cursor = sbp.limit; + r_case(); + sbp.cursor = sbp.limit; + r_case_special(); + sbp.cursor = sbp.limit; + r_case_other(); + sbp.cursor = sbp.limit; + r_factive(); + sbp.cursor = sbp.limit; + r_owned(); + sbp.cursor = sbp.limit; + r_sing_owner(); + sbp.cursor = sbp.limit; + r_plur_owner(); + sbp.cursor = sbp.limit; + r_plural(); + return true; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.hu.stemmer, 'stemmer-hu'); + + /* stop word filter function */ + lunr.hu.stopWordFilter = function(token) { + if (lunr.hu.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.hu.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.hu.stopWordFilter.stopWords.length = 200; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.hu.stopWordFilter.stopWords.elements = ' a abban ahhoz ahogy ahol aki akik akkor alatt amely amelyek amelyekben amelyeket amelyet amelynek ami amikor amit amolyan amíg annak arra arról az azok azon azonban azt aztán azután azzal azért be belül benne bár cikk cikkek cikkeket csak de e ebben eddig egy egyes egyetlen egyik egyre egyéb egész ehhez ekkor el ellen elsõ elég elõ elõször elõtt emilyen ennek erre ez ezek ezen ezt ezzel ezért fel felé hanem hiszen hogy hogyan igen ill ill. illetve ilyen ilyenkor ismét ison itt jobban jó jól kell kellett keressünk keresztül ki kívül között közül legalább legyen lehet lehetett lenne lenni lesz lett maga magát majd majd meg mellett mely melyek mert mi mikor milyen minden mindenki mindent mindig mint mintha mit mivel miért most már más másik még míg nagy nagyobb nagyon ne nekem neki nem nincs néha néhány nélkül olyan ott pedig persze rá s saját sem semmi sok sokat sokkal szemben szerint szinte számára talán tehát teljes tovább továbbá több ugyanis utolsó után utána vagy vagyis vagyok valaki valami valamint való van vannak vele vissza viszont volna volt voltak voltam voltunk által általában át én éppen és így õ õk õket össze úgy új újabb újra'.split(' '); + + lunr.Pipeline.registerFunction(lunr.hu.stopWordFilter, 'stopWordFilter-hu'); + }; +})) \ No newline at end of file diff --git a/js/lunr.hu.min.js b/js/lunr.hu.min.js new file mode 100644 index 0000000..2c556e5 --- /dev/null +++ b/js/lunr.hu.min.js @@ -0,0 +1 @@ +!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(n){if(void 0===n)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===n.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,_,r;n.hu=function(){this.pipeline.reset(),this.pipeline.add(n.hu.trimmer,n.hu.stopWordFilter,n.hu.stemmer)},n.hu.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",n.hu.trimmer=n.trimmerSupport.generateTrimmer(n.hu.wordCharacters),n.Pipeline.registerFunction(n.hu.trimmer,"trimmer-hu"),n.hu.stemmer=(e=n.stemmerSupport.Among,_=n.stemmerSupport.SnowballProgram,r=new function(){var r,i=[new e("cs",-1,-1),new e("dzs",-1,-1),new e("gy",-1,-1),new e("ly",-1,-1),new e("ny",-1,-1),new e("sz",-1,-1),new e("ty",-1,-1),new e("zs",-1,-1)],n=[new e("á",-1,1),new e("é",-1,2)],s=[new e("bb",-1,-1),new e("cc",-1,-1),new e("dd",-1,-1),new e("ff",-1,-1),new e("gg",-1,-1),new e("jj",-1,-1),new e("kk",-1,-1),new e("ll",-1,-1),new e("mm",-1,-1),new e("nn",-1,-1),new e("pp",-1,-1),new e("rr",-1,-1),new e("ccs",-1,-1),new e("ss",-1,-1),new e("zzs",-1,-1),new e("tt",-1,-1),new e("vv",-1,-1),new e("ggy",-1,-1),new e("lly",-1,-1),new e("nny",-1,-1),new e("tty",-1,-1),new e("ssz",-1,-1),new e("zz",-1,-1)],a=[new e("al",-1,1),new e("el",-1,2)],t=[new e("ba",-1,-1),new e("ra",-1,-1),new e("be",-1,-1),new e("re",-1,-1),new e("ig",-1,-1),new e("nak",-1,-1),new e("nek",-1,-1),new e("val",-1,-1),new e("vel",-1,-1),new e("ul",-1,-1),new e("nál",-1,-1),new e("nél",-1,-1),new e("ból",-1,-1),new e("ról",-1,-1),new e("tól",-1,-1),new e("bõl",-1,-1),new e("rõl",-1,-1),new e("tõl",-1,-1),new e("ül",-1,-1),new e("n",-1,-1),new e("an",19,-1),new e("ban",20,-1),new e("en",19,-1),new e("ben",22,-1),new e("képpen",22,-1),new e("on",19,-1),new e("ön",19,-1),new e("képp",-1,-1),new e("kor",-1,-1),new e("t",-1,-1),new e("at",29,-1),new e("et",29,-1),new e("ként",29,-1),new e("anként",32,-1),new e("enként",32,-1),new e("onként",32,-1),new e("ot",29,-1),new e("ért",29,-1),new e("öt",29,-1),new e("hez",-1,-1),new e("hoz",-1,-1),new e("höz",-1,-1),new e("vá",-1,-1),new e("vé",-1,-1)],o=[new e("án",-1,2),new e("én",-1,1),new e("ánként",-1,3)],w=[new e("stul",-1,2),new e("astul",0,1),new e("ástul",0,3),new e("stül",-1,2),new e("estül",3,1),new e("éstül",3,4)],c=[new e("á",-1,1),new e("é",-1,2)],l=[new e("k",-1,7),new e("ak",0,4),new e("ek",0,6),new e("ok",0,5),new e("ák",0,1),new e("ék",0,2),new e("ök",0,3)],m=[new e("éi",-1,7),new e("áéi",0,6),new e("ééi",0,5),new e("é",-1,9),new e("ké",3,4),new e("aké",4,1),new e("eké",4,1),new e("oké",4,1),new e("áké",4,3),new e("éké",4,2),new e("öké",4,1),new e("éé",3,8)],u=[new e("a",-1,18),new e("ja",0,17),new e("d",-1,16),new e("ad",2,13),new e("ed",2,13),new e("od",2,13),new e("ád",2,14),new e("éd",2,15),new e("öd",2,13),new e("e",-1,18),new e("je",9,17),new e("nk",-1,4),new e("unk",11,1),new e("ánk",11,2),new e("énk",11,3),new e("ünk",11,1),new e("uk",-1,8),new e("juk",16,7),new e("ájuk",17,5),new e("ük",-1,8),new e("jük",19,7),new e("éjük",20,6),new e("m",-1,12),new e("am",22,9),new e("em",22,9),new e("om",22,9),new e("ám",22,10),new e("ém",22,11),new e("o",-1,18),new e("á",-1,19),new e("é",-1,20)],k=[new e("id",-1,10),new e("aid",0,9),new e("jaid",1,6),new e("eid",0,9),new e("jeid",3,6),new e("áid",0,7),new e("éid",0,8),new e("i",-1,15),new e("ai",7,14),new e("jai",8,11),new e("ei",7,14),new e("jei",10,11),new e("ái",7,12),new e("éi",7,13),new e("itek",-1,24),new e("eitek",14,21),new e("jeitek",15,20),new e("éitek",14,23),new e("ik",-1,29),new e("aik",18,26),new e("jaik",19,25),new e("eik",18,26),new e("jeik",21,25),new e("áik",18,27),new e("éik",18,28),new e("ink",-1,20),new e("aink",25,17),new e("jaink",26,16),new e("eink",25,17),new e("jeink",28,16),new e("áink",25,18),new e("éink",25,19),new e("aitok",-1,21),new e("jaitok",32,20),new e("áitok",-1,22),new e("im",-1,5),new e("aim",35,4),new e("jaim",36,1),new e("eim",35,4),new e("jeim",38,1),new e("áim",35,2),new e("éim",35,3)],d=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,52,14],b=new _;function f(){return r<=b.cursor}function g(){var e=b.limit-b.cursor;return b.find_among_b(s,23)&&(b.cursor=b.limit-e,1)}function h(){var e;b.cursor>b.limit_backward&&(b.cursor--,b.ket=b.cursor,e=b.cursor-1,b.limit_backward<=e)&&e<=b.limit&&(b.cursor=e,b.bra=e,b.slice_del())}function p(){var e;if((b.ket=b.cursor,b.find_among_b(t,44))&&(b.bra=b.cursor,f()&&(b.slice_del(),b.ket=b.cursor,e=b.find_among_b(n,2))&&(b.bra=b.cursor,f())))switch(e){case 1:b.slice_from("a");break;case 2:b.slice_from("e")}}this.setCurrent=function(e){b.setCurrent(e)},this.getCurrent=function(){return b.getCurrent()},this.stem=function(){var e=b.cursor;if(!function(){var e,n=b.cursor;if(r=b.limit,b.in_grouping(d,97,252))for(;;){if(e=b.cursor,b.out_grouping(d,97,252))return b.cursor=e,b.find_among(i,8)||(b.cursor=e)=b.limit)return r=e;b.cursor++}if(b.cursor=n,b.out_grouping(d,97,252)){for(;!b.in_grouping(d,97,252);){if(b.cursor>=b.limit)return;b.cursor++}r=b.cursor}}(),b.limit_backward=e,b.cursor=b.limit,b.ket=b.cursor,(e=b.find_among_b(a,2))&&(b.bra=b.cursor,f())&&(1!=e&&2!=e||g())&&(b.slice_del(),h()),b.cursor=b.limit,p(),b.cursor=b.limit,b.ket=b.cursor,(e=b.find_among_b(o,3))&&(b.bra=b.cursor,f()))switch(e){case 1:b.slice_from("e");break;case 2:case 3:b.slice_from("a")}if(b.cursor=b.limit,b.ket=b.cursor,(e=b.find_among_b(w,6))&&(b.bra=b.cursor,f()))switch(e){case 1:case 2:b.slice_del();break;case 3:b.slice_from("a");break;case 4:b.slice_from("e")}if(b.cursor=b.limit,b.ket=b.cursor,(e=b.find_among_b(c,2))&&(b.bra=b.cursor,f())&&(1!=e&&2!=e||g())&&(b.slice_del(),h()),b.cursor=b.limit,b.ket=b.cursor,(e=b.find_among_b(m,12))&&(b.bra=b.cursor,f()))switch(e){case 1:case 4:case 7:case 9:b.slice_del();break;case 2:case 5:case 8:b.slice_from("e");break;case 3:case 6:b.slice_from("a")}if(b.cursor=b.limit,b.ket=b.cursor,(e=b.find_among_b(u,31))&&(b.bra=b.cursor,f()))switch(e){case 1:case 4:case 7:case 8:case 9:case 12:case 13:case 16:case 17:case 18:b.slice_del();break;case 2:case 5:case 10:case 14:case 19:b.slice_from("a");break;case 3:case 6:case 11:case 15:case 20:b.slice_from("e")}if(b.cursor=b.limit,b.ket=b.cursor,(e=b.find_among_b(k,42))&&(b.bra=b.cursor,f()))switch(e){case 1:case 4:case 5:case 6:case 9:case 10:case 11:case 14:case 15:case 16:case 17:case 20:case 21:case 24:case 25:case 26:case 29:b.slice_del();break;case 2:case 7:case 12:case 18:case 22:case 27:b.slice_from("a");break;case 3:case 8:case 13:case 19:case 23:case 28:b.slice_from("e")}if(b.cursor=b.limit,b.ket=b.cursor,(e=b.find_among_b(l,7))&&(b.bra=b.cursor,f()))switch(e){case 1:b.slice_from("a");break;case 2:b.slice_from("e");break;case 3:case 4:case 5:case 6:case 7:b.slice_del()}return!0}},function(e){return r.setCurrent(e),r.stem(),r.getCurrent()}),n.Pipeline.registerFunction(n.hu.stemmer,"stemmer-hu"),n.hu.stopWordFilter=function(e){if(-1===n.hu.stopWordFilter.stopWords.indexOf(e))return e},n.hu.stopWordFilter.stopWords=new n.SortedSet,n.hu.stopWordFilter.stopWords.length=200,n.hu.stopWordFilter.stopWords.elements=" a abban ahhoz ahogy ahol aki akik akkor alatt amely amelyek amelyekben amelyeket amelyet amelynek ami amikor amit amolyan amíg annak arra arról az azok azon azonban azt aztán azután azzal azért be belül benne bár cikk cikkek cikkeket csak de e ebben eddig egy egyes egyetlen egyik egyre egyéb egész ehhez ekkor el ellen elsõ elég elõ elõször elõtt emilyen ennek erre ez ezek ezen ezt ezzel ezért fel felé hanem hiszen hogy hogyan igen ill ill. illetve ilyen ilyenkor ismét ison itt jobban jó jól kell kellett keressünk keresztül ki kívül között közül legalább legyen lehet lehetett lenne lenni lesz lett maga magát majd majd meg mellett mely melyek mert mi mikor milyen minden mindenki mindent mindig mint mintha mit mivel miért most már más másik még míg nagy nagyobb nagyon ne nekem neki nem nincs néha néhány nélkül olyan ott pedig persze rá s saját sem semmi sok sokat sokkal szemben szerint szinte számára talán tehát teljes tovább továbbá több ugyanis utolsó után utána vagy vagyis vagyok valaki valami valamint való van vannak vele vissza viszont volna volt voltak voltam voltunk által általában át én éppen és így õ õk õket össze úgy új újabb újra".split(" "),n.Pipeline.registerFunction(n.hu.stopWordFilter,"stopWordFilter-hu")}}); \ No newline at end of file diff --git a/js/lunr.it.js b/js/lunr.it.js new file mode 100644 index 0000000..91fc8bd --- /dev/null +++ b/js/lunr.it.js @@ -0,0 +1,612 @@ +/*! + * Lunr languages, `Italian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.it = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.it.trimmer, + lunr.it.stopWordFilter, + lunr.it.stemmer + ); + }; + + /* lunr trimmer function */ + lunr.it.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; + lunr.it.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.it.wordCharacters); + + lunr.Pipeline.registerFunction(lunr.it.trimmer, 'trimmer-it'); + + /* lunr stemmer function */ + lunr.it.stemmer = (function() { + /* create the wrapped stemmer object */ + var Among = lunr.stemmerSupport.Among, + SnowballProgram = lunr.stemmerSupport.SnowballProgram, + st = new function ItalianStemmer() { + var a_0 = [new Among("", -1, 7), new Among("qu", 0, 6), + new Among("\u00E1", 0, 1), new Among("\u00E9", 0, 2), + new Among("\u00ED", 0, 3), new Among("\u00F3", 0, 4), + new Among("\u00FA", 0, 5) + ], + a_1 = [new Among("", -1, 3), + new Among("I", 0, 1), new Among("U", 0, 2) + ], + a_2 = [ + new Among("la", -1, -1), new Among("cela", 0, -1), + new Among("gliela", 0, -1), new Among("mela", 0, -1), + new Among("tela", 0, -1), new Among("vela", 0, -1), + new Among("le", -1, -1), new Among("cele", 6, -1), + new Among("gliele", 6, -1), new Among("mele", 6, -1), + new Among("tele", 6, -1), new Among("vele", 6, -1), + new Among("ne", -1, -1), new Among("cene", 12, -1), + new Among("gliene", 12, -1), new Among("mene", 12, -1), + new Among("sene", 12, -1), new Among("tene", 12, -1), + new Among("vene", 12, -1), new Among("ci", -1, -1), + new Among("li", -1, -1), new Among("celi", 20, -1), + new Among("glieli", 20, -1), new Among("meli", 20, -1), + new Among("teli", 20, -1), new Among("veli", 20, -1), + new Among("gli", 20, -1), new Among("mi", -1, -1), + new Among("si", -1, -1), new Among("ti", -1, -1), + new Among("vi", -1, -1), new Among("lo", -1, -1), + new Among("celo", 31, -1), new Among("glielo", 31, -1), + new Among("melo", 31, -1), new Among("telo", 31, -1), + new Among("velo", 31, -1) + ], + a_3 = [new Among("ando", -1, 1), + new Among("endo", -1, 1), new Among("ar", -1, 2), + new Among("er", -1, 2), new Among("ir", -1, 2) + ], + a_4 = [ + new Among("ic", -1, -1), new Among("abil", -1, -1), + new Among("os", -1, -1), new Among("iv", -1, 1) + ], + a_5 = [ + new Among("ic", -1, 1), new Among("abil", -1, 1), + new Among("iv", -1, 1) + ], + a_6 = [new Among("ica", -1, 1), + new Among("logia", -1, 3), new Among("osa", -1, 1), + new Among("ista", -1, 1), new Among("iva", -1, 9), + new Among("anza", -1, 1), new Among("enza", -1, 5), + new Among("ice", -1, 1), new Among("atrice", 7, 1), + new Among("iche", -1, 1), new Among("logie", -1, 3), + new Among("abile", -1, 1), new Among("ibile", -1, 1), + new Among("usione", -1, 4), new Among("azione", -1, 2), + new Among("uzione", -1, 4), new Among("atore", -1, 2), + new Among("ose", -1, 1), new Among("ante", -1, 1), + new Among("mente", -1, 1), new Among("amente", 19, 7), + new Among("iste", -1, 1), new Among("ive", -1, 9), + new Among("anze", -1, 1), new Among("enze", -1, 5), + new Among("ici", -1, 1), new Among("atrici", 25, 1), + new Among("ichi", -1, 1), new Among("abili", -1, 1), + new Among("ibili", -1, 1), new Among("ismi", -1, 1), + new Among("usioni", -1, 4), new Among("azioni", -1, 2), + new Among("uzioni", -1, 4), new Among("atori", -1, 2), + new Among("osi", -1, 1), new Among("anti", -1, 1), + new Among("amenti", -1, 6), new Among("imenti", -1, 6), + new Among("isti", -1, 1), new Among("ivi", -1, 9), + new Among("ico", -1, 1), new Among("ismo", -1, 1), + new Among("oso", -1, 1), new Among("amento", -1, 6), + new Among("imento", -1, 6), new Among("ivo", -1, 9), + new Among("it\u00E0", -1, 8), new Among("ist\u00E0", -1, 1), + new Among("ist\u00E8", -1, 1), new Among("ist\u00EC", -1, 1) + ], + a_7 = [ + new Among("isca", -1, 1), new Among("enda", -1, 1), + new Among("ata", -1, 1), new Among("ita", -1, 1), + new Among("uta", -1, 1), new Among("ava", -1, 1), + new Among("eva", -1, 1), new Among("iva", -1, 1), + new Among("erebbe", -1, 1), new Among("irebbe", -1, 1), + new Among("isce", -1, 1), new Among("ende", -1, 1), + new Among("are", -1, 1), new Among("ere", -1, 1), + new Among("ire", -1, 1), new Among("asse", -1, 1), + new Among("ate", -1, 1), new Among("avate", 16, 1), + new Among("evate", 16, 1), new Among("ivate", 16, 1), + new Among("ete", -1, 1), new Among("erete", 20, 1), + new Among("irete", 20, 1), new Among("ite", -1, 1), + new Among("ereste", -1, 1), new Among("ireste", -1, 1), + new Among("ute", -1, 1), new Among("erai", -1, 1), + new Among("irai", -1, 1), new Among("isci", -1, 1), + new Among("endi", -1, 1), new Among("erei", -1, 1), + new Among("irei", -1, 1), new Among("assi", -1, 1), + new Among("ati", -1, 1), new Among("iti", -1, 1), + new Among("eresti", -1, 1), new Among("iresti", -1, 1), + new Among("uti", -1, 1), new Among("avi", -1, 1), + new Among("evi", -1, 1), new Among("ivi", -1, 1), + new Among("isco", -1, 1), new Among("ando", -1, 1), + new Among("endo", -1, 1), new Among("Yamo", -1, 1), + new Among("iamo", -1, 1), new Among("avamo", -1, 1), + new Among("evamo", -1, 1), new Among("ivamo", -1, 1), + new Among("eremo", -1, 1), new Among("iremo", -1, 1), + new Among("assimo", -1, 1), new Among("ammo", -1, 1), + new Among("emmo", -1, 1), new Among("eremmo", 54, 1), + new Among("iremmo", 54, 1), new Among("immo", -1, 1), + new Among("ano", -1, 1), new Among("iscano", 58, 1), + new Among("avano", 58, 1), new Among("evano", 58, 1), + new Among("ivano", 58, 1), new Among("eranno", -1, 1), + new Among("iranno", -1, 1), new Among("ono", -1, 1), + new Among("iscono", 65, 1), new Among("arono", 65, 1), + new Among("erono", 65, 1), new Among("irono", 65, 1), + new Among("erebbero", -1, 1), new Among("irebbero", -1, 1), + new Among("assero", -1, 1), new Among("essero", -1, 1), + new Among("issero", -1, 1), new Among("ato", -1, 1), + new Among("ito", -1, 1), new Among("uto", -1, 1), + new Among("avo", -1, 1), new Among("evo", -1, 1), + new Among("ivo", -1, 1), new Among("ar", -1, 1), + new Among("ir", -1, 1), new Among("er\u00E0", -1, 1), + new Among("ir\u00E0", -1, 1), new Among("er\u00F2", -1, 1), + new Among("ir\u00F2", -1, 1) + ], + g_v = [17, 65, 16, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 128, 128, 8, 2, 1 + ], + g_AEIO = [17, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2 + ], + g_CG = [17], + I_p2, I_p1, I_pV, sbp = new SnowballProgram(); + this.setCurrent = function(word) { + sbp.setCurrent(word); + }; + this.getCurrent = function() { + return sbp.getCurrent(); + }; + + function habr1(c1, c2, v_1) { + if (sbp.eq_s(1, c1)) { + sbp.ket = sbp.cursor; + if (sbp.in_grouping(g_v, 97, 249)) { + sbp.slice_from(c2); + sbp.cursor = v_1; + return true; + } + } + return false; + } + + function r_prelude() { + var among_var, v_1 = sbp.cursor, + v_2, v_3, v_4; + while (true) { + sbp.bra = sbp.cursor; + among_var = sbp.find_among(a_0, 7); + if (among_var) { + sbp.ket = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_from("\u00E0"); + continue; + case 2: + sbp.slice_from("\u00E8"); + continue; + case 3: + sbp.slice_from("\u00EC"); + continue; + case 4: + sbp.slice_from("\u00F2"); + continue; + case 5: + sbp.slice_from("\u00F9"); + continue; + case 6: + sbp.slice_from("qU"); + continue; + case 7: + if (sbp.cursor >= sbp.limit) + break; + sbp.cursor++; + continue; + } + } + break; + } + sbp.cursor = v_1; + while (true) { + v_2 = sbp.cursor; + while (true) { + v_3 = sbp.cursor; + if (sbp.in_grouping(g_v, 97, 249)) { + sbp.bra = sbp.cursor; + v_4 = sbp.cursor; + if (habr1("u", "U", v_3)) + break; + sbp.cursor = v_4; + if (habr1("i", "I", v_3)) + break; + } + sbp.cursor = v_3; + if (sbp.cursor >= sbp.limit) { + sbp.cursor = v_2; + return; + } + sbp.cursor++; + } + } + } + + function habr2(v_1) { + sbp.cursor = v_1; + if (!sbp.in_grouping(g_v, 97, 249)) + return false; + while (!sbp.out_grouping(g_v, 97, 249)) { + if (sbp.cursor >= sbp.limit) + return false; + sbp.cursor++; + } + return true; + } + + function habr3() { + if (sbp.in_grouping(g_v, 97, 249)) { + var v_1 = sbp.cursor; + if (sbp.out_grouping(g_v, 97, 249)) { + while (!sbp.in_grouping(g_v, 97, 249)) { + if (sbp.cursor >= sbp.limit) + return habr2(v_1); + sbp.cursor++; + } + return true; + } + return habr2(v_1); + } + return false; + } + + function habr4() { + var v_1 = sbp.cursor, + v_2; + if (!habr3()) { + sbp.cursor = v_1; + if (!sbp.out_grouping(g_v, 97, 249)) + return; + v_2 = sbp.cursor; + if (sbp.out_grouping(g_v, 97, 249)) { + while (!sbp.in_grouping(g_v, 97, 249)) { + if (sbp.cursor >= sbp.limit) { + sbp.cursor = v_2; + if (sbp.in_grouping(g_v, 97, 249) && sbp.cursor < sbp.limit) + sbp.cursor++; + return; + } + sbp.cursor++; + } + I_pV = sbp.cursor; + return; + } + sbp.cursor = v_2; + if (!sbp.in_grouping(g_v, 97, 249) || sbp.cursor >= sbp.limit) + return; + sbp.cursor++; + } + I_pV = sbp.cursor; + } + + function habr5() { + while (!sbp.in_grouping(g_v, 97, 249)) { + if (sbp.cursor >= sbp.limit) + return false; + sbp.cursor++; + } + while (!sbp.out_grouping(g_v, 97, 249)) { + if (sbp.cursor >= sbp.limit) + return false; + sbp.cursor++; + } + return true; + } + + function r_mark_regions() { + var v_1 = sbp.cursor; + I_pV = sbp.limit; + I_p1 = I_pV; + I_p2 = I_pV; + habr4(); + sbp.cursor = v_1; + if (habr5()) { + I_p1 = sbp.cursor; + if (habr5()) + I_p2 = sbp.cursor; + } + } + + function r_postlude() { + var among_var; + while (true) { + sbp.bra = sbp.cursor; + among_var = sbp.find_among(a_1, 3); + if (!among_var) + break; + sbp.ket = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_from("i"); + break; + case 2: + sbp.slice_from("u"); + break; + case 3: + if (sbp.cursor >= sbp.limit) + return; + sbp.cursor++; + break; + } + } + } + + function r_RV() { + return I_pV <= sbp.cursor; + } + + function r_R1() { + return I_p1 <= sbp.cursor; + } + + function r_R2() { + return I_p2 <= sbp.cursor; + } + + function r_attached_pronoun() { + var among_var; + sbp.ket = sbp.cursor; + if (sbp.find_among_b(a_2, 37)) { + sbp.bra = sbp.cursor; + among_var = sbp.find_among_b(a_3, 5); + if (among_var && r_RV()) { + switch (among_var) { + case 1: + sbp.slice_del(); + break; + case 2: + sbp.slice_from("e"); + break; + } + } + } + } + + function r_standard_suffix() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_6, 51); + if (!among_var) + return false; + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + if (!r_R2()) + return false; + sbp.slice_del(); + break; + case 2: + if (!r_R2()) + return false; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "ic")) { + sbp.bra = sbp.cursor; + if (r_R2()) + sbp.slice_del(); + } + break; + case 3: + if (!r_R2()) + return false; + sbp.slice_from("log"); + break; + case 4: + if (!r_R2()) + return false; + sbp.slice_from("u"); + break; + case 5: + if (!r_R2()) + return false; + sbp.slice_from("ente"); + break; + case 6: + if (!r_RV()) + return false; + sbp.slice_del(); + break; + case 7: + if (!r_R1()) + return false; + sbp.slice_del(); + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_4, 4); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R2()) { + sbp.slice_del(); + if (among_var == 1) { + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "at")) { + sbp.bra = sbp.cursor; + if (r_R2()) + sbp.slice_del(); + } + } + } + } + break; + case 8: + if (!r_R2()) + return false; + sbp.slice_del(); + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_5, 3); + if (among_var) { + sbp.bra = sbp.cursor; + if (among_var == 1) + if (r_R2()) + sbp.slice_del(); + } + break; + case 9: + if (!r_R2()) + return false; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "at")) { + sbp.bra = sbp.cursor; + if (r_R2()) { + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "ic")) { + sbp.bra = sbp.cursor; + if (r_R2()) + sbp.slice_del(); + } + } + } + break; + } + return true; + } + + function r_verb_suffix() { + var among_var, v_1; + if (sbp.cursor >= I_pV) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_pV; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_7, 87); + if (among_var) { + sbp.bra = sbp.cursor; + if (among_var == 1) + sbp.slice_del(); + } + sbp.limit_backward = v_1; + } + } + + function habr6() { + var v_1 = sbp.limit - sbp.cursor; + sbp.ket = sbp.cursor; + if (sbp.in_grouping_b(g_AEIO, 97, 242)) { + sbp.bra = sbp.cursor; + if (r_RV()) { + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(1, "i")) { + sbp.bra = sbp.cursor; + if (r_RV()) { + sbp.slice_del(); + return; + } + } + } + } + sbp.cursor = sbp.limit - v_1; + } + + function r_vowel_suffix() { + habr6(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(1, "h")) { + sbp.bra = sbp.cursor; + if (sbp.in_grouping_b(g_CG, 99, 103)) + if (r_RV()) + sbp.slice_del(); + } + } + this.stem = function() { + var v_1 = sbp.cursor; + r_prelude(); + sbp.cursor = v_1; + r_mark_regions(); + sbp.limit_backward = v_1; + sbp.cursor = sbp.limit; + r_attached_pronoun(); + sbp.cursor = sbp.limit; + if (!r_standard_suffix()) { + sbp.cursor = sbp.limit; + r_verb_suffix(); + } + sbp.cursor = sbp.limit; + r_vowel_suffix(); + sbp.cursor = sbp.limit_backward; + r_postlude(); + return true; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.it.stemmer, 'stemmer-it'); + + /* stop word filter function */ + lunr.it.stopWordFilter = function(token) { + if (lunr.it.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.it.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.it.stopWordFilter.stopWords.length = 280; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.it.stopWordFilter.stopWords.elements = ' a abbia abbiamo abbiano abbiate ad agl agli ai al all alla alle allo anche avemmo avendo avesse avessero avessi avessimo aveste avesti avete aveva avevamo avevano avevate avevi avevo avrai avranno avrebbe avrebbero avrei avremmo avremo avreste avresti avrete avrà avrò avuta avute avuti avuto c che chi ci coi col come con contro cui da dagl dagli dai dal dall dalla dalle dallo degl degli dei del dell della delle dello di dov dove e ebbe ebbero ebbi ed era erano eravamo eravate eri ero essendo faccia facciamo facciano facciate faccio facemmo facendo facesse facessero facessi facessimo faceste facesti faceva facevamo facevano facevate facevi facevo fai fanno farai faranno farebbe farebbero farei faremmo faremo fareste faresti farete farà farò fece fecero feci fosse fossero fossi fossimo foste fosti fu fui fummo furono gli ha hai hanno ho i il in io l la le lei li lo loro lui ma mi mia mie miei mio ne negl negli nei nel nell nella nelle nello noi non nostra nostre nostri nostro o per perché più quale quanta quante quanti quanto quella quelle quelli quello questa queste questi questo sarai saranno sarebbe sarebbero sarei saremmo saremo sareste saresti sarete sarà sarò se sei si sia siamo siano siate siete sono sta stai stando stanno starai staranno starebbe starebbero starei staremmo staremo stareste staresti starete starà starò stava stavamo stavano stavate stavi stavo stemmo stesse stessero stessi stessimo steste stesti stette stettero stetti stia stiamo stiano stiate sto su sua sue sugl sugli sui sul sull sulla sulle sullo suo suoi ti tra tu tua tue tuo tuoi tutti tutto un una uno vi voi vostra vostre vostri vostro è'.split(' '); + + lunr.Pipeline.registerFunction(lunr.it.stopWordFilter, 'stopWordFilter-it'); + }; +})) \ No newline at end of file diff --git a/js/lunr.it.min.js b/js/lunr.it.min.js new file mode 100644 index 0000000..f232c3f --- /dev/null +++ b/js/lunr.it.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,F,i;r.it=function(){this.pipeline.reset(),this.pipeline.add(r.it.trimmer,r.it.stopWordFilter,r.it.stemmer)},r.it.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.it.trimmer=r.trimmerSupport.generateTrimmer(r.it.wordCharacters),r.Pipeline.registerFunction(r.it.trimmer,"trimmer-it"),r.it.stemmer=(e=r.stemmerSupport.Among,F=r.stemmerSupport.SnowballProgram,i=new function(){var n,o,s,t=[new e("",-1,7),new e("qu",0,6),new e("á",0,1),new e("é",0,2),new e("í",0,3),new e("ó",0,4),new e("ú",0,5)],a=[new e("",-1,3),new e("I",0,1),new e("U",0,2)],u=[new e("la",-1,-1),new e("cela",0,-1),new e("gliela",0,-1),new e("mela",0,-1),new e("tela",0,-1),new e("vela",0,-1),new e("le",-1,-1),new e("cele",6,-1),new e("gliele",6,-1),new e("mele",6,-1),new e("tele",6,-1),new e("vele",6,-1),new e("ne",-1,-1),new e("cene",12,-1),new e("gliene",12,-1),new e("mene",12,-1),new e("sene",12,-1),new e("tene",12,-1),new e("vene",12,-1),new e("ci",-1,-1),new e("li",-1,-1),new e("celi",20,-1),new e("glieli",20,-1),new e("meli",20,-1),new e("teli",20,-1),new e("veli",20,-1),new e("gli",20,-1),new e("mi",-1,-1),new e("si",-1,-1),new e("ti",-1,-1),new e("vi",-1,-1),new e("lo",-1,-1),new e("celo",31,-1),new e("glielo",31,-1),new e("melo",31,-1),new e("telo",31,-1),new e("velo",31,-1)],c=[new e("ando",-1,1),new e("endo",-1,1),new e("ar",-1,2),new e("er",-1,2),new e("ir",-1,2)],r=[new e("ic",-1,-1),new e("abil",-1,-1),new e("os",-1,-1),new e("iv",-1,1)],i=[new e("ic",-1,1),new e("abil",-1,1),new e("iv",-1,1)],w=[new e("ica",-1,1),new e("logia",-1,3),new e("osa",-1,1),new e("ista",-1,1),new e("iva",-1,9),new e("anza",-1,1),new e("enza",-1,5),new e("ice",-1,1),new e("atrice",7,1),new e("iche",-1,1),new e("logie",-1,3),new e("abile",-1,1),new e("ibile",-1,1),new e("usione",-1,4),new e("azione",-1,2),new e("uzione",-1,4),new e("atore",-1,2),new e("ose",-1,1),new e("ante",-1,1),new e("mente",-1,1),new e("amente",19,7),new e("iste",-1,1),new e("ive",-1,9),new e("anze",-1,1),new e("enze",-1,5),new e("ici",-1,1),new e("atrici",25,1),new e("ichi",-1,1),new e("abili",-1,1),new e("ibili",-1,1),new e("ismi",-1,1),new e("usioni",-1,4),new e("azioni",-1,2),new e("uzioni",-1,4),new e("atori",-1,2),new e("osi",-1,1),new e("anti",-1,1),new e("amenti",-1,6),new e("imenti",-1,6),new e("isti",-1,1),new e("ivi",-1,9),new e("ico",-1,1),new e("ismo",-1,1),new e("oso",-1,1),new e("amento",-1,6),new e("imento",-1,6),new e("ivo",-1,9),new e("ità",-1,8),new e("istà",-1,1),new e("istè",-1,1),new e("istì",-1,1)],l=[new e("isca",-1,1),new e("enda",-1,1),new e("ata",-1,1),new e("ita",-1,1),new e("uta",-1,1),new e("ava",-1,1),new e("eva",-1,1),new e("iva",-1,1),new e("erebbe",-1,1),new e("irebbe",-1,1),new e("isce",-1,1),new e("ende",-1,1),new e("are",-1,1),new e("ere",-1,1),new e("ire",-1,1),new e("asse",-1,1),new e("ate",-1,1),new e("avate",16,1),new e("evate",16,1),new e("ivate",16,1),new e("ete",-1,1),new e("erete",20,1),new e("irete",20,1),new e("ite",-1,1),new e("ereste",-1,1),new e("ireste",-1,1),new e("ute",-1,1),new e("erai",-1,1),new e("irai",-1,1),new e("isci",-1,1),new e("endi",-1,1),new e("erei",-1,1),new e("irei",-1,1),new e("assi",-1,1),new e("ati",-1,1),new e("iti",-1,1),new e("eresti",-1,1),new e("iresti",-1,1),new e("uti",-1,1),new e("avi",-1,1),new e("evi",-1,1),new e("ivi",-1,1),new e("isco",-1,1),new e("ando",-1,1),new e("endo",-1,1),new e("Yamo",-1,1),new e("iamo",-1,1),new e("avamo",-1,1),new e("evamo",-1,1),new e("ivamo",-1,1),new e("eremo",-1,1),new e("iremo",-1,1),new e("assimo",-1,1),new e("ammo",-1,1),new e("emmo",-1,1),new e("eremmo",54,1),new e("iremmo",54,1),new e("immo",-1,1),new e("ano",-1,1),new e("iscano",58,1),new e("avano",58,1),new e("evano",58,1),new e("ivano",58,1),new e("eranno",-1,1),new e("iranno",-1,1),new e("ono",-1,1),new e("iscono",65,1),new e("arono",65,1),new e("erono",65,1),new e("irono",65,1),new e("erebbero",-1,1),new e("irebbero",-1,1),new e("assero",-1,1),new e("essero",-1,1),new e("issero",-1,1),new e("ato",-1,1),new e("ito",-1,1),new e("uto",-1,1),new e("avo",-1,1),new e("evo",-1,1),new e("ivo",-1,1),new e("ar",-1,1),new e("ir",-1,1),new e("erà",-1,1),new e("irà",-1,1),new e("erò",-1,1),new e("irò",-1,1)],m=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2,1],f=[17,65,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2],v=[17],b=new F;function d(e,r,i){return b.eq_s(1,e)&&(b.ket=b.cursor,b.in_grouping(m,97,249))&&(b.slice_from(r),b.cursor=i,1)}function _(e){if(b.cursor=e,!b.in_grouping(m,97,249))return!1;for(;!b.out_grouping(m,97,249);){if(b.cursor>=b.limit)return!1;b.cursor++}return!0}function g(){var e,r=b.cursor;if(!function(){if(b.in_grouping(m,97,249)){var e=b.cursor;if(b.out_grouping(m,97,249)){for(;!b.in_grouping(m,97,249);){if(b.cursor>=b.limit)return _(e);b.cursor++}return 1}return _(e)}}()){if(b.cursor=r,!b.out_grouping(m,97,249))return;if(e=b.cursor,b.out_grouping(m,97,249)){for(;!b.in_grouping(m,97,249);){if(b.cursor>=b.limit)return b.cursor=e,void(b.in_grouping(m,97,249)&&b.cursor=b.limit)return;b.cursor++}s=b.cursor}function p(){for(;!b.in_grouping(m,97,249);){if(b.cursor>=b.limit)return;b.cursor++}for(;!b.out_grouping(m,97,249);){if(b.cursor>=b.limit)return;b.cursor++}return 1}function k(){return s<=b.cursor}function h(){return n<=b.cursor}function q(){var e;if(b.ket=b.cursor,e=b.find_among_b(w,51)){switch(b.bra=b.cursor,e){case 1:if(!h())return;b.slice_del();break;case 2:if(!h())return;b.slice_del(),b.ket=b.cursor,b.eq_s_b(2,"ic")&&(b.bra=b.cursor,h())&&b.slice_del();break;case 3:if(!h())return;b.slice_from("log");break;case 4:if(!h())return;b.slice_from("u");break;case 5:if(!h())return;b.slice_from("ente");break;case 6:if(!k())return;b.slice_del();break;case 7:if(!(o<=b.cursor))return;b.slice_del(),b.ket=b.cursor,(e=b.find_among_b(r,4))&&(b.bra=b.cursor,h())&&(b.slice_del(),1==e)&&(b.ket=b.cursor,b.eq_s_b(2,"at"))&&(b.bra=b.cursor,h())&&b.slice_del();break;case 8:if(!h())return;b.slice_del(),b.ket=b.cursor,(e=b.find_among_b(i,3))&&(b.bra=b.cursor,1==e)&&h()&&b.slice_del();break;case 9:if(!h())return;b.slice_del(),b.ket=b.cursor,b.eq_s_b(2,"at")&&(b.bra=b.cursor,h())&&(b.slice_del(),b.ket=b.cursor,b.eq_s_b(2,"ic"))&&(b.bra=b.cursor,h())&&b.slice_del()}return 1}}function W(){var e;e=b.limit-b.cursor,b.ket=b.cursor,b.in_grouping_b(f,97,242)&&(b.bra=b.cursor,k())&&(b.slice_del(),b.ket=b.cursor,b.eq_s_b(1,"i"))&&(b.bra=b.cursor,k())?b.slice_del():b.cursor=b.limit-e,b.ket=b.cursor,b.eq_s_b(1,"h")&&(b.bra=b.cursor,b.in_grouping_b(v,99,103))&&k()&&b.slice_del()}this.setCurrent=function(e){b.setCurrent(e)},this.getCurrent=function(){return b.getCurrent()},this.stem=function(){var e,r,i=b.cursor;if(!function(){for(var e,r,i,n,o=b.cursor;;){if(b.bra=b.cursor,e=b.find_among(t,7))switch(b.ket=b.cursor,e){case 1:b.slice_from("à");continue;case 2:b.slice_from("è");continue;case 3:b.slice_from("ì");continue;case 4:b.slice_from("ò");continue;case 5:b.slice_from("ù");continue;case 6:b.slice_from("qU");continue;case 7:if(!(b.cursor>=b.limit)){b.cursor++;continue}}break}for(b.cursor=o;;)for(r=b.cursor;;){if(i=b.cursor,b.in_grouping(m,97,249)){if(b.bra=b.cursor,n=b.cursor,d("u","U",i))break;if(b.cursor=n,d("i","I",i))break}if(b.cursor=i,b.cursor>=b.limit)return b.cursor=r;b.cursor++}}(),b.cursor=i,r=b.cursor,s=b.limit,n=o=s,g(),b.cursor=r,p()&&(o=b.cursor,p())&&(n=b.cursor),b.limit_backward=i,b.cursor=b.limit,b.ket=b.cursor,b.find_among_b(u,37)&&(b.bra=b.cursor,e=b.find_among_b(c,5))&&k())switch(e){case 1:b.slice_del();break;case 2:b.slice_from("e")}return b.cursor=b.limit,q()||(b.cursor=b.limit,b.cursor>=s&&(r=b.limit_backward,b.limit_backward=s,b.ket=b.cursor,(i=b.find_among_b(l,87))&&(b.bra=b.cursor,1==i)&&b.slice_del(),b.limit_backward=r)),b.cursor=b.limit,W(),b.cursor=b.limit_backward,function(){for(var e;b.bra=b.cursor,e=b.find_among(a,3);)switch(b.ket=b.cursor,e){case 1:b.slice_from("i");break;case 2:b.slice_from("u");break;case 3:if(b.cursor>=b.limit)return;b.cursor++}}(),!0}},function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}),r.Pipeline.registerFunction(r.it.stemmer,"stemmer-it"),r.it.stopWordFilter=function(e){if(-1===r.it.stopWordFilter.stopWords.indexOf(e))return e},r.it.stopWordFilter.stopWords=new r.SortedSet,r.it.stopWordFilter.stopWords.length=280,r.it.stopWordFilter.stopWords.elements=" a abbia abbiamo abbiano abbiate ad agl agli ai al all alla alle allo anche avemmo avendo avesse avessero avessi avessimo aveste avesti avete aveva avevamo avevano avevate avevi avevo avrai avranno avrebbe avrebbero avrei avremmo avremo avreste avresti avrete avrà avrò avuta avute avuti avuto c che chi ci coi col come con contro cui da dagl dagli dai dal dall dalla dalle dallo degl degli dei del dell della delle dello di dov dove e ebbe ebbero ebbi ed era erano eravamo eravate eri ero essendo faccia facciamo facciano facciate faccio facemmo facendo facesse facessero facessi facessimo faceste facesti faceva facevamo facevano facevate facevi facevo fai fanno farai faranno farebbe farebbero farei faremmo faremo fareste faresti farete farà farò fece fecero feci fosse fossero fossi fossimo foste fosti fu fui fummo furono gli ha hai hanno ho i il in io l la le lei li lo loro lui ma mi mia mie miei mio ne negl negli nei nel nell nella nelle nello noi non nostra nostre nostri nostro o per perché più quale quanta quante quanti quanto quella quelle quelli quello questa queste questi questo sarai saranno sarebbe sarebbero sarei saremmo saremo sareste saresti sarete sarà sarò se sei si sia siamo siano siate siete sono sta stai stando stanno starai staranno starebbe starebbero starei staremmo staremo stareste staresti starete starà starò stava stavamo stavano stavate stavi stavo stemmo stesse stessero stessi stessimo steste stesti stette stettero stetti stia stiamo stiano stiate sto su sua sue sugl sugli sui sul sull sulla sulle sullo suo suoi ti tra tu tua tue tuo tuoi tutti tutto un una uno vi voi vostra vostre vostri vostro è".split(" "),r.Pipeline.registerFunction(r.it.stopWordFilter,"stopWordFilter-it")}}); \ No newline at end of file diff --git a/js/lunr.jp.js b/js/lunr.jp.js new file mode 100644 index 0000000..4dcdc43 --- /dev/null +++ b/js/lunr.jp.js @@ -0,0 +1,118 @@ +/*! + * Lunr languages, `Japanese` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Chad Liu + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.jp = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.jp.stopWordFilter, + lunr.jp.stemmer + ); + // change the tokenizer for japanese one + lunr.tokenizer = lunr.jp.tokenizer; + }; + var segmenter = new TinySegmenter(); // インスタンス生成 + + lunr.jp.tokenizer = function (obj) { + if (!arguments.length || obj == null || obj == undefined) return [] + if (Array.isArray(obj)) return obj.map(function (t) { return t.toLowerCase() }) + + var str = obj.toString().replace(/^\s+/, '') + + for (var i = str.length - 1; i >= 0; i--) { + if (/\S/.test(str.charAt(i))) { + str = str.substring(0, i + 1) + break + } + } + + + var segs = segmenter.segment(str); // 単語の配列が返る + return segs.filter(function (token) { + return !!token + }) + .map(function (token) { + return token + }) + } + + /* lunr stemmer function */ + lunr.jp.stemmer = (function() { + + /* TODO japanese stemmer */ + return function(word) { + return word; + } + })(); + + lunr.Pipeline.registerFunction(lunr.jp.stemmer, 'stemmer-jp'); + + /* stop word filter function */ + lunr.jp.stopWordFilter = function(token) { + if (lunr.jp.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.jp.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.jp.stopWordFilter.stopWords.length = 45; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + // stopword for japanese is from http://www.ranks.nl/stopwords/japanese + lunr.jp.stopWordFilter.stopWords.elements = ' これ それ あれ この その あの ここ そこ あそこ こちら どこ だれ なに なん 何 私 貴方 貴方方 我々 私達 あの人 あのかた 彼女 彼 です あります おります います は が の に を で え から まで より も どの と し それで しかし'.split(' '); + lunr.Pipeline.registerFunction(lunr.jp.stopWordFilter, 'stopWordFilter-jp'); + }; +})) \ No newline at end of file diff --git a/js/lunr.jp.min.js b/js/lunr.jp.min.js new file mode 100644 index 0000000..b70d9ee --- /dev/null +++ b/js/lunr.jp.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");r.jp=function(){this.pipeline.reset(),this.pipeline.add(r.jp.stopWordFilter,r.jp.stemmer),r.tokenizer=r.jp.tokenizer};var n=new TinySegmenter;r.jp.tokenizer=function(e){if(!arguments.length||null==e)return[];if(Array.isArray(e))return e.map(function(e){return e.toLowerCase()});for(var r=e.toString().replace(/^\s+/,""),t=r.length-1;0<=t;t--)if(/\S/.test(r.charAt(t))){r=r.substring(0,t+1);break}return n.segment(r).filter(function(e){return!!e}).map(function(e){return e})},r.jp.stemmer=function(e){return e},r.Pipeline.registerFunction(r.jp.stemmer,"stemmer-jp"),r.jp.stopWordFilter=function(e){if(-1===r.jp.stopWordFilter.stopWords.indexOf(e))return e},r.jp.stopWordFilter.stopWords=new r.SortedSet,r.jp.stopWordFilter.stopWords.length=45,r.jp.stopWordFilter.stopWords.elements=" これ それ あれ この その あの ここ そこ あそこ こちら どこ だれ なに なん 何 私 貴方 貴方方 我々 私達 あの人 あのかた 彼女 彼 です あります おります います は が の に を で え から まで より も どの と し それで しかし".split(" "),r.Pipeline.registerFunction(r.jp.stopWordFilter,"stopWordFilter-jp")}}); \ No newline at end of file diff --git a/js/lunr.no.js b/js/lunr.no.js new file mode 100644 index 0000000..acaa024 --- /dev/null +++ b/js/lunr.no.js @@ -0,0 +1,253 @@ +/*! + * Lunr languages, `Norwegian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.no = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.no.trimmer, + lunr.no.stopWordFilter, + lunr.no.stemmer + ); + }; + + /* lunr trimmer function */ + lunr.no.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; + lunr.no.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.no.wordCharacters); + + lunr.Pipeline.registerFunction(lunr.no.trimmer, 'trimmer-no'); + + /* lunr stemmer function */ + lunr.no.stemmer = (function() { + /* create the wrapped stemmer object */ + var Among = lunr.stemmerSupport.Among, + SnowballProgram = lunr.stemmerSupport.SnowballProgram, + st = new function NorwegianStemmer() { + var a_0 = [new Among("a", -1, 1), new Among("e", -1, 1), + new Among("ede", 1, 1), new Among("ande", 1, 1), + new Among("ende", 1, 1), new Among("ane", 1, 1), + new Among("ene", 1, 1), new Among("hetene", 6, 1), + new Among("erte", 1, 3), new Among("en", -1, 1), + new Among("heten", 9, 1), new Among("ar", -1, 1), + new Among("er", -1, 1), new Among("heter", 12, 1), + new Among("s", -1, 2), new Among("as", 14, 1), + new Among("es", 14, 1), new Among("edes", 16, 1), + new Among("endes", 16, 1), new Among("enes", 16, 1), + new Among("hetenes", 19, 1), new Among("ens", 14, 1), + new Among("hetens", 21, 1), new Among("ers", 14, 1), + new Among("ets", 14, 1), new Among("et", -1, 1), + new Among("het", 25, 1), new Among("ert", -1, 3), + new Among("ast", -1, 1) + ], + a_1 = [new Among("dt", -1, -1), + new Among("vt", -1, -1) + ], + a_2 = [new Among("leg", -1, 1), + new Among("eleg", 0, 1), new Among("ig", -1, 1), + new Among("eig", 2, 1), new Among("lig", 2, 1), + new Among("elig", 4, 1), new Among("els", -1, 1), + new Among("lov", -1, 1), new Among("elov", 7, 1), + new Among("slov", 7, 1), new Among("hetslov", 9, 1) + ], + g_v = [17, + 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 128 + ], + g_s_ending = [ + 119, 125, 149, 1 + ], + I_x, I_p1, sbp = new SnowballProgram(); + this.setCurrent = function(word) { + sbp.setCurrent(word); + }; + this.getCurrent = function() { + return sbp.getCurrent(); + }; + + function r_mark_regions() { + var v_1, c = sbp.cursor + 3; + I_p1 = sbp.limit; + if (0 <= c || c <= sbp.limit) { + I_x = c; + while (true) { + v_1 = sbp.cursor; + if (sbp.in_grouping(g_v, 97, 248)) { + sbp.cursor = v_1; + break; + } + if (v_1 >= sbp.limit) + return; + sbp.cursor = v_1 + 1; + } + while (!sbp.out_grouping(g_v, 97, 248)) { + if (sbp.cursor >= sbp.limit) + return; + sbp.cursor++; + } + I_p1 = sbp.cursor; + if (I_p1 < I_x) + I_p1 = I_x; + } + } + + function r_main_suffix() { + var among_var, v_1, v_2; + if (sbp.cursor >= I_p1) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_p1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_0, 29); + sbp.limit_backward = v_1; + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_del(); + break; + case 2: + v_2 = sbp.limit - sbp.cursor; + if (sbp.in_grouping_b(g_s_ending, 98, 122)) + sbp.slice_del(); + else { + sbp.cursor = sbp.limit - v_2; + if (sbp.eq_s_b(1, "k") && sbp.out_grouping_b(g_v, 97, 248)) + sbp.slice_del(); + } + break; + case 3: + sbp.slice_from("er"); + break; + } + } + } + } + + function r_consonant_pair() { + var v_1 = sbp.limit - sbp.cursor, + v_2; + if (sbp.cursor >= I_p1) { + v_2 = sbp.limit_backward; + sbp.limit_backward = I_p1; + sbp.ket = sbp.cursor; + if (sbp.find_among_b(a_1, 2)) { + sbp.bra = sbp.cursor; + sbp.limit_backward = v_2; + sbp.cursor = sbp.limit - v_1; + if (sbp.cursor > sbp.limit_backward) { + sbp.cursor--; + sbp.bra = sbp.cursor; + sbp.slice_del(); + } + } else + sbp.limit_backward = v_2; + } + } + + function r_other_suffix() { + var among_var, v_1; + if (sbp.cursor >= I_p1) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_p1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_2, 11); + if (among_var) { + sbp.bra = sbp.cursor; + sbp.limit_backward = v_1; + if (among_var == 1) + sbp.slice_del(); + } else + sbp.limit_backward = v_1; + } + } + this.stem = function() { + var v_1 = sbp.cursor; + r_mark_regions(); + sbp.limit_backward = v_1; + sbp.cursor = sbp.limit; + r_main_suffix(); + sbp.cursor = sbp.limit; + r_consonant_pair(); + sbp.cursor = sbp.limit; + r_other_suffix(); + return true; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.no.stemmer, 'stemmer-no'); + + /* stop word filter function */ + lunr.no.stopWordFilter = function(token) { + if (lunr.no.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.no.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.no.stopWordFilter.stopWords.length = 177; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.no.stopWordFilter.stopWords.elements = ' alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å'.split(' '); + + lunr.Pipeline.registerFunction(lunr.no.stopWordFilter, 'stopWordFilter-no'); + }; +})) \ No newline at end of file diff --git a/js/lunr.no.min.js b/js/lunr.no.min.js new file mode 100644 index 0000000..ac91e96 --- /dev/null +++ b/js/lunr.no.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,n,i;r.no=function(){this.pipeline.reset(),this.pipeline.add(r.no.trimmer,r.no.stopWordFilter,r.no.stemmer)},r.no.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.no.trimmer=r.trimmerSupport.generateTrimmer(r.no.wordCharacters),r.Pipeline.registerFunction(r.no.trimmer,"trimmer-no"),r.no.stemmer=(e=r.stemmerSupport.Among,n=r.stemmerSupport.SnowballProgram,i=new function(){var t,o,s=[new e("a",-1,1),new e("e",-1,1),new e("ede",1,1),new e("ande",1,1),new e("ende",1,1),new e("ane",1,1),new e("ene",1,1),new e("hetene",6,1),new e("erte",1,3),new e("en",-1,1),new e("heten",9,1),new e("ar",-1,1),new e("er",-1,1),new e("heter",12,1),new e("s",-1,2),new e("as",14,1),new e("es",14,1),new e("edes",16,1),new e("endes",16,1),new e("enes",16,1),new e("hetenes",19,1),new e("ens",14,1),new e("hetens",21,1),new e("ers",14,1),new e("ets",14,1),new e("et",-1,1),new e("het",25,1),new e("ert",-1,3),new e("ast",-1,1)],m=[new e("dt",-1,-1),new e("vt",-1,-1)],a=[new e("leg",-1,1),new e("eleg",0,1),new e("ig",-1,1),new e("eig",2,1),new e("lig",2,1),new e("elig",4,1),new e("els",-1,1),new e("lov",-1,1),new e("elov",7,1),new e("slov",7,1),new e("hetslov",9,1)],l=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],d=[119,125,149,1],u=new n;this.setCurrent=function(e){u.setCurrent(e)},this.getCurrent=function(){return u.getCurrent()},this.stem=function(){var e,r,n,i=u.cursor;if(!function(){var e,r=u.cursor+3;if(o=u.limit,0<=r||r<=u.limit){for(t=r;;){if(e=u.cursor,u.in_grouping(l,97,248)){u.cursor=e;break}if(e>=u.limit)return;u.cursor=e+1}for(;!u.out_grouping(l,97,248);){if(u.cursor>=u.limit)return;u.cursor++}(o=u.cursor)=o&&(i=u.limit_backward,u.limit_backward=o,u.ket=u.cursor,r=u.find_among_b(s,29),u.limit_backward=i,r))switch(u.bra=u.cursor,r){case 1:u.slice_del();break;case 2:e=u.limit-u.cursor,(u.in_grouping_b(d,98,122)||(u.cursor=u.limit-e,u.eq_s_b(1,"k")&&u.out_grouping_b(l,97,248)))&&u.slice_del();break;case 3:u.slice_from("er")}return u.cursor=u.limit,i=u.limit-u.cursor,u.cursor>=o&&(r=u.limit_backward,u.limit_backward=o,u.ket=u.cursor,u.find_among_b(m,2)?(u.bra=u.cursor,u.limit_backward=r,u.cursor=u.limit-i,u.cursor>u.limit_backward&&(u.cursor--,u.bra=u.cursor,u.slice_del())):u.limit_backward=r),u.cursor=u.limit,u.cursor>=o&&(i=u.limit_backward,u.limit_backward=o,u.ket=u.cursor,(n=u.find_among_b(a,11))?(u.bra=u.cursor,u.limit_backward=i,1==n&&u.slice_del()):u.limit_backward=i),!0}},function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}),r.Pipeline.registerFunction(r.no.stemmer,"stemmer-no"),r.no.stopWordFilter=function(e){if(-1===r.no.stopWordFilter.stopWords.indexOf(e))return e},r.no.stopWordFilter.stopWords=new r.SortedSet,r.no.stopWordFilter.stopWords.length=177,r.no.stopWordFilter.stopWords.elements=" alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" "),r.Pipeline.registerFunction(r.no.stopWordFilter,"stopWordFilter-no")}}); \ No newline at end of file diff --git a/js/lunr.pt.js b/js/lunr.pt.js new file mode 100644 index 0000000..b340325 --- /dev/null +++ b/js/lunr.pt.js @@ -0,0 +1,566 @@ +/*! + * Lunr languages, `Portuguese` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.pt = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.pt.trimmer, + lunr.pt.stopWordFilter, + lunr.pt.stemmer + ); + }; + + /* lunr trimmer function */ + lunr.pt.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; + lunr.pt.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.pt.wordCharacters); + + lunr.Pipeline.registerFunction(lunr.pt.trimmer, 'trimmer-pt'); + + /* lunr stemmer function */ + lunr.pt.stemmer = (function() { + /* create the wrapped stemmer object */ + var Among = lunr.stemmerSupport.Among, + SnowballProgram = lunr.stemmerSupport.SnowballProgram, + st = new function PortugueseStemmer() { + var a_0 = [new Among("", -1, 3), new Among("\u00E3", 0, 1), + new Among("\u00F5", 0, 2) + ], + a_1 = [new Among("", -1, 3), + new Among("a~", 0, 1), new Among("o~", 0, 2) + ], + a_2 = [ + new Among("ic", -1, -1), new Among("ad", -1, -1), + new Among("os", -1, -1), new Among("iv", -1, 1) + ], + a_3 = [ + new Among("ante", -1, 1), new Among("avel", -1, 1), + new Among("\u00EDvel", -1, 1) + ], + a_4 = [new Among("ic", -1, 1), + new Among("abil", -1, 1), new Among("iv", -1, 1) + ], + a_5 = [ + new Among("ica", -1, 1), new Among("\u00E2ncia", -1, 1), + new Among("\u00EAncia", -1, 4), new Among("ira", -1, 9), + new Among("adora", -1, 1), new Among("osa", -1, 1), + new Among("ista", -1, 1), new Among("iva", -1, 8), + new Among("eza", -1, 1), new Among("log\u00EDa", -1, 2), + new Among("idade", -1, 7), new Among("ante", -1, 1), + new Among("mente", -1, 6), new Among("amente", 12, 5), + new Among("\u00E1vel", -1, 1), new Among("\u00EDvel", -1, 1), + new Among("uci\u00F3n", -1, 3), new Among("ico", -1, 1), + new Among("ismo", -1, 1), new Among("oso", -1, 1), + new Among("amento", -1, 1), new Among("imento", -1, 1), + new Among("ivo", -1, 8), new Among("a\u00E7a~o", -1, 1), + new Among("ador", -1, 1), new Among("icas", -1, 1), + new Among("\u00EAncias", -1, 4), new Among("iras", -1, 9), + new Among("adoras", -1, 1), new Among("osas", -1, 1), + new Among("istas", -1, 1), new Among("ivas", -1, 8), + new Among("ezas", -1, 1), new Among("log\u00EDas", -1, 2), + new Among("idades", -1, 7), new Among("uciones", -1, 3), + new Among("adores", -1, 1), new Among("antes", -1, 1), + new Among("a\u00E7o~es", -1, 1), new Among("icos", -1, 1), + new Among("ismos", -1, 1), new Among("osos", -1, 1), + new Among("amentos", -1, 1), new Among("imentos", -1, 1), + new Among("ivos", -1, 8) + ], + a_6 = [new Among("ada", -1, 1), + new Among("ida", -1, 1), new Among("ia", -1, 1), + new Among("aria", 2, 1), new Among("eria", 2, 1), + new Among("iria", 2, 1), new Among("ara", -1, 1), + new Among("era", -1, 1), new Among("ira", -1, 1), + new Among("ava", -1, 1), new Among("asse", -1, 1), + new Among("esse", -1, 1), new Among("isse", -1, 1), + new Among("aste", -1, 1), new Among("este", -1, 1), + new Among("iste", -1, 1), new Among("ei", -1, 1), + new Among("arei", 16, 1), new Among("erei", 16, 1), + new Among("irei", 16, 1), new Among("am", -1, 1), + new Among("iam", 20, 1), new Among("ariam", 21, 1), + new Among("eriam", 21, 1), new Among("iriam", 21, 1), + new Among("aram", 20, 1), new Among("eram", 20, 1), + new Among("iram", 20, 1), new Among("avam", 20, 1), + new Among("em", -1, 1), new Among("arem", 29, 1), + new Among("erem", 29, 1), new Among("irem", 29, 1), + new Among("assem", 29, 1), new Among("essem", 29, 1), + new Among("issem", 29, 1), new Among("ado", -1, 1), + new Among("ido", -1, 1), new Among("ando", -1, 1), + new Among("endo", -1, 1), new Among("indo", -1, 1), + new Among("ara~o", -1, 1), new Among("era~o", -1, 1), + new Among("ira~o", -1, 1), new Among("ar", -1, 1), + new Among("er", -1, 1), new Among("ir", -1, 1), + new Among("as", -1, 1), new Among("adas", 47, 1), + new Among("idas", 47, 1), new Among("ias", 47, 1), + new Among("arias", 50, 1), new Among("erias", 50, 1), + new Among("irias", 50, 1), new Among("aras", 47, 1), + new Among("eras", 47, 1), new Among("iras", 47, 1), + new Among("avas", 47, 1), new Among("es", -1, 1), + new Among("ardes", 58, 1), new Among("erdes", 58, 1), + new Among("irdes", 58, 1), new Among("ares", 58, 1), + new Among("eres", 58, 1), new Among("ires", 58, 1), + new Among("asses", 58, 1), new Among("esses", 58, 1), + new Among("isses", 58, 1), new Among("astes", 58, 1), + new Among("estes", 58, 1), new Among("istes", 58, 1), + new Among("is", -1, 1), new Among("ais", 71, 1), + new Among("eis", 71, 1), new Among("areis", 73, 1), + new Among("ereis", 73, 1), new Among("ireis", 73, 1), + new Among("\u00E1reis", 73, 1), new Among("\u00E9reis", 73, 1), + new Among("\u00EDreis", 73, 1), new Among("\u00E1sseis", 73, 1), + new Among("\u00E9sseis", 73, 1), new Among("\u00EDsseis", 73, 1), + new Among("\u00E1veis", 73, 1), new Among("\u00EDeis", 73, 1), + new Among("ar\u00EDeis", 84, 1), new Among("er\u00EDeis", 84, 1), + new Among("ir\u00EDeis", 84, 1), new Among("ados", -1, 1), + new Among("idos", -1, 1), new Among("amos", -1, 1), + new Among("\u00E1ramos", 90, 1), new Among("\u00E9ramos", 90, 1), + new Among("\u00EDramos", 90, 1), new Among("\u00E1vamos", 90, 1), + new Among("\u00EDamos", 90, 1), new Among("ar\u00EDamos", 95, 1), + new Among("er\u00EDamos", 95, 1), new Among("ir\u00EDamos", 95, 1), + new Among("emos", -1, 1), new Among("aremos", 99, 1), + new Among("eremos", 99, 1), new Among("iremos", 99, 1), + new Among("\u00E1ssemos", 99, 1), new Among("\u00EAssemos", 99, 1), + new Among("\u00EDssemos", 99, 1), new Among("imos", -1, 1), + new Among("armos", -1, 1), new Among("ermos", -1, 1), + new Among("irmos", -1, 1), new Among("\u00E1mos", -1, 1), + new Among("ar\u00E1s", -1, 1), new Among("er\u00E1s", -1, 1), + new Among("ir\u00E1s", -1, 1), new Among("eu", -1, 1), + new Among("iu", -1, 1), new Among("ou", -1, 1), + new Among("ar\u00E1", -1, 1), new Among("er\u00E1", -1, 1), + new Among("ir\u00E1", -1, 1) + ], + a_7 = [new Among("a", -1, 1), + new Among("i", -1, 1), new Among("o", -1, 1), + new Among("os", -1, 1), new Among("\u00E1", -1, 1), + new Among("\u00ED", -1, 1), new Among("\u00F3", -1, 1) + ], + a_8 = [ + new Among("e", -1, 1), new Among("\u00E7", -1, 2), + new Among("\u00E9", -1, 1), new Among("\u00EA", -1, 1) + ], + g_v = [17, + 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 12, 2 + ], + I_p2, I_p1, I_pV, sbp = new SnowballProgram(); + this.setCurrent = function(word) { + sbp.setCurrent(word); + }; + this.getCurrent = function() { + return sbp.getCurrent(); + }; + + function r_prelude() { + var among_var; + while (true) { + sbp.bra = sbp.cursor; + among_var = sbp.find_among(a_0, 3); + if (among_var) { + sbp.ket = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_from("a~"); + continue; + case 2: + sbp.slice_from("o~"); + continue; + case 3: + if (sbp.cursor >= sbp.limit) + break; + sbp.cursor++; + continue; + } + } + break; + } + } + + function habr2() { + if (sbp.out_grouping(g_v, 97, 250)) { + while (!sbp.in_grouping(g_v, 97, 250)) { + if (sbp.cursor >= sbp.limit) + return true; + sbp.cursor++; + } + return false; + } + return true; + } + + function habr3() { + if (sbp.in_grouping(g_v, 97, 250)) { + while (!sbp.out_grouping(g_v, 97, 250)) { + if (sbp.cursor >= sbp.limit) + return false; + sbp.cursor++; + } + } + I_pV = sbp.cursor; + return true; + } + + function habr4() { + var v_1 = sbp.cursor, + v_2, v_3; + if (sbp.in_grouping(g_v, 97, 250)) { + v_2 = sbp.cursor; + if (habr2()) { + sbp.cursor = v_2; + if (habr3()) + return; + } else + I_pV = sbp.cursor; + } + sbp.cursor = v_1; + if (sbp.out_grouping(g_v, 97, 250)) { + v_3 = sbp.cursor; + if (habr2()) { + sbp.cursor = v_3; + if (!sbp.in_grouping(g_v, 97, 250) || sbp.cursor >= sbp.limit) + return; + sbp.cursor++; + } + I_pV = sbp.cursor; + } + } + + function habr5() { + while (!sbp.in_grouping(g_v, 97, 250)) { + if (sbp.cursor >= sbp.limit) + return false; + sbp.cursor++; + } + while (!sbp.out_grouping(g_v, 97, 250)) { + if (sbp.cursor >= sbp.limit) + return false; + sbp.cursor++; + } + return true; + } + + function r_mark_regions() { + var v_1 = sbp.cursor; + I_pV = sbp.limit; + I_p1 = I_pV; + I_p2 = I_pV; + habr4(); + sbp.cursor = v_1; + if (habr5()) { + I_p1 = sbp.cursor; + if (habr5()) + I_p2 = sbp.cursor; + } + } + + function r_postlude() { + var among_var; + while (true) { + sbp.bra = sbp.cursor; + among_var = sbp.find_among(a_1, 3); + if (among_var) { + sbp.ket = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_from("\u00E3"); + continue; + case 2: + sbp.slice_from("\u00F5"); + continue; + case 3: + if (sbp.cursor >= sbp.limit) + break; + sbp.cursor++; + continue; + } + } + break; + } + } + + function r_RV() { + return I_pV <= sbp.cursor; + } + + function r_R1() { + return I_p1 <= sbp.cursor; + } + + function r_R2() { + return I_p2 <= sbp.cursor; + } + + function r_standard_suffix() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_5, 45); + if (!among_var) + return false; + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + if (!r_R2()) + return false; + sbp.slice_del(); + break; + case 2: + if (!r_R2()) + return false; + sbp.slice_from("log"); + break; + case 3: + if (!r_R2()) + return false; + sbp.slice_from("u"); + break; + case 4: + if (!r_R2()) + return false; + sbp.slice_from("ente"); + break; + case 5: + if (!r_R1()) + return false; + sbp.slice_del(); + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_2, 4); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R2()) { + sbp.slice_del(); + if (among_var == 1) { + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "at")) { + sbp.bra = sbp.cursor; + if (r_R2()) + sbp.slice_del(); + } + } + } + } + break; + case 6: + if (!r_R2()) + return false; + sbp.slice_del(); + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_3, 3); + if (among_var) { + sbp.bra = sbp.cursor; + if (among_var == 1) + if (r_R2()) + sbp.slice_del(); + } + break; + case 7: + if (!r_R2()) + return false; + sbp.slice_del(); + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_4, 3); + if (among_var) { + sbp.bra = sbp.cursor; + if (among_var == 1) + if (r_R2()) + sbp.slice_del(); + } + break; + case 8: + if (!r_R2()) + return false; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "at")) { + sbp.bra = sbp.cursor; + if (r_R2()) + sbp.slice_del(); + } + break; + case 9: + if (!r_RV() || !sbp.eq_s_b(1, "e")) + return false; + sbp.slice_from("ir"); + break; + } + return true; + } + + function r_verb_suffix() { + var among_var, v_1; + if (sbp.cursor >= I_pV) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_pV; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_6, 120); + if (among_var) { + sbp.bra = sbp.cursor; + if (among_var == 1) + sbp.slice_del(); + sbp.limit_backward = v_1; + return true; + } + sbp.limit_backward = v_1; + } + return false; + } + + function r_residual_suffix() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_7, 7); + if (among_var) { + sbp.bra = sbp.cursor; + if (among_var == 1) + if (r_RV()) + sbp.slice_del(); + } + } + + function habr6(c1, c2) { + if (sbp.eq_s_b(1, c1)) { + sbp.bra = sbp.cursor; + var v_1 = sbp.limit - sbp.cursor; + if (sbp.eq_s_b(1, c2)) { + sbp.cursor = sbp.limit - v_1; + if (r_RV()) + sbp.slice_del(); + return false; + } + } + return true; + } + + function r_residual_form() { + var among_var, v_1, v_2, v_3; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_8, 4); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + if (r_RV()) { + sbp.slice_del(); + sbp.ket = sbp.cursor; + v_1 = sbp.limit - sbp.cursor; + if (habr6("u", "g")) + habr6("i", "c") + } + break; + case 2: + sbp.slice_from("c"); + break; + } + } + } + + function habr1() { + if (!r_standard_suffix()) { + sbp.cursor = sbp.limit; + if (!r_verb_suffix()) { + sbp.cursor = sbp.limit; + r_residual_suffix(); + return; + } + } + sbp.cursor = sbp.limit; + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(1, "i")) { + sbp.bra = sbp.cursor; + if (sbp.eq_s_b(1, "c")) { + sbp.cursor = sbp.limit; + if (r_RV()) + sbp.slice_del(); + } + } + } + this.stem = function() { + var v_1 = sbp.cursor; + r_prelude(); + sbp.cursor = v_1; + r_mark_regions(); + sbp.limit_backward = v_1; + sbp.cursor = sbp.limit; + habr1(); + sbp.cursor = sbp.limit; + r_residual_form(); + sbp.cursor = sbp.limit_backward; + r_postlude(); + return true; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.pt.stemmer, 'stemmer-pt'); + + /* stop word filter function */ + lunr.pt.stopWordFilter = function(token) { + if (lunr.pt.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.pt.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.pt.stopWordFilter.stopWords.length = 204; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.pt.stopWordFilter.stopWords.elements = ' a ao aos aquela aquelas aquele aqueles aquilo as até com como da das de dela delas dele deles depois do dos e ela elas ele eles em entre era eram essa essas esse esses esta estamos estas estava estavam este esteja estejam estejamos estes esteve estive estivemos estiver estivera estiveram estiverem estivermos estivesse estivessem estivéramos estivéssemos estou está estávamos estão eu foi fomos for fora foram forem formos fosse fossem fui fôramos fôssemos haja hajam hajamos havemos hei houve houvemos houver houvera houveram houverei houverem houveremos houveria houveriam houvermos houverá houverão houveríamos houvesse houvessem houvéramos houvéssemos há hão isso isto já lhe lhes mais mas me mesmo meu meus minha minhas muito na nas nem no nos nossa nossas nosso nossos num numa não nós o os ou para pela pelas pelo pelos por qual quando que quem se seja sejam sejamos sem serei seremos seria seriam será serão seríamos seu seus somos sou sua suas são só também te tem temos tenha tenham tenhamos tenho terei teremos teria teriam terá terão teríamos teu teus teve tinha tinham tive tivemos tiver tivera tiveram tiverem tivermos tivesse tivessem tivéramos tivéssemos tu tua tuas tém tínhamos um uma você vocês vos à às éramos'.split(' '); + + lunr.Pipeline.registerFunction(lunr.pt.stopWordFilter, 'stopWordFilter-pt'); + }; +})) \ No newline at end of file diff --git a/js/lunr.pt.min.js b/js/lunr.pt.min.js new file mode 100644 index 0000000..c82fed6 --- /dev/null +++ b/js/lunr.pt.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,W,s;r.pt=function(){this.pipeline.reset(),this.pipeline.add(r.pt.trimmer,r.pt.stopWordFilter,r.pt.stemmer)},r.pt.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.pt.trimmer=r.trimmerSupport.generateTrimmer(r.pt.wordCharacters),r.Pipeline.registerFunction(r.pt.trimmer,"trimmer-pt"),r.pt.stemmer=(e=r.stemmerSupport.Among,W=r.stemmerSupport.SnowballProgram,s=new function(){var o,i,t,a=[new e("",-1,3),new e("ã",0,1),new e("õ",0,2)],u=[new e("",-1,3),new e("a~",0,1),new e("o~",0,2)],r=[new e("ic",-1,-1),new e("ad",-1,-1),new e("os",-1,-1),new e("iv",-1,1)],s=[new e("ante",-1,1),new e("avel",-1,1),new e("ível",-1,1)],n=[new e("ic",-1,1),new e("abil",-1,1),new e("iv",-1,1)],w=[new e("ica",-1,1),new e("ância",-1,1),new e("ência",-1,4),new e("ira",-1,9),new e("adora",-1,1),new e("osa",-1,1),new e("ista",-1,1),new e("iva",-1,8),new e("eza",-1,1),new e("logía",-1,2),new e("idade",-1,7),new e("ante",-1,1),new e("mente",-1,6),new e("amente",12,5),new e("ável",-1,1),new e("ível",-1,1),new e("ución",-1,3),new e("ico",-1,1),new e("ismo",-1,1),new e("oso",-1,1),new e("amento",-1,1),new e("imento",-1,1),new e("ivo",-1,8),new e("aça~o",-1,1),new e("ador",-1,1),new e("icas",-1,1),new e("ências",-1,4),new e("iras",-1,9),new e("adoras",-1,1),new e("osas",-1,1),new e("istas",-1,1),new e("ivas",-1,8),new e("ezas",-1,1),new e("logías",-1,2),new e("idades",-1,7),new e("uciones",-1,3),new e("adores",-1,1),new e("antes",-1,1),new e("aço~es",-1,1),new e("icos",-1,1),new e("ismos",-1,1),new e("osos",-1,1),new e("amentos",-1,1),new e("imentos",-1,1),new e("ivos",-1,8)],m=[new e("ada",-1,1),new e("ida",-1,1),new e("ia",-1,1),new e("aria",2,1),new e("eria",2,1),new e("iria",2,1),new e("ara",-1,1),new e("era",-1,1),new e("ira",-1,1),new e("ava",-1,1),new e("asse",-1,1),new e("esse",-1,1),new e("isse",-1,1),new e("aste",-1,1),new e("este",-1,1),new e("iste",-1,1),new e("ei",-1,1),new e("arei",16,1),new e("erei",16,1),new e("irei",16,1),new e("am",-1,1),new e("iam",20,1),new e("ariam",21,1),new e("eriam",21,1),new e("iriam",21,1),new e("aram",20,1),new e("eram",20,1),new e("iram",20,1),new e("avam",20,1),new e("em",-1,1),new e("arem",29,1),new e("erem",29,1),new e("irem",29,1),new e("assem",29,1),new e("essem",29,1),new e("issem",29,1),new e("ado",-1,1),new e("ido",-1,1),new e("ando",-1,1),new e("endo",-1,1),new e("indo",-1,1),new e("ara~o",-1,1),new e("era~o",-1,1),new e("ira~o",-1,1),new e("ar",-1,1),new e("er",-1,1),new e("ir",-1,1),new e("as",-1,1),new e("adas",47,1),new e("idas",47,1),new e("ias",47,1),new e("arias",50,1),new e("erias",50,1),new e("irias",50,1),new e("aras",47,1),new e("eras",47,1),new e("iras",47,1),new e("avas",47,1),new e("es",-1,1),new e("ardes",58,1),new e("erdes",58,1),new e("irdes",58,1),new e("ares",58,1),new e("eres",58,1),new e("ires",58,1),new e("asses",58,1),new e("esses",58,1),new e("isses",58,1),new e("astes",58,1),new e("estes",58,1),new e("istes",58,1),new e("is",-1,1),new e("ais",71,1),new e("eis",71,1),new e("areis",73,1),new e("ereis",73,1),new e("ireis",73,1),new e("áreis",73,1),new e("éreis",73,1),new e("íreis",73,1),new e("ásseis",73,1),new e("ésseis",73,1),new e("ísseis",73,1),new e("áveis",73,1),new e("íeis",73,1),new e("aríeis",84,1),new e("eríeis",84,1),new e("iríeis",84,1),new e("ados",-1,1),new e("idos",-1,1),new e("amos",-1,1),new e("áramos",90,1),new e("éramos",90,1),new e("íramos",90,1),new e("ávamos",90,1),new e("íamos",90,1),new e("aríamos",95,1),new e("eríamos",95,1),new e("iríamos",95,1),new e("emos",-1,1),new e("aremos",99,1),new e("eremos",99,1),new e("iremos",99,1),new e("ássemos",99,1),new e("êssemos",99,1),new e("íssemos",99,1),new e("imos",-1,1),new e("armos",-1,1),new e("ermos",-1,1),new e("irmos",-1,1),new e("ámos",-1,1),new e("arás",-1,1),new e("erás",-1,1),new e("irás",-1,1),new e("eu",-1,1),new e("iu",-1,1),new e("ou",-1,1),new e("ará",-1,1),new e("erá",-1,1),new e("irá",-1,1)],c=[new e("a",-1,1),new e("i",-1,1),new e("o",-1,1),new e("os",-1,1),new e("á",-1,1),new e("í",-1,1),new e("ó",-1,1)],l=[new e("e",-1,1),new e("ç",-1,2),new e("é",-1,1),new e("ê",-1,1)],f=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,3,19,12,2],d=new W;function p(){if(!d.out_grouping(f,97,250))return 1;for(;!d.in_grouping(f,97,250);){if(d.cursor>=d.limit)return 1;d.cursor++}}function v(){var e,r=d.cursor;if(d.in_grouping(f,97,250))if(e=d.cursor,p()){if(d.cursor=e,function(){if(d.in_grouping(f,97,250))for(;!d.out_grouping(f,97,250);){if(d.cursor>=d.limit)return;d.cursor++}return t=d.cursor,1}())return}else t=d.cursor;if(d.cursor=r,d.out_grouping(f,97,250)){if(e=d.cursor,p()){if(d.cursor=e,!d.in_grouping(f,97,250)||d.cursor>=d.limit)return;d.cursor++}t=d.cursor}}function _(){for(;!d.in_grouping(f,97,250);){if(d.cursor>=d.limit)return;d.cursor++}for(;!d.out_grouping(f,97,250);){if(d.cursor>=d.limit)return;d.cursor++}return 1}function h(){return t<=d.cursor}function b(){return o<=d.cursor}function g(){var e;if(d.ket=d.cursor,e=d.find_among_b(w,45)){switch(d.bra=d.cursor,e){case 1:if(!b())return;d.slice_del();break;case 2:if(!b())return;d.slice_from("log");break;case 3:if(!b())return;d.slice_from("u");break;case 4:if(!b())return;d.slice_from("ente");break;case 5:if(!(i<=d.cursor))return;d.slice_del(),d.ket=d.cursor,(e=d.find_among_b(r,4))&&(d.bra=d.cursor,b())&&(d.slice_del(),1==e)&&(d.ket=d.cursor,d.eq_s_b(2,"at"))&&(d.bra=d.cursor,b())&&d.slice_del();break;case 6:if(!b())return;d.slice_del(),d.ket=d.cursor,(e=d.find_among_b(s,3))&&(d.bra=d.cursor,1==e)&&b()&&d.slice_del();break;case 7:if(!b())return;d.slice_del(),d.ket=d.cursor,(e=d.find_among_b(n,3))&&(d.bra=d.cursor,1==e)&&b()&&d.slice_del();break;case 8:if(!b())return;d.slice_del(),d.ket=d.cursor,d.eq_s_b(2,"at")&&(d.bra=d.cursor,b())&&d.slice_del();break;case 9:if(!h()||!d.eq_s_b(1,"e"))return;d.slice_from("ir")}return 1}}function k(e,r){if(d.eq_s_b(1,e)){d.bra=d.cursor;e=d.limit-d.cursor;if(d.eq_s_b(1,r))return d.cursor=d.limit-e,void(h()&&d.slice_del())}return 1}function q(){var e;g()||(d.cursor=d.limit,function(){var e,r;if(d.cursor>=t){if(r=d.limit_backward,d.limit_backward=t,d.ket=d.cursor,e=d.find_among_b(m,120))return d.bra=d.cursor,1==e&&d.slice_del(),d.limit_backward=r,1;d.limit_backward=r}}())?(d.cursor=d.limit,d.ket=d.cursor,d.eq_s_b(1,"i")&&(d.bra=d.cursor,d.eq_s_b(1,"c"))&&(d.cursor=d.limit,h())&&d.slice_del()):(d.cursor=d.limit,d.ket=d.cursor,(e=d.find_among_b(c,7))&&(d.bra=d.cursor,1==e)&&h()&&d.slice_del())}this.setCurrent=function(e){d.setCurrent(e)},this.getCurrent=function(){return d.getCurrent()},this.stem=function(){for(var e,r,s,n=d.cursor;;){if(d.bra=d.cursor,e=d.find_among(a,3))switch(d.ket=d.cursor,e){case 1:d.slice_from("a~");continue;case 2:d.slice_from("o~");continue;case 3:if(!(d.cursor>=d.limit)){d.cursor++;continue}}break}if(d.cursor=n,r=d.cursor,t=d.limit,o=i=t,v(),d.cursor=r,_()&&(i=d.cursor,_())&&(o=d.cursor),d.limit_backward=n,d.cursor=d.limit,q(),d.cursor=d.limit,d.ket=d.cursor,r=d.find_among_b(l,4))switch(d.bra=d.cursor,r){case 1:h()&&(d.slice_del(),d.ket=d.cursor,d.limit,d.cursor,k("u","g"))&&k("i","c");break;case 2:d.slice_from("c")}for(d.cursor=d.limit_backward;;){if(d.bra=d.cursor,s=d.find_among(u,3))switch(d.ket=d.cursor,s){case 1:d.slice_from("ã");continue;case 2:d.slice_from("õ");continue;case 3:if(!(d.cursor>=d.limit)){d.cursor++;continue}}break}return!0}},function(e){return s.setCurrent(e),s.stem(),s.getCurrent()}),r.Pipeline.registerFunction(r.pt.stemmer,"stemmer-pt"),r.pt.stopWordFilter=function(e){if(-1===r.pt.stopWordFilter.stopWords.indexOf(e))return e},r.pt.stopWordFilter.stopWords=new r.SortedSet,r.pt.stopWordFilter.stopWords.length=204,r.pt.stopWordFilter.stopWords.elements=" a ao aos aquela aquelas aquele aqueles aquilo as até com como da das de dela delas dele deles depois do dos e ela elas ele eles em entre era eram essa essas esse esses esta estamos estas estava estavam este esteja estejam estejamos estes esteve estive estivemos estiver estivera estiveram estiverem estivermos estivesse estivessem estivéramos estivéssemos estou está estávamos estão eu foi fomos for fora foram forem formos fosse fossem fui fôramos fôssemos haja hajam hajamos havemos hei houve houvemos houver houvera houveram houverei houverem houveremos houveria houveriam houvermos houverá houverão houveríamos houvesse houvessem houvéramos houvéssemos há hão isso isto já lhe lhes mais mas me mesmo meu meus minha minhas muito na nas nem no nos nossa nossas nosso nossos num numa não nós o os ou para pela pelas pelo pelos por qual quando que quem se seja sejam sejamos sem serei seremos seria seriam será serão seríamos seu seus somos sou sua suas são só também te tem temos tenha tenham tenhamos tenho terei teremos teria teriam terá terão teríamos teu teus teve tinha tinham tive tivemos tiver tivera tiveram tiverem tivermos tivesse tivessem tivéramos tivéssemos tu tua tuas tém tínhamos um uma você vocês vos à às éramos".split(" "),r.Pipeline.registerFunction(r.pt.stopWordFilter,"stopWordFilter-pt")}}); \ No newline at end of file diff --git a/js/lunr.ro.js b/js/lunr.ro.js new file mode 100644 index 0000000..845497f --- /dev/null +++ b/js/lunr.ro.js @@ -0,0 +1,554 @@ +/*! + * Lunr languages, `Romanian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.ro = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.ro.trimmer, + lunr.ro.stopWordFilter, + lunr.ro.stemmer + ); + }; + + /* lunr trimmer function */ + lunr.ro.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; + lunr.ro.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.ro.wordCharacters); + + lunr.Pipeline.registerFunction(lunr.ro.trimmer, 'trimmer-ro'); + + /* lunr stemmer function */ + lunr.ro.stemmer = (function() { + /* create the wrapped stemmer object */ + var Among = lunr.stemmerSupport.Among, + SnowballProgram = lunr.stemmerSupport.SnowballProgram, + st = new function RomanianStemmer() { + var a_0 = [new Among("", -1, 3), new Among("I", 0, 1), new Among("U", 0, 2)], + a_1 = [ + new Among("ea", -1, 3), new Among("a\u0163ia", -1, 7), + new Among("aua", -1, 2), new Among("iua", -1, 4), + new Among("a\u0163ie", -1, 7), new Among("ele", -1, 3), + new Among("ile", -1, 5), new Among("iile", 6, 4), + new Among("iei", -1, 4), new Among("atei", -1, 6), + new Among("ii", -1, 4), new Among("ului", -1, 1), + new Among("ul", -1, 1), new Among("elor", -1, 3), + new Among("ilor", -1, 4), new Among("iilor", 14, 4) + ], + a_2 = [ + new Among("icala", -1, 4), new Among("iciva", -1, 4), + new Among("ativa", -1, 5), new Among("itiva", -1, 6), + new Among("icale", -1, 4), new Among("a\u0163iune", -1, 5), + new Among("i\u0163iune", -1, 6), new Among("atoare", -1, 5), + new Among("itoare", -1, 6), new Among("\u0103toare", -1, 5), + new Among("icitate", -1, 4), new Among("abilitate", -1, 1), + new Among("ibilitate", -1, 2), new Among("ivitate", -1, 3), + new Among("icive", -1, 4), new Among("ative", -1, 5), + new Among("itive", -1, 6), new Among("icali", -1, 4), + new Among("atori", -1, 5), new Among("icatori", 18, 4), + new Among("itori", -1, 6), new Among("\u0103tori", -1, 5), + new Among("icitati", -1, 4), new Among("abilitati", -1, 1), + new Among("ivitati", -1, 3), new Among("icivi", -1, 4), + new Among("ativi", -1, 5), new Among("itivi", -1, 6), + new Among("icit\u0103i", -1, 4), new Among("abilit\u0103i", -1, 1), + new Among("ivit\u0103i", -1, 3), + new Among("icit\u0103\u0163i", -1, 4), + new Among("abilit\u0103\u0163i", -1, 1), + new Among("ivit\u0103\u0163i", -1, 3), new Among("ical", -1, 4), + new Among("ator", -1, 5), new Among("icator", 35, 4), + new Among("itor", -1, 6), new Among("\u0103tor", -1, 5), + new Among("iciv", -1, 4), new Among("ativ", -1, 5), + new Among("itiv", -1, 6), new Among("ical\u0103", -1, 4), + new Among("iciv\u0103", -1, 4), new Among("ativ\u0103", -1, 5), + new Among("itiv\u0103", -1, 6) + ], + a_3 = [new Among("ica", -1, 1), + new Among("abila", -1, 1), new Among("ibila", -1, 1), + new Among("oasa", -1, 1), new Among("ata", -1, 1), + new Among("ita", -1, 1), new Among("anta", -1, 1), + new Among("ista", -1, 3), new Among("uta", -1, 1), + new Among("iva", -1, 1), new Among("ic", -1, 1), + new Among("ice", -1, 1), new Among("abile", -1, 1), + new Among("ibile", -1, 1), new Among("isme", -1, 3), + new Among("iune", -1, 2), new Among("oase", -1, 1), + new Among("ate", -1, 1), new Among("itate", 17, 1), + new Among("ite", -1, 1), new Among("ante", -1, 1), + new Among("iste", -1, 3), new Among("ute", -1, 1), + new Among("ive", -1, 1), new Among("ici", -1, 1), + new Among("abili", -1, 1), new Among("ibili", -1, 1), + new Among("iuni", -1, 2), new Among("atori", -1, 1), + new Among("osi", -1, 1), new Among("ati", -1, 1), + new Among("itati", 30, 1), new Among("iti", -1, 1), + new Among("anti", -1, 1), new Among("isti", -1, 3), + new Among("uti", -1, 1), new Among("i\u015Fti", -1, 3), + new Among("ivi", -1, 1), new Among("it\u0103i", -1, 1), + new Among("o\u015Fi", -1, 1), new Among("it\u0103\u0163i", -1, 1), + new Among("abil", -1, 1), new Among("ibil", -1, 1), + new Among("ism", -1, 3), new Among("ator", -1, 1), + new Among("os", -1, 1), new Among("at", -1, 1), + new Among("it", -1, 1), new Among("ant", -1, 1), + new Among("ist", -1, 3), new Among("ut", -1, 1), + new Among("iv", -1, 1), new Among("ic\u0103", -1, 1), + new Among("abil\u0103", -1, 1), new Among("ibil\u0103", -1, 1), + new Among("oas\u0103", -1, 1), new Among("at\u0103", -1, 1), + new Among("it\u0103", -1, 1), new Among("ant\u0103", -1, 1), + new Among("ist\u0103", -1, 3), new Among("ut\u0103", -1, 1), + new Among("iv\u0103", -1, 1) + ], + a_4 = [new Among("ea", -1, 1), + new Among("ia", -1, 1), new Among("esc", -1, 1), + new Among("\u0103sc", -1, 1), new Among("ind", -1, 1), + new Among("\u00E2nd", -1, 1), new Among("are", -1, 1), + new Among("ere", -1, 1), new Among("ire", -1, 1), + new Among("\u00E2re", -1, 1), new Among("se", -1, 2), + new Among("ase", 10, 1), new Among("sese", 10, 2), + new Among("ise", 10, 1), new Among("use", 10, 1), + new Among("\u00E2se", 10, 1), new Among("e\u015Fte", -1, 1), + new Among("\u0103\u015Fte", -1, 1), new Among("eze", -1, 1), + new Among("ai", -1, 1), new Among("eai", 19, 1), + new Among("iai", 19, 1), new Among("sei", -1, 2), + new Among("e\u015Fti", -1, 1), new Among("\u0103\u015Fti", -1, 1), + new Among("ui", -1, 1), new Among("ezi", -1, 1), + new Among("\u00E2i", -1, 1), new Among("a\u015Fi", -1, 1), + new Among("se\u015Fi", -1, 2), new Among("ase\u015Fi", 29, 1), + new Among("sese\u015Fi", 29, 2), new Among("ise\u015Fi", 29, 1), + new Among("use\u015Fi", 29, 1), + new Among("\u00E2se\u015Fi", 29, 1), new Among("i\u015Fi", -1, 1), + new Among("u\u015Fi", -1, 1), new Among("\u00E2\u015Fi", -1, 1), + new Among("a\u0163i", -1, 2), new Among("ea\u0163i", 38, 1), + new Among("ia\u0163i", 38, 1), new Among("e\u0163i", -1, 2), + new Among("i\u0163i", -1, 2), new Among("\u00E2\u0163i", -1, 2), + new Among("ar\u0103\u0163i", -1, 1), + new Among("ser\u0103\u0163i", -1, 2), + new Among("aser\u0103\u0163i", 45, 1), + new Among("seser\u0103\u0163i", 45, 2), + new Among("iser\u0103\u0163i", 45, 1), + new Among("user\u0103\u0163i", 45, 1), + new Among("\u00E2ser\u0103\u0163i", 45, 1), + new Among("ir\u0103\u0163i", -1, 1), + new Among("ur\u0103\u0163i", -1, 1), + new Among("\u00E2r\u0103\u0163i", -1, 1), new Among("am", -1, 1), + new Among("eam", 54, 1), new Among("iam", 54, 1), + new Among("em", -1, 2), new Among("asem", 57, 1), + new Among("sesem", 57, 2), new Among("isem", 57, 1), + new Among("usem", 57, 1), new Among("\u00E2sem", 57, 1), + new Among("im", -1, 2), new Among("\u00E2m", -1, 2), + new Among("\u0103m", -1, 2), new Among("ar\u0103m", 65, 1), + new Among("ser\u0103m", 65, 2), new Among("aser\u0103m", 67, 1), + new Among("seser\u0103m", 67, 2), new Among("iser\u0103m", 67, 1), + new Among("user\u0103m", 67, 1), + new Among("\u00E2ser\u0103m", 67, 1), + new Among("ir\u0103m", 65, 1), new Among("ur\u0103m", 65, 1), + new Among("\u00E2r\u0103m", 65, 1), new Among("au", -1, 1), + new Among("eau", 76, 1), new Among("iau", 76, 1), + new Among("indu", -1, 1), new Among("\u00E2ndu", -1, 1), + new Among("ez", -1, 1), new Among("easc\u0103", -1, 1), + new Among("ar\u0103", -1, 1), new Among("ser\u0103", -1, 2), + new Among("aser\u0103", 84, 1), new Among("seser\u0103", 84, 2), + new Among("iser\u0103", 84, 1), new Among("user\u0103", 84, 1), + new Among("\u00E2ser\u0103", 84, 1), new Among("ir\u0103", -1, 1), + new Among("ur\u0103", -1, 1), new Among("\u00E2r\u0103", -1, 1), + new Among("eaz\u0103", -1, 1) + ], + a_5 = [new Among("a", -1, 1), + new Among("e", -1, 1), new Among("ie", 1, 1), + new Among("i", -1, 1), new Among("\u0103", -1, 1) + ], + g_v = [17, 65, + 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 32, 0, 0, 4 + ], + B_standard_suffix_removed, I_p2, I_p1, I_pV, sbp = new SnowballProgram(); + this.setCurrent = function(word) { + sbp.setCurrent(word); + }; + this.getCurrent = function() { + return sbp.getCurrent(); + }; + + function habr1(c1, c2) { + if (sbp.eq_s(1, c1)) { + sbp.ket = sbp.cursor; + if (sbp.in_grouping(g_v, 97, 259)) + sbp.slice_from(c2); + } + } + + function r_prelude() { + var v_1, v_2; + while (true) { + v_1 = sbp.cursor; + if (sbp.in_grouping(g_v, 97, 259)) { + v_2 = sbp.cursor; + sbp.bra = v_2; + habr1("u", "U"); + sbp.cursor = v_2; + habr1("i", "I"); + } + sbp.cursor = v_1; + if (sbp.cursor >= sbp.limit) { + break; + } + sbp.cursor++; + } + } + + function habr2() { + if (sbp.out_grouping(g_v, 97, 259)) { + while (!sbp.in_grouping(g_v, 97, 259)) { + if (sbp.cursor >= sbp.limit) + return true; + sbp.cursor++; + } + return false; + } + return true; + } + + function habr3() { + if (sbp.in_grouping(g_v, 97, 259)) { + while (!sbp.out_grouping(g_v, 97, 259)) { + if (sbp.cursor >= sbp.limit) + return true; + sbp.cursor++; + } + } + return false; + } + + function habr4() { + var v_1 = sbp.cursor, + v_2, v_3; + if (sbp.in_grouping(g_v, 97, 259)) { + v_2 = sbp.cursor; + if (habr2()) { + sbp.cursor = v_2; + if (!habr3()) { + I_pV = sbp.cursor; + return; + } + } else { + I_pV = sbp.cursor; + return; + } + } + sbp.cursor = v_1; + if (sbp.out_grouping(g_v, 97, 259)) { + v_3 = sbp.cursor; + if (habr2()) { + sbp.cursor = v_3; + if (sbp.in_grouping(g_v, 97, 259) && sbp.cursor < sbp.limit) + sbp.cursor++; + } + I_pV = sbp.cursor; + } + } + + function habr5() { + while (!sbp.in_grouping(g_v, 97, 259)) { + if (sbp.cursor >= sbp.limit) + return false; + sbp.cursor++; + } + while (!sbp.out_grouping(g_v, 97, 259)) { + if (sbp.cursor >= sbp.limit) + return false; + sbp.cursor++; + } + return true; + } + + function r_mark_regions() { + var v_1 = sbp.cursor; + I_pV = sbp.limit; + I_p1 = I_pV; + I_p2 = I_pV; + habr4(); + sbp.cursor = v_1; + if (habr5()) { + I_p1 = sbp.cursor; + if (habr5()) + I_p2 = sbp.cursor; + } + } + + function r_postlude() { + var among_var; + while (true) { + sbp.bra = sbp.cursor; + among_var = sbp.find_among(a_0, 3); + if (among_var) { + sbp.ket = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_from("i"); + continue; + case 2: + sbp.slice_from("u"); + continue; + case 3: + if (sbp.cursor >= sbp.limit) + break; + sbp.cursor++; + continue; + } + } + break; + } + } + + function r_RV() { + return I_pV <= sbp.cursor; + } + + function r_R1() { + return I_p1 <= sbp.cursor; + } + + function r_R2() { + return I_p2 <= sbp.cursor; + } + + function r_step_0() { + var among_var, v_1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_1, 16); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R1()) { + switch (among_var) { + case 1: + sbp.slice_del(); + break; + case 2: + sbp.slice_from("a"); + break; + case 3: + sbp.slice_from("e"); + break; + case 4: + sbp.slice_from("i"); + break; + case 5: + v_1 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(2, "ab")) { + sbp.cursor = sbp.limit - v_1; + sbp.slice_from("i"); + } + break; + case 6: + sbp.slice_from("at"); + break; + case 7: + sbp.slice_from("a\u0163i"); + break; + } + } + } + } + + function r_combo_suffix() { + var among_var, v_1 = sbp.limit - sbp.cursor; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_2, 46); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R1()) { + switch (among_var) { + case 1: + sbp.slice_from("abil"); + break; + case 2: + sbp.slice_from("ibil"); + break; + case 3: + sbp.slice_from("iv"); + break; + case 4: + sbp.slice_from("ic"); + break; + case 5: + sbp.slice_from("at"); + break; + case 6: + sbp.slice_from("it"); + break; + } + B_standard_suffix_removed = true; + sbp.cursor = sbp.limit - v_1; + return true; + } + } + return false; + } + + function r_standard_suffix() { + var among_var, v_1; + B_standard_suffix_removed = false; + while (true) { + v_1 = sbp.limit - sbp.cursor; + if (!r_combo_suffix()) { + sbp.cursor = sbp.limit - v_1; + break; + } + } + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_3, 62); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R2()) { + switch (among_var) { + case 1: + sbp.slice_del(); + break; + case 2: + if (sbp.eq_s_b(1, "\u0163")) { + sbp.bra = sbp.cursor; + sbp.slice_from("t"); + } + break; + case 3: + sbp.slice_from("ist"); + break; + } + B_standard_suffix_removed = true; + } + } + } + + function r_verb_suffix() { + var among_var, v_1, v_2; + if (sbp.cursor >= I_pV) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_pV; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_4, 94); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + v_2 = sbp.limit - sbp.cursor; + if (!sbp.out_grouping_b(g_v, 97, 259)) { + sbp.cursor = sbp.limit - v_2; + if (!sbp.eq_s_b(1, "u")) + break; + } + case 2: + sbp.slice_del(); + break; + } + } + sbp.limit_backward = v_1; + } + } + + function r_vowel_suffix() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_5, 5); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_RV() && among_var == 1) + sbp.slice_del(); + } + } + this.stem = function() { + var v_1 = sbp.cursor; + r_prelude(); + sbp.cursor = v_1; + r_mark_regions(); + sbp.limit_backward = v_1; + sbp.cursor = sbp.limit; + r_step_0(); + sbp.cursor = sbp.limit; + r_standard_suffix(); + sbp.cursor = sbp.limit; + if (!B_standard_suffix_removed) { + sbp.cursor = sbp.limit; + r_verb_suffix(); + sbp.cursor = sbp.limit; + } + r_vowel_suffix(); + sbp.cursor = sbp.limit_backward; + r_postlude(); + return true; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.ro.stemmer, 'stemmer-ro'); + + /* stop word filter function */ + lunr.ro.stopWordFilter = function(token) { + if (lunr.ro.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.ro.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.ro.stopWordFilter.stopWords.length = 282; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.ro.stopWordFilter.stopWords.elements = ' acea aceasta această aceea acei aceia acel acela acele acelea acest acesta aceste acestea aceşti aceştia acolo acord acum ai aia aibă aici al ale alea altceva altcineva am ar are asemenea asta astea astăzi asupra au avea avem aveţi azi aş aşadar aţi bine bucur bună ca care caut ce cel ceva chiar cinci cine cineva contra cu cum cumva curând curînd când cât câte câtva câţi cînd cît cîte cîtva cîţi că căci cărei căror cărui către da dacă dar datorită dată dau de deci deja deoarece departe deşi din dinaintea dintr- dintre doi doilea două drept după dă ea ei el ele eram este eu eşti face fata fi fie fiecare fii fim fiu fiţi frumos fără graţie halbă iar ieri la le li lor lui lângă lîngă mai mea mei mele mereu meu mi mie mine mult multă mulţi mulţumesc mâine mîine mă ne nevoie nici nicăieri nimeni nimeri nimic nişte noastre noastră noi noroc nostru nouă noştri nu opt ori oricare orice oricine oricum oricând oricât oricînd oricît oriunde patra patru patrulea pe pentru peste pic poate pot prea prima primul prin puţin puţina puţină până pînă rog sa sale sau se spate spre sub sunt suntem sunteţi sută sînt sîntem sînteţi să săi său ta tale te timp tine toate toată tot totuşi toţi trei treia treilea tu tăi tău un una unde undeva unei uneia unele uneori unii unor unora unu unui unuia unul vi voastre voastră voi vostru vouă voştri vreme vreo vreun vă zece zero zi zice îi îl îmi împotriva în înainte înaintea încotro încât încît între întrucât întrucît îţi ăla ălea ăsta ăstea ăştia şapte şase şi ştiu ţi ţie'.split(' '); + + lunr.Pipeline.registerFunction(lunr.ro.stopWordFilter, 'stopWordFilter-ro'); + }; +})) \ No newline at end of file diff --git a/js/lunr.ro.min.js b/js/lunr.ro.min.js new file mode 100644 index 0000000..0f38816 --- /dev/null +++ b/js/lunr.ro.min.js @@ -0,0 +1 @@ +!function(e,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(e.lunr)}(this,function(){return function(i){if(void 0===i)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===i.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,a,r;i.ro=function(){this.pipeline.reset(),this.pipeline.add(i.ro.trimmer,i.ro.stopWordFilter,i.ro.stemmer)},i.ro.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",i.ro.trimmer=i.trimmerSupport.generateTrimmer(i.ro.wordCharacters),i.Pipeline.registerFunction(i.ro.trimmer,"trimmer-ro"),i.ro.stemmer=(e=i.stemmerSupport.Among,a=i.stemmerSupport.SnowballProgram,r=new function(){var s,c,u,w,m=[new e("",-1,3),new e("I",0,1),new e("U",0,2)],l=[new e("ea",-1,3),new e("aţia",-1,7),new e("aua",-1,2),new e("iua",-1,4),new e("aţie",-1,7),new e("ele",-1,3),new e("ile",-1,5),new e("iile",6,4),new e("iei",-1,4),new e("atei",-1,6),new e("ii",-1,4),new e("ului",-1,1),new e("ul",-1,1),new e("elor",-1,3),new e("ilor",-1,4),new e("iilor",14,4)],r=[new e("icala",-1,4),new e("iciva",-1,4),new e("ativa",-1,5),new e("itiva",-1,6),new e("icale",-1,4),new e("aţiune",-1,5),new e("iţiune",-1,6),new e("atoare",-1,5),new e("itoare",-1,6),new e("ătoare",-1,5),new e("icitate",-1,4),new e("abilitate",-1,1),new e("ibilitate",-1,2),new e("ivitate",-1,3),new e("icive",-1,4),new e("ative",-1,5),new e("itive",-1,6),new e("icali",-1,4),new e("atori",-1,5),new e("icatori",18,4),new e("itori",-1,6),new e("ători",-1,5),new e("icitati",-1,4),new e("abilitati",-1,1),new e("ivitati",-1,3),new e("icivi",-1,4),new e("ativi",-1,5),new e("itivi",-1,6),new e("icităi",-1,4),new e("abilităi",-1,1),new e("ivităi",-1,3),new e("icităţi",-1,4),new e("abilităţi",-1,1),new e("ivităţi",-1,3),new e("ical",-1,4),new e("ator",-1,5),new e("icator",35,4),new e("itor",-1,6),new e("ător",-1,5),new e("iciv",-1,4),new e("ativ",-1,5),new e("itiv",-1,6),new e("icală",-1,4),new e("icivă",-1,4),new e("ativă",-1,5),new e("itivă",-1,6)],n=[new e("ica",-1,1),new e("abila",-1,1),new e("ibila",-1,1),new e("oasa",-1,1),new e("ata",-1,1),new e("ita",-1,1),new e("anta",-1,1),new e("ista",-1,3),new e("uta",-1,1),new e("iva",-1,1),new e("ic",-1,1),new e("ice",-1,1),new e("abile",-1,1),new e("ibile",-1,1),new e("isme",-1,3),new e("iune",-1,2),new e("oase",-1,1),new e("ate",-1,1),new e("itate",17,1),new e("ite",-1,1),new e("ante",-1,1),new e("iste",-1,3),new e("ute",-1,1),new e("ive",-1,1),new e("ici",-1,1),new e("abili",-1,1),new e("ibili",-1,1),new e("iuni",-1,2),new e("atori",-1,1),new e("osi",-1,1),new e("ati",-1,1),new e("itati",30,1),new e("iti",-1,1),new e("anti",-1,1),new e("isti",-1,3),new e("uti",-1,1),new e("işti",-1,3),new e("ivi",-1,1),new e("ităi",-1,1),new e("oşi",-1,1),new e("ităţi",-1,1),new e("abil",-1,1),new e("ibil",-1,1),new e("ism",-1,3),new e("ator",-1,1),new e("os",-1,1),new e("at",-1,1),new e("it",-1,1),new e("ant",-1,1),new e("ist",-1,3),new e("ut",-1,1),new e("iv",-1,1),new e("ică",-1,1),new e("abilă",-1,1),new e("ibilă",-1,1),new e("oasă",-1,1),new e("ată",-1,1),new e("ită",-1,1),new e("antă",-1,1),new e("istă",-1,3),new e("ută",-1,1),new e("ivă",-1,1)],f=[new e("ea",-1,1),new e("ia",-1,1),new e("esc",-1,1),new e("ăsc",-1,1),new e("ind",-1,1),new e("ând",-1,1),new e("are",-1,1),new e("ere",-1,1),new e("ire",-1,1),new e("âre",-1,1),new e("se",-1,2),new e("ase",10,1),new e("sese",10,2),new e("ise",10,1),new e("use",10,1),new e("âse",10,1),new e("eşte",-1,1),new e("ăşte",-1,1),new e("eze",-1,1),new e("ai",-1,1),new e("eai",19,1),new e("iai",19,1),new e("sei",-1,2),new e("eşti",-1,1),new e("ăşti",-1,1),new e("ui",-1,1),new e("ezi",-1,1),new e("âi",-1,1),new e("aşi",-1,1),new e("seşi",-1,2),new e("aseşi",29,1),new e("seseşi",29,2),new e("iseşi",29,1),new e("useşi",29,1),new e("âseşi",29,1),new e("işi",-1,1),new e("uşi",-1,1),new e("âşi",-1,1),new e("aţi",-1,2),new e("eaţi",38,1),new e("iaţi",38,1),new e("eţi",-1,2),new e("iţi",-1,2),new e("âţi",-1,2),new e("arăţi",-1,1),new e("serăţi",-1,2),new e("aserăţi",45,1),new e("seserăţi",45,2),new e("iserăţi",45,1),new e("userăţi",45,1),new e("âserăţi",45,1),new e("irăţi",-1,1),new e("urăţi",-1,1),new e("ârăţi",-1,1),new e("am",-1,1),new e("eam",54,1),new e("iam",54,1),new e("em",-1,2),new e("asem",57,1),new e("sesem",57,2),new e("isem",57,1),new e("usem",57,1),new e("âsem",57,1),new e("im",-1,2),new e("âm",-1,2),new e("ăm",-1,2),new e("arăm",65,1),new e("serăm",65,2),new e("aserăm",67,1),new e("seserăm",67,2),new e("iserăm",67,1),new e("userăm",67,1),new e("âserăm",67,1),new e("irăm",65,1),new e("urăm",65,1),new e("ârăm",65,1),new e("au",-1,1),new e("eau",76,1),new e("iau",76,1),new e("indu",-1,1),new e("ându",-1,1),new e("ez",-1,1),new e("ească",-1,1),new e("ară",-1,1),new e("seră",-1,2),new e("aseră",84,1),new e("seseră",84,2),new e("iseră",84,1),new e("useră",84,1),new e("âseră",84,1),new e("iră",-1,1),new e("ură",-1,1),new e("âră",-1,1),new e("ează",-1,1)],i=[new e("a",-1,1),new e("e",-1,1),new e("ie",1,1),new e("i",-1,1),new e("ă",-1,1)],d=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,2,32,0,0,4],p=new a;function b(e,i){p.eq_s(1,e)&&(p.ket=p.cursor,p.in_grouping(d,97,259))&&p.slice_from(i)}function t(){if(!p.out_grouping(d,97,259))return 1;for(;!p.in_grouping(d,97,259);){if(p.cursor>=p.limit)return 1;p.cursor++}}function v(){var e,i=p.cursor;if(p.in_grouping(d,97,259)){if(e=p.cursor,!t())return void(w=p.cursor);if(p.cursor=e,!function(){if(p.in_grouping(d,97,259))for(;!p.out_grouping(d,97,259);){if(p.cursor>=p.limit)return 1;p.cursor++}}())return void(w=p.cursor)}p.cursor=i,p.out_grouping(d,97,259)&&(e=p.cursor,t()&&(p.cursor=e,p.in_grouping(d,97,259))&&p.cursor=p.limit)return;p.cursor++}for(;!p.out_grouping(d,97,259);){if(p.cursor>=p.limit)return;p.cursor++}return 1}function g(){return u<=p.cursor}function k(){var e,i;for(s=!1;;)if(i=p.limit-p.cursor,!function(){var e,i=p.limit-p.cursor;if(p.ket=p.cursor,(e=p.find_among_b(r,46))&&(p.bra=p.cursor,g())){switch(e){case 1:p.slice_from("abil");break;case 2:p.slice_from("ibil");break;case 3:p.slice_from("iv");break;case 4:p.slice_from("ic");break;case 5:p.slice_from("at");break;case 6:p.slice_from("it")}return s=!0,p.cursor=p.limit-i,1}}()){p.cursor=p.limit-i;break}if(p.ket=p.cursor,(e=p.find_among_b(n,62))&&(p.bra=p.cursor,c<=p.cursor)){switch(e){case 1:p.slice_del();break;case 2:p.eq_s_b(1,"ţ")&&(p.bra=p.cursor,p.slice_from("t"));break;case 3:p.slice_from("ist")}s=!0}}function h(){var e;p.ket=p.cursor,(e=p.find_among_b(i,5))&&(p.bra=p.cursor,w<=p.cursor)&&1==e&&p.slice_del()}this.setCurrent=function(e){p.setCurrent(e)},this.getCurrent=function(){return p.getCurrent()},this.stem=function(){for(var e,i,r,n,t,a,o=p.cursor;e=p.cursor,p.in_grouping(d,97,259)&&(i=p.cursor,p.bra=i,b("u","U"),p.cursor=i,b("i","I")),p.cursor=e,!(p.cursor>=p.limit);)p.cursor++;if(p.cursor=o,n=p.cursor,w=p.limit,c=u=w,v(),p.cursor=n,_()&&(u=p.cursor,_())&&(c=p.cursor),p.limit_backward=o,p.cursor=p.limit,p.ket=p.cursor,(n=p.find_among_b(l,16))&&(p.bra=p.cursor,g()))switch(n){case 1:p.slice_del();break;case 2:p.slice_from("a");break;case 3:p.slice_from("e");break;case 4:p.slice_from("i");break;case 5:r=p.limit-p.cursor,p.eq_s_b(2,"ab")||(p.cursor=p.limit-r,p.slice_from("i"));break;case 6:p.slice_from("at");break;case 7:p.slice_from("aţi")}if(p.cursor=p.limit,k(),p.cursor=p.limit,!s){if(p.cursor=p.limit,p.cursor>=w){if(o=p.limit_backward,p.limit_backward=w,p.ket=p.cursor,n=p.find_among_b(f,94))switch(p.bra=p.cursor,n){case 1:if(t=p.limit-p.cursor,!p.out_grouping_b(d,97,259)&&(p.cursor=p.limit-t,!p.eq_s_b(1,"u")))break;case 2:p.slice_del()}p.limit_backward=o}p.cursor=p.limit}for(h(),p.cursor=p.limit_backward;;){if(p.bra=p.cursor,a=p.find_among(m,3))switch(p.ket=p.cursor,a){case 1:p.slice_from("i");continue;case 2:p.slice_from("u");continue;case 3:if(!(p.cursor>=p.limit)){p.cursor++;continue}}break}return!0}},function(e){return r.setCurrent(e),r.stem(),r.getCurrent()}),i.Pipeline.registerFunction(i.ro.stemmer,"stemmer-ro"),i.ro.stopWordFilter=function(e){if(-1===i.ro.stopWordFilter.stopWords.indexOf(e))return e},i.ro.stopWordFilter.stopWords=new i.SortedSet,i.ro.stopWordFilter.stopWords.length=282,i.ro.stopWordFilter.stopWords.elements=" acea aceasta această aceea acei aceia acel acela acele acelea acest acesta aceste acestea aceşti aceştia acolo acord acum ai aia aibă aici al ale alea altceva altcineva am ar are asemenea asta astea astăzi asupra au avea avem aveţi azi aş aşadar aţi bine bucur bună ca care caut ce cel ceva chiar cinci cine cineva contra cu cum cumva curând curînd când cât câte câtva câţi cînd cît cîte cîtva cîţi că căci cărei căror cărui către da dacă dar datorită dată dau de deci deja deoarece departe deşi din dinaintea dintr- dintre doi doilea două drept după dă ea ei el ele eram este eu eşti face fata fi fie fiecare fii fim fiu fiţi frumos fără graţie halbă iar ieri la le li lor lui lângă lîngă mai mea mei mele mereu meu mi mie mine mult multă mulţi mulţumesc mâine mîine mă ne nevoie nici nicăieri nimeni nimeri nimic nişte noastre noastră noi noroc nostru nouă noştri nu opt ori oricare orice oricine oricum oricând oricât oricînd oricît oriunde patra patru patrulea pe pentru peste pic poate pot prea prima primul prin puţin puţina puţină până pînă rog sa sale sau se spate spre sub sunt suntem sunteţi sută sînt sîntem sînteţi să săi său ta tale te timp tine toate toată tot totuşi toţi trei treia treilea tu tăi tău un una unde undeva unei uneia unele uneori unii unor unora unu unui unuia unul vi voastre voastră voi vostru vouă voştri vreme vreo vreun vă zece zero zi zice îi îl îmi împotriva în înainte înaintea încotro încât încît între întrucât întrucît îţi ăla ălea ăsta ăstea ăştia şapte şase şi ştiu ţi ţie".split(" "),i.Pipeline.registerFunction(i.ro.stopWordFilter,"stopWordFilter-ro")}}); \ No newline at end of file diff --git a/js/lunr.ru.js b/js/lunr.ru.js new file mode 100644 index 0000000..7d57236 --- /dev/null +++ b/js/lunr.ru.js @@ -0,0 +1,387 @@ +/*! + * Lunr languages, `Russian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.ru = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.ru.trimmer, + lunr.ru.stopWordFilter, + lunr.ru.stemmer + ); + }; + + /* lunr trimmer function */ + lunr.ru.wordCharacters = "\u0400-\u0484\u0487-\u052F\u1D2B\u1D78\u2DE0-\u2DFF\uA640-\uA69F\uFE2E\uFE2F"; + lunr.ru.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.ru.wordCharacters); + + lunr.Pipeline.registerFunction(lunr.ru.trimmer, 'trimmer-ru'); + + /* lunr stemmer function */ + lunr.ru.stemmer = (function() { + /* create the wrapped stemmer object */ + var Among = lunr.stemmerSupport.Among, + SnowballProgram = lunr.stemmerSupport.SnowballProgram, + st = new function RussianStemmer() { + var a_0 = [new Among("\u0432", -1, 1), new Among("\u0438\u0432", 0, 2), + new Among("\u044B\u0432", 0, 2), + new Among("\u0432\u0448\u0438", -1, 1), + new Among("\u0438\u0432\u0448\u0438", 3, 2), + new Among("\u044B\u0432\u0448\u0438", 3, 2), + new Among("\u0432\u0448\u0438\u0441\u044C", -1, 1), + new Among("\u0438\u0432\u0448\u0438\u0441\u044C", 6, 2), + new Among("\u044B\u0432\u0448\u0438\u0441\u044C", 6, 2) + ], + a_1 = [ + new Among("\u0435\u0435", -1, 1), new Among("\u0438\u0435", -1, 1), + new Among("\u043E\u0435", -1, 1), new Among("\u044B\u0435", -1, 1), + new Among("\u0438\u043C\u0438", -1, 1), + new Among("\u044B\u043C\u0438", -1, 1), + new Among("\u0435\u0439", -1, 1), new Among("\u0438\u0439", -1, 1), + new Among("\u043E\u0439", -1, 1), new Among("\u044B\u0439", -1, 1), + new Among("\u0435\u043C", -1, 1), new Among("\u0438\u043C", -1, 1), + new Among("\u043E\u043C", -1, 1), new Among("\u044B\u043C", -1, 1), + new Among("\u0435\u0433\u043E", -1, 1), + new Among("\u043E\u0433\u043E", -1, 1), + new Among("\u0435\u043C\u0443", -1, 1), + new Among("\u043E\u043C\u0443", -1, 1), + new Among("\u0438\u0445", -1, 1), new Among("\u044B\u0445", -1, 1), + new Among("\u0435\u044E", -1, 1), new Among("\u043E\u044E", -1, 1), + new Among("\u0443\u044E", -1, 1), new Among("\u044E\u044E", -1, 1), + new Among("\u0430\u044F", -1, 1), new Among("\u044F\u044F", -1, 1) + ], + a_2 = [ + new Among("\u0435\u043C", -1, 1), new Among("\u043D\u043D", -1, 1), + new Among("\u0432\u0448", -1, 1), + new Among("\u0438\u0432\u0448", 2, 2), + new Among("\u044B\u0432\u0448", 2, 2), new Among("\u0449", -1, 1), + new Among("\u044E\u0449", 5, 1), + new Among("\u0443\u044E\u0449", 6, 2) + ], + a_3 = [ + new Among("\u0441\u044C", -1, 1), new Among("\u0441\u044F", -1, 1) + ], + a_4 = [ + new Among("\u043B\u0430", -1, 1), + new Among("\u0438\u043B\u0430", 0, 2), + new Among("\u044B\u043B\u0430", 0, 2), + new Among("\u043D\u0430", -1, 1), + new Among("\u0435\u043D\u0430", 3, 2), + new Among("\u0435\u0442\u0435", -1, 1), + new Among("\u0438\u0442\u0435", -1, 2), + new Among("\u0439\u0442\u0435", -1, 1), + new Among("\u0435\u0439\u0442\u0435", 7, 2), + new Among("\u0443\u0439\u0442\u0435", 7, 2), + new Among("\u043B\u0438", -1, 1), + new Among("\u0438\u043B\u0438", 10, 2), + new Among("\u044B\u043B\u0438", 10, 2), new Among("\u0439", -1, 1), + new Among("\u0435\u0439", 13, 2), new Among("\u0443\u0439", 13, 2), + new Among("\u043B", -1, 1), new Among("\u0438\u043B", 16, 2), + new Among("\u044B\u043B", 16, 2), new Among("\u0435\u043C", -1, 1), + new Among("\u0438\u043C", -1, 2), new Among("\u044B\u043C", -1, 2), + new Among("\u043D", -1, 1), new Among("\u0435\u043D", 22, 2), + new Among("\u043B\u043E", -1, 1), + new Among("\u0438\u043B\u043E", 24, 2), + new Among("\u044B\u043B\u043E", 24, 2), + new Among("\u043D\u043E", -1, 1), + new Among("\u0435\u043D\u043E", 27, 2), + new Among("\u043D\u043D\u043E", 27, 1), + new Among("\u0435\u0442", -1, 1), + new Among("\u0443\u0435\u0442", 30, 2), + new Among("\u0438\u0442", -1, 2), new Among("\u044B\u0442", -1, 2), + new Among("\u044E\u0442", -1, 1), + new Among("\u0443\u044E\u0442", 34, 2), + new Among("\u044F\u0442", -1, 2), new Among("\u043D\u044B", -1, 1), + new Among("\u0435\u043D\u044B", 37, 2), + new Among("\u0442\u044C", -1, 1), + new Among("\u0438\u0442\u044C", 39, 2), + new Among("\u044B\u0442\u044C", 39, 2), + new Among("\u0435\u0448\u044C", -1, 1), + new Among("\u0438\u0448\u044C", -1, 2), new Among("\u044E", -1, 2), + new Among("\u0443\u044E", 44, 2) + ], + a_5 = [ + new Among("\u0430", -1, 1), new Among("\u0435\u0432", -1, 1), + new Among("\u043E\u0432", -1, 1), new Among("\u0435", -1, 1), + new Among("\u0438\u0435", 3, 1), new Among("\u044C\u0435", 3, 1), + new Among("\u0438", -1, 1), new Among("\u0435\u0438", 6, 1), + new Among("\u0438\u0438", 6, 1), + new Among("\u0430\u043C\u0438", 6, 1), + new Among("\u044F\u043C\u0438", 6, 1), + new Among("\u0438\u044F\u043C\u0438", 10, 1), + new Among("\u0439", -1, 1), new Among("\u0435\u0439", 12, 1), + new Among("\u0438\u0435\u0439", 13, 1), + new Among("\u0438\u0439", 12, 1), new Among("\u043E\u0439", 12, 1), + new Among("\u0430\u043C", -1, 1), new Among("\u0435\u043C", -1, 1), + new Among("\u0438\u0435\u043C", 18, 1), + new Among("\u043E\u043C", -1, 1), new Among("\u044F\u043C", -1, 1), + new Among("\u0438\u044F\u043C", 21, 1), new Among("\u043E", -1, 1), + new Among("\u0443", -1, 1), new Among("\u0430\u0445", -1, 1), + new Among("\u044F\u0445", -1, 1), + new Among("\u0438\u044F\u0445", 26, 1), new Among("\u044B", -1, 1), + new Among("\u044C", -1, 1), new Among("\u044E", -1, 1), + new Among("\u0438\u044E", 30, 1), new Among("\u044C\u044E", 30, 1), + new Among("\u044F", -1, 1), new Among("\u0438\u044F", 33, 1), + new Among("\u044C\u044F", 33, 1) + ], + a_6 = [ + new Among("\u043E\u0441\u0442", -1, 1), + new Among("\u043E\u0441\u0442\u044C", -1, 1) + ], + a_7 = [ + new Among("\u0435\u0439\u0448\u0435", -1, 1), + new Among("\u043D", -1, 2), new Among("\u0435\u0439\u0448", -1, 1), + new Among("\u044C", -1, 3) + ], + g_v = [33, 65, 8, 232], + I_p2, I_pV, sbp = new SnowballProgram(); + this.setCurrent = function(word) { + sbp.setCurrent(word); + }; + this.getCurrent = function() { + return sbp.getCurrent(); + }; + + function habr3() { + while (!sbp.in_grouping(g_v, 1072, 1103)) { + if (sbp.cursor >= sbp.limit) + return false; + sbp.cursor++; + } + return true; + } + + function habr4() { + while (!sbp.out_grouping(g_v, 1072, 1103)) { + if (sbp.cursor >= sbp.limit) + return false; + sbp.cursor++; + } + return true; + } + + function r_mark_regions() { + I_pV = sbp.limit; + I_p2 = I_pV; + if (habr3()) { + I_pV = sbp.cursor; + if (habr4()) + if (habr3()) + if (habr4()) + I_p2 = sbp.cursor; + } + } + + function r_R2() { + return I_p2 <= sbp.cursor; + } + + function habr2(a, n) { + var among_var, v_1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a, n); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + v_1 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(1, "\u0430")) { + sbp.cursor = sbp.limit - v_1; + if (!sbp.eq_s_b(1, "\u044F")) + return false; + } + case 2: + sbp.slice_del(); + break; + } + return true; + } + return false; + } + + function r_perfective_gerund() { + return habr2(a_0, 9); + } + + function habr1(a, n) { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a, n); + if (among_var) { + sbp.bra = sbp.cursor; + if (among_var == 1) + sbp.slice_del(); + return true; + } + return false; + } + + function r_adjective() { + return habr1(a_1, 26); + } + + function r_adjectival() { + var among_var; + if (r_adjective()) { + habr2(a_2, 8); + return true; + } + return false; + } + + function r_reflexive() { + return habr1(a_3, 2); + } + + function r_verb() { + return habr2(a_4, 46); + } + + function r_noun() { + habr1(a_5, 36); + } + + function r_derivational() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_6, 2); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R2() && among_var == 1) + sbp.slice_del(); + } + } + + function r_tidy_up() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_7, 4); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (!sbp.eq_s_b(1, "\u043D")) + break; + sbp.bra = sbp.cursor; + case 2: + if (!sbp.eq_s_b(1, "\u043D")) + break; + case 3: + sbp.slice_del(); + break; + } + } + } + this.stem = function() { + r_mark_regions(); + sbp.cursor = sbp.limit; + if (sbp.cursor < I_pV) + return false; + sbp.limit_backward = I_pV; + if (!r_perfective_gerund()) { + sbp.cursor = sbp.limit; + if (!r_reflexive()) + sbp.cursor = sbp.limit; + if (!r_adjectival()) { + sbp.cursor = sbp.limit; + if (!r_verb()) { + sbp.cursor = sbp.limit; + r_noun(); + } + } + } + sbp.cursor = sbp.limit; + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(1, "\u0438")) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + } else + sbp.cursor = sbp.limit; + r_derivational(); + sbp.cursor = sbp.limit; + r_tidy_up(); + return true; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.ru.stemmer, 'stemmer-ru'); + + /* stop word filter function */ + lunr.ru.stopWordFilter = function(token) { + if (lunr.ru.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.ru.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.ru.stopWordFilter.stopWords.length = 422; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.ru.stopWordFilter.stopWords.elements = ' алло без близко более больше будем будет будете будешь будто буду будут будь бы бывает бывь был была были было быть в важная важное важные важный вам вами вас ваш ваша ваше ваши вверх вдали вдруг ведь везде весь вниз внизу во вокруг вон восемнадцатый восемнадцать восемь восьмой вот впрочем времени время все всегда всего всем всеми всему всех всею всю всюду вся всё второй вы г где говорил говорит год года году да давно даже далеко дальше даром два двадцатый двадцать две двенадцатый двенадцать двух девятнадцатый девятнадцать девятый девять действительно дел день десятый десять для до довольно долго должно другая другие других друго другое другой е его ее ей ему если есть еще ещё ею её ж же жизнь за занят занята занято заняты затем зато зачем здесь значит и из или им именно иметь ими имя иногда их к каждая каждое каждые каждый кажется как какая какой кем когда кого ком кому конечно которая которого которой которые который которых кроме кругом кто куда лет ли лишь лучше люди м мало между меля менее меньше меня миллионов мимо мира мне много многочисленная многочисленное многочисленные многочисленный мной мною мог могут мож может можно можхо мои мой мор мочь моя моё мы на наверху над надо назад наиболее наконец нам нами нас начала наш наша наше наши не него недавно недалеко нее ней нельзя нем немного нему непрерывно нередко несколько нет нею неё ни нибудь ниже низко никогда никуда ними них ничего но ну нужно нх о об оба обычно один одиннадцатый одиннадцать однажды однако одного одной около он она они оно опять особенно от отовсюду отсюда очень первый перед по под пожалуйста позже пока пор пора после посреди потом потому почему почти прекрасно при про просто против процентов пятнадцатый пятнадцать пятый пять раз разве рано раньше рядом с сам сама сами самим самими самих само самого самой самом самому саму свое своего своей свои своих свою сеаой себе себя сегодня седьмой сейчас семнадцатый семнадцать семь сих сказал сказала сказать сколько слишком сначала снова со собой собою совсем спасибо стал суть т та так такая также такие такое такой там твой твоя твоё те тебе тебя тем теми теперь тех то тобой тобою тогда того тоже только том тому тот тою третий три тринадцатый тринадцать ту туда тут ты тысяч у уж уже уметь хорошо хотеть хоть хотя хочешь часто чаще чего человек чем чему через четвертый четыре четырнадцатый четырнадцать что чтоб чтобы чуть шестнадцатый шестнадцать шестой шесть эта эти этим этими этих это этого этой этом этому этот эту я а'.split(' '); + + lunr.Pipeline.registerFunction(lunr.ru.stopWordFilter, 'stopWordFilter-ru'); + }; +})) \ No newline at end of file diff --git a/js/lunr.ru.min.js b/js/lunr.ru.min.js new file mode 100644 index 0000000..717c438 --- /dev/null +++ b/js/lunr.ru.min.js @@ -0,0 +1 @@ +!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(n){if(void 0===n)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===n.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var g,h,r;n.ru=function(){this.pipeline.reset(),this.pipeline.add(n.ru.trimmer,n.ru.stopWordFilter,n.ru.stemmer)},n.ru.wordCharacters="Ѐ-҄҇-ԯᴫᵸⷠ-ⷿꙀ-ꚟ︮︯",n.ru.trimmer=n.trimmerSupport.generateTrimmer(n.ru.wordCharacters),n.Pipeline.registerFunction(n.ru.trimmer,"trimmer-ru"),n.ru.stemmer=(g=n.stemmerSupport.Among,h=n.stemmerSupport.SnowballProgram,r=new function(){var n,r,w=[new g("в",-1,1),new g("ив",0,2),new g("ыв",0,2),new g("вши",-1,1),new g("ивши",3,2),new g("ывши",3,2),new g("вшись",-1,1),new g("ившись",6,2),new g("ывшись",6,2)],e=[new g("ее",-1,1),new g("ие",-1,1),new g("ое",-1,1),new g("ые",-1,1),new g("ими",-1,1),new g("ыми",-1,1),new g("ей",-1,1),new g("ий",-1,1),new g("ой",-1,1),new g("ый",-1,1),new g("ем",-1,1),new g("им",-1,1),new g("ом",-1,1),new g("ым",-1,1),new g("его",-1,1),new g("ого",-1,1),new g("ему",-1,1),new g("ому",-1,1),new g("их",-1,1),new g("ых",-1,1),new g("ею",-1,1),new g("ою",-1,1),new g("ую",-1,1),new g("юю",-1,1),new g("ая",-1,1),new g("яя",-1,1)],t=[new g("ем",-1,1),new g("нн",-1,1),new g("вш",-1,1),new g("ивш",2,2),new g("ывш",2,2),new g("щ",-1,1),new g("ющ",5,1),new g("ующ",6,2)],i=[new g("сь",-1,1),new g("ся",-1,1)],o=[new g("ла",-1,1),new g("ила",0,2),new g("ыла",0,2),new g("на",-1,1),new g("ена",3,2),new g("ете",-1,1),new g("ите",-1,2),new g("йте",-1,1),new g("ейте",7,2),new g("уйте",7,2),new g("ли",-1,1),new g("или",10,2),new g("ыли",10,2),new g("й",-1,1),new g("ей",13,2),new g("уй",13,2),new g("л",-1,1),new g("ил",16,2),new g("ыл",16,2),new g("ем",-1,1),new g("им",-1,2),new g("ым",-1,2),new g("н",-1,1),new g("ен",22,2),new g("ло",-1,1),new g("ило",24,2),new g("ыло",24,2),new g("но",-1,1),new g("ено",27,2),new g("нно",27,1),new g("ет",-1,1),new g("ует",30,2),new g("ит",-1,2),new g("ыт",-1,2),new g("ют",-1,1),new g("уют",34,2),new g("ят",-1,2),new g("ны",-1,1),new g("ены",37,2),new g("ть",-1,1),new g("ить",39,2),new g("ыть",39,2),new g("ешь",-1,1),new g("ишь",-1,2),new g("ю",-1,2),new g("ую",44,2)],u=[new g("а",-1,1),new g("ев",-1,1),new g("ов",-1,1),new g("е",-1,1),new g("ие",3,1),new g("ье",3,1),new g("и",-1,1),new g("еи",6,1),new g("ии",6,1),new g("ами",6,1),new g("ями",6,1),new g("иями",10,1),new g("й",-1,1),new g("ей",12,1),new g("ией",13,1),new g("ий",12,1),new g("ой",12,1),new g("ам",-1,1),new g("ем",-1,1),new g("ием",18,1),new g("ом",-1,1),new g("ям",-1,1),new g("иям",21,1),new g("о",-1,1),new g("у",-1,1),new g("ах",-1,1),new g("ях",-1,1),new g("иях",26,1),new g("ы",-1,1),new g("ь",-1,1),new g("ю",-1,1),new g("ию",30,1),new g("ью",30,1),new g("я",-1,1),new g("ия",33,1),new g("ья",33,1)],s=[new g("ост",-1,1),new g("ость",-1,1)],c=[new g("ейше",-1,1),new g("н",-1,2),new g("ейш",-1,1),new g("ь",-1,3)],m=[33,65,8,232],l=new h;function f(){for(;!l.in_grouping(m,1072,1103);){if(l.cursor>=l.limit)return;l.cursor++}return 1}function p(){for(;!l.out_grouping(m,1072,1103);){if(l.cursor>=l.limit)return;l.cursor++}return 1}function d(e,n){var r;if(l.ket=l.cursor,e=l.find_among_b(e,n)){switch(l.bra=l.cursor,e){case 1:if(r=l.limit-l.cursor,!l.eq_s_b(1,"а")&&(l.cursor=l.limit-r,!l.eq_s_b(1,"я")))return!1;case 2:l.slice_del()}return!0}return!1}function a(e,n){return l.ket=l.cursor,!!(e=l.find_among_b(e,n))&&(l.bra=l.cursor,1==e&&l.slice_del(),!0)}function _(){return a(e,26)&&(d(t,8),1)}function b(){var e;l.ket=l.cursor,(e=l.find_among_b(s,2))&&(l.bra=l.cursor,n<=l.cursor)&&1==e&&l.slice_del()}this.setCurrent=function(e){l.setCurrent(e)},this.getCurrent=function(){return l.getCurrent()},this.stem=function(){if(r=l.limit,n=r,f()&&(r=l.cursor,p())&&f()&&p()&&(n=l.cursor),l.cursor=l.limit,l.cursor= min) { + ch -= min; + if (s[ch >> 3] & (0X1 << (ch & 0X7))) { + this.cursor++; + return true; + } + } + } + return false; + }, + in_grouping_b : function(s, min, max) { + if (this.cursor > this.limit_backward) { + var ch = current.charCodeAt(this.cursor - 1); + if (ch <= max && ch >= min) { + ch -= min; + if (s[ch >> 3] & (0X1 << (ch & 0X7))) { + this.cursor--; + return true; + } + } + } + return false; + }, + out_grouping : function(s, min, max) { + if (this.cursor < this.limit) { + var ch = current.charCodeAt(this.cursor); + if (ch > max || ch < min) { + this.cursor++; + return true; + } + ch -= min; + if (!(s[ch >> 3] & (0X1 << (ch & 0X7)))) { + this.cursor++; + return true; + } + } + return false; + }, + out_grouping_b : function(s, min, max) { + if (this.cursor > this.limit_backward) { + var ch = current.charCodeAt(this.cursor - 1); + if (ch > max || ch < min) { + this.cursor--; + return true; + } + ch -= min; + if (!(s[ch >> 3] & (0X1 << (ch & 0X7)))) { + this.cursor--; + return true; + } + } + return false; + }, + eq_s : function(s_size, s) { + if (this.limit - this.cursor < s_size) + return false; + for (var i = 0; i < s_size; i++) + if (current.charCodeAt(this.cursor + i) != s.charCodeAt(i)) + return false; + this.cursor += s_size; + return true; + }, + eq_s_b : function(s_size, s) { + if (this.cursor - this.limit_backward < s_size) + return false; + for (var i = 0; i < s_size; i++) + if (current.charCodeAt(this.cursor - s_size + i) != s + .charCodeAt(i)) + return false; + this.cursor -= s_size; + return true; + }, + find_among : function(v, v_size) { + var i = 0, j = v_size, c = this.cursor, l = this.limit, common_i = 0, common_j = 0, first_key_inspected = false; + while (true) { + var k = i + ((j - i) >> 1), diff = 0, common = common_i < common_j + ? common_i + : common_j, w = v[k]; + for (var i2 = common; i2 < w.s_size; i2++) { + if (c + common == l) { + diff = -1; + break; + } + diff = current.charCodeAt(c + common) - w.s[i2]; + if (diff) + break; + common++; + } + if (diff < 0) { + j = k; + common_j = common; + } else { + i = k; + common_i = common; + } + if (j - i <= 1) { + if (i > 0 || j == i || first_key_inspected) + break; + first_key_inspected = true; + } + } + while (true) { + var w = v[i]; + if (common_i >= w.s_size) { + this.cursor = c + w.s_size; + if (!w.method) + return w.result; + var res = w.method(); + this.cursor = c + w.s_size; + if (res) + return w.result; + } + i = w.substring_i; + if (i < 0) + return 0; + } + }, + find_among_b : function(v, v_size) { + var i = 0, j = v_size, c = this.cursor, lb = this.limit_backward, common_i = 0, common_j = 0, first_key_inspected = false; + while (true) { + var k = i + ((j - i) >> 1), diff = 0, common = common_i < common_j + ? common_i + : common_j, w = v[k]; + for (var i2 = w.s_size - 1 - common; i2 >= 0; i2--) { + if (c - common == lb) { + diff = -1; + break; + } + diff = current.charCodeAt(c - 1 - common) - w.s[i2]; + if (diff) + break; + common++; + } + if (diff < 0) { + j = k; + common_j = common; + } else { + i = k; + common_i = common; + } + if (j - i <= 1) { + if (i > 0 || j == i || first_key_inspected) + break; + first_key_inspected = true; + } + } + while (true) { + var w = v[i]; + if (common_i >= w.s_size) { + this.cursor = c - w.s_size; + if (!w.method) + return w.result; + var res = w.method(); + this.cursor = c - w.s_size; + if (res) + return w.result; + } + i = w.substring_i; + if (i < 0) + return 0; + } + }, + replace_s : function(c_bra, c_ket, s) { + var adjustment = s.length - (c_ket - c_bra), left = current + .substring(0, c_bra), right = current.substring(c_ket); + current = left + s + right; + this.limit += adjustment; + if (this.cursor >= c_ket) + this.cursor += adjustment; + else if (this.cursor > c_bra) + this.cursor = c_bra; + return adjustment; + }, + slice_check : function() { + if (this.bra < 0 || this.bra > this.ket || this.ket > this.limit + || this.limit > current.length) + throw ("faulty slice operation"); + }, + slice_from : function(s) { + this.slice_check(); + this.replace_s(this.bra, this.ket, s); + }, + slice_del : function() { + this.slice_from(""); + }, + insert : function(c_bra, c_ket, s) { + var adjustment = this.replace_s(c_bra, c_ket, s); + if (c_bra <= this.bra) + this.bra += adjustment; + if (c_bra <= this.ket) + this.ket += adjustment; + }, + slice_to : function() { + this.slice_check(); + return current.substring(this.bra, this.ket); + }, + eq_v_b : function(s) { + return this.eq_s_b(s.length, s); + } + }; + } + }; + + lunr.trimmerSupport = { + generateTrimmer: function(wordCharacters) { + var startRegex = new RegExp("^[^" + wordCharacters + "]+") + var endRegex = new RegExp("[^" + wordCharacters + "]+$") + + return function(token) { + return token + .replace(startRegex, '') + .replace(endRegex, ''); + }; + } + } + } +})); diff --git a/js/lunr.stemmer.support.min.js b/js/lunr.stemmer.support.min.js new file mode 100644 index 0000000..3ffdbd6 --- /dev/null +++ b/js/lunr.stemmer.support.min.js @@ -0,0 +1 @@ +!function(r,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(r.lunr)}(this,function(){return function(r){r.stemmerSupport={Among:function(r,t,i,s){if(this.toCharArray=function(r){for(var t=r.length,i=new Array(t),s=0;s>3]&1<<(7&s))return this.cursor++,!0}return!1},in_grouping_b:function(r,t,i){if(this.cursor>this.limit_backward){var s=b.charCodeAt(this.cursor-1);if(s<=i&&t<=s&&r[(s-=t)>>3]&1<<(7&s))return this.cursor--,!0}return!1},out_grouping:function(r,t,i){if(this.cursor>3]&1<<(7&s)))return this.cursor++,!0}return!1},out_grouping_b:function(r,t,i){if(this.cursor>this.limit_backward){var s=b.charCodeAt(this.cursor-1);if(i>3]&1<<(7&s)))return this.cursor--,!0}return!1},eq_s:function(r,t){if(this.limit-this.cursor>1),f=0,a=u=(l=r[i]).s_size){if(this.cursor=e+l.s_size,!l.method)return l.result;var m=l.method();if(this.cursor=e+l.s_size,m)return l.result}if((i=l.substring_i)<0)return 0}},find_among_b:function(r,t){for(var i=0,s=t,e=this.cursor,n=this.limit_backward,u=0,o=0,h=!1;;){for(var c,f=i+(s-i>>1),a=0,l=u=(c=r[i]).s_size){if(this.cursor=e-c.s_size,!c.method)return c.result;var m=c.method();if(this.cursor=e-c.s_size,m)return c.result}if((i=c.substring_i)<0)return 0}},replace_s:function(r,t,i){var s=i.length-(t-r);return b=b.substring(0,r)+i+b.substring(t),this.limit+=s,this.cursor>=t?this.cursor+=s:this.cursor>r&&(this.cursor=r),s},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>b.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){t=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=t),r<=this.ket&&(this.ket+=t)},slice_to:function(){return this.slice_check(),b.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return r.replace(t,"").replace(i,"")}}}}}); \ No newline at end of file diff --git a/js/lunr.sv.js b/js/lunr.sv.js new file mode 100644 index 0000000..d48ea4a --- /dev/null +++ b/js/lunr.sv.js @@ -0,0 +1,252 @@ +/*! + * Lunr languages, `Swedish` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.sv = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.sv.trimmer, + lunr.sv.stopWordFilter, + lunr.sv.stemmer + ); + }; + + /* lunr trimmer function */ + lunr.sv.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; + lunr.sv.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.sv.wordCharacters); + + lunr.Pipeline.registerFunction(lunr.sv.trimmer, 'trimmer-sv'); + + /* lunr stemmer function */ + lunr.sv.stemmer = (function() { + /* create the wrapped stemmer object */ + var Among = lunr.stemmerSupport.Among, + SnowballProgram = lunr.stemmerSupport.SnowballProgram, + st = new function SwedishStemmer() { + var a_0 = [new Among("a", -1, 1), new Among("arna", 0, 1), + new Among("erna", 0, 1), new Among("heterna", 2, 1), + new Among("orna", 0, 1), new Among("ad", -1, 1), + new Among("e", -1, 1), new Among("ade", 6, 1), + new Among("ande", 6, 1), new Among("arne", 6, 1), + new Among("are", 6, 1), new Among("aste", 6, 1), + new Among("en", -1, 1), new Among("anden", 12, 1), + new Among("aren", 12, 1), new Among("heten", 12, 1), + new Among("ern", -1, 1), new Among("ar", -1, 1), + new Among("er", -1, 1), new Among("heter", 18, 1), + new Among("or", -1, 1), new Among("s", -1, 2), + new Among("as", 21, 1), new Among("arnas", 22, 1), + new Among("ernas", 22, 1), new Among("ornas", 22, 1), + new Among("es", 21, 1), new Among("ades", 26, 1), + new Among("andes", 26, 1), new Among("ens", 21, 1), + new Among("arens", 29, 1), new Among("hetens", 29, 1), + new Among("erns", 21, 1), new Among("at", -1, 1), + new Among("andet", -1, 1), new Among("het", -1, 1), + new Among("ast", -1, 1) + ], + a_1 = [new Among("dd", -1, -1), + new Among("gd", -1, -1), new Among("nn", -1, -1), + new Among("dt", -1, -1), new Among("gt", -1, -1), + new Among("kt", -1, -1), new Among("tt", -1, -1) + ], + a_2 = [ + new Among("ig", -1, 1), new Among("lig", 0, 1), + new Among("els", -1, 1), new Among("fullt", -1, 3), + new Among("l\u00F6st", -1, 2) + ], + g_v = [17, 65, 16, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 32 + ], + g_s_ending = [119, 127, 149], + I_x, I_p1, sbp = new SnowballProgram(); + this.setCurrent = function(word) { + sbp.setCurrent(word); + }; + this.getCurrent = function() { + return sbp.getCurrent(); + }; + + function r_mark_regions() { + var v_1, c = sbp.cursor + 3; + I_p1 = sbp.limit; + if (0 <= c || c <= sbp.limit) { + I_x = c; + while (true) { + v_1 = sbp.cursor; + if (sbp.in_grouping(g_v, 97, 246)) { + sbp.cursor = v_1; + break; + } + sbp.cursor = v_1; + if (sbp.cursor >= sbp.limit) + return; + sbp.cursor++; + } + while (!sbp.out_grouping(g_v, 97, 246)) { + if (sbp.cursor >= sbp.limit) + return; + sbp.cursor++; + } + I_p1 = sbp.cursor; + if (I_p1 < I_x) + I_p1 = I_x; + } + } + + function r_main_suffix() { + var among_var, v_2 = sbp.limit_backward; + if (sbp.cursor >= I_p1) { + sbp.limit_backward = I_p1; + sbp.cursor = sbp.limit; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_0, 37); + sbp.limit_backward = v_2; + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_del(); + break; + case 2: + if (sbp.in_grouping_b(g_s_ending, 98, 121)) + sbp.slice_del(); + break; + } + } + } + } + + function r_consonant_pair() { + var v_1 = sbp.limit_backward; + if (sbp.cursor >= I_p1) { + sbp.limit_backward = I_p1; + sbp.cursor = sbp.limit; + if (sbp.find_among_b(a_1, 7)) { + sbp.cursor = sbp.limit; + sbp.ket = sbp.cursor; + if (sbp.cursor > sbp.limit_backward) { + sbp.bra = --sbp.cursor; + sbp.slice_del(); + } + } + sbp.limit_backward = v_1; + } + } + + function r_other_suffix() { + var among_var, v_2; + if (sbp.cursor >= I_p1) { + v_2 = sbp.limit_backward; + sbp.limit_backward = I_p1; + sbp.cursor = sbp.limit; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_2, 5); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_del(); + break; + case 2: + sbp.slice_from("l\u00F6s"); + break; + case 3: + sbp.slice_from("full"); + break; + } + } + sbp.limit_backward = v_2; + } + } + this.stem = function() { + var v_1 = sbp.cursor; + r_mark_regions(); + sbp.limit_backward = v_1; + sbp.cursor = sbp.limit; + r_main_suffix(); + sbp.cursor = sbp.limit; + r_consonant_pair(); + sbp.cursor = sbp.limit; + r_other_suffix(); + return true; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.sv.stemmer, 'stemmer-sv'); + + /* stop word filter function */ + lunr.sv.stopWordFilter = function(token) { + if (lunr.sv.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.sv.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.sv.stopWordFilter.stopWords.length = 115; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.sv.stopWordFilter.stopWords.elements = ' alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över'.split(' '); + + lunr.Pipeline.registerFunction(lunr.sv.stopWordFilter, 'stopWordFilter-sv'); + }; +})) \ No newline at end of file diff --git a/js/lunr.sv.min.js b/js/lunr.sv.min.js new file mode 100644 index 0000000..835f98b --- /dev/null +++ b/js/lunr.sv.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,d,n;r.sv=function(){this.pipeline.reset(),this.pipeline.add(r.sv.trimmer,r.sv.stopWordFilter,r.sv.stemmer)},r.sv.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.sv.trimmer=r.trimmerSupport.generateTrimmer(r.sv.wordCharacters),r.Pipeline.registerFunction(r.sv.trimmer,"trimmer-sv"),r.sv.stemmer=(e=r.stemmerSupport.Among,d=r.stemmerSupport.SnowballProgram,n=new function(){var n,t,i=[new e("a",-1,1),new e("arna",0,1),new e("erna",0,1),new e("heterna",2,1),new e("orna",0,1),new e("ad",-1,1),new e("e",-1,1),new e("ade",6,1),new e("ande",6,1),new e("arne",6,1),new e("are",6,1),new e("aste",6,1),new e("en",-1,1),new e("anden",12,1),new e("aren",12,1),new e("heten",12,1),new e("ern",-1,1),new e("ar",-1,1),new e("er",-1,1),new e("heter",18,1),new e("or",-1,1),new e("s",-1,2),new e("as",21,1),new e("arnas",22,1),new e("ernas",22,1),new e("ornas",22,1),new e("es",21,1),new e("ades",26,1),new e("andes",26,1),new e("ens",21,1),new e("arens",29,1),new e("hetens",29,1),new e("erns",21,1),new e("at",-1,1),new e("andet",-1,1),new e("het",-1,1),new e("ast",-1,1)],s=[new e("dd",-1,-1),new e("gd",-1,-1),new e("nn",-1,-1),new e("dt",-1,-1),new e("gt",-1,-1),new e("kt",-1,-1),new e("tt",-1,-1)],a=[new e("ig",-1,1),new e("lig",0,1),new e("els",-1,1),new e("fullt",-1,3),new e("löst",-1,2)],o=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],u=[119,127,149],l=new d;this.setCurrent=function(e){l.setCurrent(e)},this.getCurrent=function(){return l.getCurrent()},this.stem=function(){var e=l.cursor;!function(){var e,r=l.cursor+3;if(t=l.limit,0<=r||r<=l.limit){for(n=r;;){if(e=l.cursor,l.in_grouping(o,97,246)){l.cursor=e;break}if(l.cursor=e,l.cursor>=l.limit)return;l.cursor++}for(;!l.out_grouping(o,97,246);){if(l.cursor>=l.limit)return;l.cursor++}(t=l.cursor)=t&&(l.limit_backward=t,l.cursor=l.limit,l.ket=l.cursor,r=l.find_among_b(i,37),l.limit_backward=e,r))switch(l.bra=l.cursor,r){case 1:l.slice_del();break;case 2:l.in_grouping_b(u,98,121)&&l.slice_del()}if(l.cursor=l.limit,e=l.limit_backward,l.cursor>=t&&(l.limit_backward=t,l.cursor=l.limit,l.find_among_b(s,7)&&(l.cursor=l.limit,l.ket=l.cursor,l.cursor>l.limit_backward)&&(l.bra=--l.cursor,l.slice_del()),l.limit_backward=e),l.cursor=l.limit,l.cursor>=t){if(r=l.limit_backward,l.limit_backward=t,l.cursor=l.limit,l.ket=l.cursor,e=l.find_among_b(a,5))switch(l.bra=l.cursor,e){case 1:l.slice_del();break;case 2:l.slice_from("lös");break;case 3:l.slice_from("full")}l.limit_backward=r}return!0}},function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}),r.Pipeline.registerFunction(r.sv.stemmer,"stemmer-sv"),r.sv.stopWordFilter=function(e){if(-1===r.sv.stopWordFilter.stopWords.indexOf(e))return e},r.sv.stopWordFilter.stopWords=new r.SortedSet,r.sv.stopWordFilter.stopWords.length=115,r.sv.stopWordFilter.stopWords.elements=" alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över".split(" "),r.Pipeline.registerFunction(r.sv.stopWordFilter,"stopWordFilter-sv")}}); \ No newline at end of file diff --git a/js/lunr.tr.js b/js/lunr.tr.js new file mode 100644 index 0000000..1e5d8da --- /dev/null +++ b/js/lunr.tr.js @@ -0,0 +1,1070 @@ +/*! + * Lunr languages, `Turkish` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.tr = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.tr.trimmer, + lunr.tr.stopWordFilter, + lunr.tr.stemmer + ); + }; + + /* lunr trimmer function */ + lunr.tr.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; + lunr.tr.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.tr.wordCharacters); + + lunr.Pipeline.registerFunction(lunr.tr.trimmer, 'trimmer-tr'); + + /* lunr stemmer function */ + lunr.tr.stemmer = (function() { + /* create the wrapped stemmer object */ + var Among = lunr.stemmerSupport.Among, + SnowballProgram = lunr.stemmerSupport.SnowballProgram, + st = new function TurkishStemmer() { + var a_0 = [new Among("m", -1, -1), new Among("n", -1, -1), + new Among("miz", -1, -1), new Among("niz", -1, -1), + new Among("muz", -1, -1), new Among("nuz", -1, -1), + new Among("m\u00FCz", -1, -1), new Among("n\u00FCz", -1, -1), + new Among("m\u0131z", -1, -1), new Among("n\u0131z", -1, -1) + ], + a_1 = [ + new Among("leri", -1, -1), new Among("lar\u0131", -1, -1) + ], + a_2 = [ + new Among("ni", -1, -1), new Among("nu", -1, -1), + new Among("n\u00FC", -1, -1), new Among("n\u0131", -1, -1) + ], + a_3 = [ + new Among("in", -1, -1), new Among("un", -1, -1), + new Among("\u00FCn", -1, -1), new Among("\u0131n", -1, -1) + ], + a_4 = [ + new Among("a", -1, -1), new Among("e", -1, -1) + ], + a_5 = [ + new Among("na", -1, -1), new Among("ne", -1, -1) + ], + a_6 = [ + new Among("da", -1, -1), new Among("ta", -1, -1), + new Among("de", -1, -1), new Among("te", -1, -1) + ], + a_7 = [ + new Among("nda", -1, -1), new Among("nde", -1, -1) + ], + a_8 = [ + new Among("dan", -1, -1), new Among("tan", -1, -1), + new Among("den", -1, -1), new Among("ten", -1, -1) + ], + a_9 = [ + new Among("ndan", -1, -1), new Among("nden", -1, -1) + ], + a_10 = [ + new Among("la", -1, -1), new Among("le", -1, -1) + ], + a_11 = [ + new Among("ca", -1, -1), new Among("ce", -1, -1) + ], + a_12 = [ + new Among("im", -1, -1), new Among("um", -1, -1), + new Among("\u00FCm", -1, -1), new Among("\u0131m", -1, -1) + ], + a_13 = [ + new Among("sin", -1, -1), new Among("sun", -1, -1), + new Among("s\u00FCn", -1, -1), new Among("s\u0131n", -1, -1) + ], + a_14 = [ + new Among("iz", -1, -1), new Among("uz", -1, -1), + new Among("\u00FCz", -1, -1), new Among("\u0131z", -1, -1) + ], + a_15 = [ + new Among("siniz", -1, -1), new Among("sunuz", -1, -1), + new Among("s\u00FCn\u00FCz", -1, -1), + new Among("s\u0131n\u0131z", -1, -1) + ], + a_16 = [ + new Among("lar", -1, -1), new Among("ler", -1, -1) + ], + a_17 = [ + new Among("niz", -1, -1), new Among("nuz", -1, -1), + new Among("n\u00FCz", -1, -1), new Among("n\u0131z", -1, -1) + ], + a_18 = [ + new Among("dir", -1, -1), new Among("tir", -1, -1), + new Among("dur", -1, -1), new Among("tur", -1, -1), + new Among("d\u00FCr", -1, -1), new Among("t\u00FCr", -1, -1), + new Among("d\u0131r", -1, -1), new Among("t\u0131r", -1, -1) + ], + a_19 = [ + new Among("cas\u0131na", -1, -1), new Among("cesine", -1, -1) + ], + a_20 = [ + new Among("di", -1, -1), new Among("ti", -1, -1), + new Among("dik", -1, -1), new Among("tik", -1, -1), + new Among("duk", -1, -1), new Among("tuk", -1, -1), + new Among("d\u00FCk", -1, -1), new Among("t\u00FCk", -1, -1), + new Among("d\u0131k", -1, -1), new Among("t\u0131k", -1, -1), + new Among("dim", -1, -1), new Among("tim", -1, -1), + new Among("dum", -1, -1), new Among("tum", -1, -1), + new Among("d\u00FCm", -1, -1), new Among("t\u00FCm", -1, -1), + new Among("d\u0131m", -1, -1), new Among("t\u0131m", -1, -1), + new Among("din", -1, -1), new Among("tin", -1, -1), + new Among("dun", -1, -1), new Among("tun", -1, -1), + new Among("d\u00FCn", -1, -1), new Among("t\u00FCn", -1, -1), + new Among("d\u0131n", -1, -1), new Among("t\u0131n", -1, -1), + new Among("du", -1, -1), new Among("tu", -1, -1), + new Among("d\u00FC", -1, -1), new Among("t\u00FC", -1, -1), + new Among("d\u0131", -1, -1), new Among("t\u0131", -1, -1) + ], + a_21 = [ + new Among("sa", -1, -1), new Among("se", -1, -1), + new Among("sak", -1, -1), new Among("sek", -1, -1), + new Among("sam", -1, -1), new Among("sem", -1, -1), + new Among("san", -1, -1), new Among("sen", -1, -1) + ], + a_22 = [ + new Among("mi\u015F", -1, -1), new Among("mu\u015F", -1, -1), + new Among("m\u00FC\u015F", -1, -1), + new Among("m\u0131\u015F", -1, -1) + ], + a_23 = [new Among("b", -1, 1), + new Among("c", -1, 2), new Among("d", -1, 3), + new Among("\u011F", -1, 4) + ], + g_vowel = [17, 65, 16, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 8, 0, 0, 0, 0, 0, 0, 1 + ], + g_U = [ + 1, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 0, 1 + ], + g_vowel1 = [1, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 + ], + g_vowel2 = [17, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130 + ], + g_vowel3 = [1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1 + ], + g_vowel4 = [17], + g_vowel5 = [65], + g_vowel6 = [65], + B_c_s_n_s, I_strlen, g_habr = [ + ["a", g_vowel1, 97, 305], + ["e", g_vowel2, 101, 252], + ["\u0131", g_vowel3, 97, 305], + ["i", g_vowel4, 101, 105], + ["o", g_vowel5, 111, 117], + ["\u00F6", g_vowel6, 246, 252], + ["u", g_vowel5, 111, 117] + ], + sbp = new SnowballProgram(); + this.setCurrent = function(word) { + sbp.setCurrent(word); + }; + this.getCurrent = function() { + return sbp.getCurrent(); + }; + + function habr1(g_v, n1, n2) { + while (true) { + var v_1 = sbp.limit - sbp.cursor; + if (sbp.in_grouping_b(g_v, n1, n2)) { + sbp.cursor = sbp.limit - v_1; + break; + } + sbp.cursor = sbp.limit - v_1; + if (sbp.cursor <= sbp.limit_backward) + return false; + sbp.cursor--; + } + return true; + } + + function r_check_vowel_harmony() { + var v_1, v_2; + v_1 = sbp.limit - sbp.cursor; + habr1(g_vowel, 97, 305); + for (var i = 0; i < g_habr.length; i++) { + v_2 = sbp.limit - sbp.cursor; + var habr = g_habr[i]; + if (sbp.eq_s_b(1, habr[0]) && habr1(habr[1], habr[2], habr[3])) { + sbp.cursor = sbp.limit - v_1; + return true; + } + sbp.cursor = sbp.limit - v_2; + } + sbp.cursor = sbp.limit - v_2; + if (!sbp.eq_s_b(1, "\u00FC") || !habr1(g_vowel6, 246, 252)) + return false; + sbp.cursor = sbp.limit - v_1; + return true; + } + + function habr2(f1, f2) { + var v_1 = sbp.limit - sbp.cursor, + v_2; + if (f1()) { + sbp.cursor = sbp.limit - v_1; + if (sbp.cursor > sbp.limit_backward) { + sbp.cursor--; + v_2 = sbp.limit - sbp.cursor; + if (f2()) { + sbp.cursor = sbp.limit - v_2; + return true; + } + } + } + sbp.cursor = sbp.limit - v_1; + if (f1()) { + sbp.cursor = sbp.limit - v_1; + return false; + } + sbp.cursor = sbp.limit - v_1; + if (sbp.cursor <= sbp.limit_backward) + return false; + sbp.cursor--; + if (!f2()) + return false; + sbp.cursor = sbp.limit - v_1; + return true; + } + + function habr3(f1) { + return habr2(f1, function() { + return sbp.in_grouping_b(g_vowel, 97, 305); + }); + } + + function r_mark_suffix_with_optional_n_consonant() { + return habr3(function() { + return sbp.eq_s_b(1, "n"); + }); + } + + function r_mark_suffix_with_optional_s_consonant() { + return habr3(function() { + return sbp.eq_s_b(1, "s"); + }); + } + + function r_mark_suffix_with_optional_y_consonant() { + return habr3(function() { + return sbp.eq_s_b(1, "y"); + }); + } + + function r_mark_suffix_with_optional_U_vowel() { + return habr2(function() { + return sbp.in_grouping_b(g_U, 105, 305); + }, function() { + return sbp.out_grouping_b(g_vowel, 97, 305); + }); + } + + function r_mark_possessives() { + return sbp.find_among_b(a_0, 10) && r_mark_suffix_with_optional_U_vowel(); + } + + function r_mark_sU() { + return r_check_vowel_harmony() && sbp.in_grouping_b(g_U, 105, 305) && r_mark_suffix_with_optional_s_consonant(); + } + + function r_mark_lArI() { + return sbp.find_among_b(a_1, 2); + } + + function r_mark_yU() { + return r_check_vowel_harmony() && sbp.in_grouping_b(g_U, 105, 305) && r_mark_suffix_with_optional_y_consonant(); + } + + function r_mark_nU() { + return r_check_vowel_harmony() && sbp.find_among_b(a_2, 4); + } + + function r_mark_nUn() { + return r_check_vowel_harmony() && sbp.find_among_b(a_3, 4) && r_mark_suffix_with_optional_n_consonant(); + } + + function r_mark_yA() { + return r_check_vowel_harmony() && sbp.find_among_b(a_4, 2) && r_mark_suffix_with_optional_y_consonant(); + } + + function r_mark_nA() { + return r_check_vowel_harmony() && sbp.find_among_b(a_5, 2); + } + + function r_mark_DA() { + return r_check_vowel_harmony() && sbp.find_among_b(a_6, 4); + } + + function r_mark_ndA() { + return r_check_vowel_harmony() && sbp.find_among_b(a_7, 2); + } + + function r_mark_DAn() { + return r_check_vowel_harmony() && sbp.find_among_b(a_8, 4); + } + + function r_mark_ndAn() { + return r_check_vowel_harmony() && sbp.find_among_b(a_9, 2); + } + + function r_mark_ylA() { + return r_check_vowel_harmony() && sbp.find_among_b(a_10, 2) && r_mark_suffix_with_optional_y_consonant(); + } + + function r_mark_ki() { + return sbp.eq_s_b(2, "ki"); + } + + function r_mark_ncA() { + return r_check_vowel_harmony() && sbp.find_among_b(a_11, 2) && r_mark_suffix_with_optional_n_consonant(); + } + + function r_mark_yUm() { + return r_check_vowel_harmony() && sbp.find_among_b(a_12, 4) && r_mark_suffix_with_optional_y_consonant(); + } + + function r_mark_sUn() { + return r_check_vowel_harmony() && sbp.find_among_b(a_13, 4); + } + + function r_mark_yUz() { + return r_check_vowel_harmony() && sbp.find_among_b(a_14, 4) && r_mark_suffix_with_optional_y_consonant(); + } + + function r_mark_sUnUz() { + return sbp.find_among_b(a_15, 4); + } + + function r_mark_lAr() { + return r_check_vowel_harmony() && sbp.find_among_b(a_16, 2); + } + + function r_mark_nUz() { + return r_check_vowel_harmony() && sbp.find_among_b(a_17, 4); + } + + function r_mark_DUr() { + return r_check_vowel_harmony() && sbp.find_among_b(a_18, 8); + } + + function r_mark_cAsInA() { + return sbp.find_among_b(a_19, 2); + } + + function r_mark_yDU() { + return r_check_vowel_harmony() && sbp.find_among_b(a_20, 32) && r_mark_suffix_with_optional_y_consonant(); + } + + function r_mark_ysA() { + return sbp.find_among_b(a_21, 8) && r_mark_suffix_with_optional_y_consonant(); + } + + function r_mark_ymUs_() { + return r_check_vowel_harmony() && sbp.find_among_b(a_22, 4) && r_mark_suffix_with_optional_y_consonant(); + } + + function r_mark_yken() { + return sbp.eq_s_b(3, "ken") && r_mark_suffix_with_optional_y_consonant(); + } + + function habr4() { + var v_1 = sbp.limit - sbp.cursor; + if (!r_mark_ymUs_()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_yDU()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_ysA()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_yken()) + return true; + } + } + } + return false; + } + + function habr5() { + if (r_mark_cAsInA()) { + var v_1 = sbp.limit - sbp.cursor; + if (!r_mark_sUnUz()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_lAr()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_yUm()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_sUn()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_yUz()) + sbp.cursor = sbp.limit - v_1; + } + } + } + } + if (r_mark_ymUs_()) + return false; + } + return true; + } + + function habr6() { + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + var v_1 = sbp.limit - sbp.cursor; + sbp.ket = sbp.cursor; + if (!r_mark_DUr()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_yDU()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_ysA()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_ymUs_()) + sbp.cursor = sbp.limit - v_1; + } + } + } + B_c_s_n_s = false; + return false; + } + return true; + } + + function habr7() { + if (!r_mark_nUz()) + return true; + var v_1 = sbp.limit - sbp.cursor; + if (!r_mark_yDU()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_ysA()) + return true; + } + return false; + } + + function habr8() { + var v_1 = sbp.limit - sbp.cursor, + v_2; + if (!r_mark_sUnUz()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_yUz()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_sUn()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_yUm()) + return true; + } + } + } + sbp.bra = sbp.cursor; + sbp.slice_del(); + v_2 = sbp.limit - sbp.cursor; + sbp.ket = sbp.cursor; + if (!r_mark_ymUs_()) + sbp.cursor = sbp.limit - v_2; + return false; + } + + function r_stem_nominal_verb_suffixes() { + var v_1 = sbp.limit - sbp.cursor, + v_2; + sbp.ket = sbp.cursor; + B_c_s_n_s = true; + if (habr4()) { + sbp.cursor = sbp.limit - v_1; + if (habr5()) { + sbp.cursor = sbp.limit - v_1; + if (habr6()) { + sbp.cursor = sbp.limit - v_1; + if (habr7()) { + sbp.cursor = sbp.limit - v_1; + if (habr8()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_DUr()) + return; + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + v_2 = sbp.limit - sbp.cursor; + if (!r_mark_sUnUz()) { + sbp.cursor = sbp.limit - v_2; + if (!r_mark_lAr()) { + sbp.cursor = sbp.limit - v_2; + if (!r_mark_yUm()) { + sbp.cursor = sbp.limit - v_2; + if (!r_mark_sUn()) { + sbp.cursor = sbp.limit - v_2; + if (!r_mark_yUz()) + sbp.cursor = sbp.limit - v_2; + } + } + } + } + if (!r_mark_ymUs_()) + sbp.cursor = sbp.limit - v_2; + } + } + } + } + } + sbp.bra = sbp.cursor; + sbp.slice_del(); + } + + function r_stem_suffix_chain_before_ki() { + var v_1, v_2, v_3, v_4; + sbp.ket = sbp.cursor; + if (r_mark_ki()) { + v_1 = sbp.limit - sbp.cursor; + if (r_mark_DA()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + v_2 = sbp.limit - sbp.cursor; + sbp.ket = sbp.cursor; + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + r_stem_suffix_chain_before_ki(); + } else { + sbp.cursor = sbp.limit - v_2; + if (r_mark_possessives()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + r_stem_suffix_chain_before_ki(); + } + } + } + return true; + } + sbp.cursor = sbp.limit - v_1; + if (r_mark_nUn()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + v_3 = sbp.limit - sbp.cursor; + if (r_mark_lArI()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + } else { + sbp.cursor = sbp.limit - v_3; + sbp.ket = sbp.cursor; + if (!r_mark_possessives()) { + sbp.cursor = sbp.limit - v_3; + if (!r_mark_sU()) { + sbp.cursor = sbp.limit - v_3; + if (!r_stem_suffix_chain_before_ki()) + return true; + } + } + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + r_stem_suffix_chain_before_ki() + } + } + return true; + } + sbp.cursor = sbp.limit - v_1; + if (r_mark_ndA()) { + v_4 = sbp.limit - sbp.cursor; + if (r_mark_lArI()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + } else { + sbp.cursor = sbp.limit - v_4; + if (r_mark_sU()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + r_stem_suffix_chain_before_ki(); + } + } else { + sbp.cursor = sbp.limit - v_4; + if (!r_stem_suffix_chain_before_ki()) + return false; + } + } + return true; + } + } + return false; + } + + function habr9(v_1) { + sbp.ket = sbp.cursor; + if (!r_mark_ndA()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_nA()) + return false; + } + var v_2 = sbp.limit - sbp.cursor; + if (r_mark_lArI()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + } else { + sbp.cursor = sbp.limit - v_2; + if (r_mark_sU()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + r_stem_suffix_chain_before_ki(); + } + } else { + sbp.cursor = sbp.limit - v_2; + if (!r_stem_suffix_chain_before_ki()) + return false; + } + } + return true; + } + + function habr10(v_1) { + sbp.ket = sbp.cursor; + if (!r_mark_ndAn()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_nU()) + return false; + } + var v_2 = sbp.limit - sbp.cursor; + if (!r_mark_sU()) { + sbp.cursor = sbp.limit - v_2; + if (!r_mark_lArI()) + return false; + } + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + r_stem_suffix_chain_before_ki(); + } + return true; + } + + function habr11() { + var v_1 = sbp.limit - sbp.cursor, + v_2; + sbp.ket = sbp.cursor; + if (!r_mark_nUn()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_ylA()) + return false; + } + sbp.bra = sbp.cursor; + sbp.slice_del(); + v_2 = sbp.limit - sbp.cursor; + sbp.ket = sbp.cursor; + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + if (r_stem_suffix_chain_before_ki()) + return true; + } + sbp.cursor = sbp.limit - v_2; + sbp.ket = sbp.cursor; + if (!r_mark_possessives()) { + sbp.cursor = sbp.limit - v_2; + if (!r_mark_sU()) { + sbp.cursor = sbp.limit - v_2; + if (!r_stem_suffix_chain_before_ki()) + return true; + } + } + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + r_stem_suffix_chain_before_ki(); + } + return true; + } + + function habr12() { + var v_1 = sbp.limit - sbp.cursor, + v_2, v_3; + sbp.ket = sbp.cursor; + if (!r_mark_DA()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_yU()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_yA()) + return false; + } + } + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + v_2 = sbp.limit - sbp.cursor; + if (r_mark_possessives()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + v_3 = sbp.limit - sbp.cursor; + sbp.ket = sbp.cursor; + if (!r_mark_lAr()) + sbp.cursor = sbp.limit - v_3; + } else { + sbp.cursor = sbp.limit - v_2; + if (!r_mark_lAr()) + return true; + } + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + r_stem_suffix_chain_before_ki(); + return true; + } + + function r_stem_noun_suffixes() { + var v_1 = sbp.limit - sbp.cursor, + v_2, v_3; + sbp.ket = sbp.cursor; + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + r_stem_suffix_chain_before_ki(); + return; + } + sbp.cursor = sbp.limit - v_1; + sbp.ket = sbp.cursor; + if (r_mark_ncA()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + v_2 = sbp.limit - sbp.cursor; + sbp.ket = sbp.cursor; + if (r_mark_lArI()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + } else { + sbp.cursor = sbp.limit - v_2; + sbp.ket = sbp.cursor; + if (!r_mark_possessives()) { + sbp.cursor = sbp.limit - v_2; + if (!r_mark_sU()) { + sbp.cursor = sbp.limit - v_2; + sbp.ket = sbp.cursor; + if (!r_mark_lAr()) + return; + sbp.bra = sbp.cursor; + sbp.slice_del(); + if (!r_stem_suffix_chain_before_ki()) + return; + } + } + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + r_stem_suffix_chain_before_ki(); + } + } + return; + } + sbp.cursor = sbp.limit - v_1; + if (habr9(v_1)) + return; + sbp.cursor = sbp.limit - v_1; + if (habr10(v_1)) + return; + sbp.cursor = sbp.limit - v_1; + sbp.ket = sbp.cursor; + if (r_mark_DAn()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + v_3 = sbp.limit - sbp.cursor; + if (r_mark_possessives()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + r_stem_suffix_chain_before_ki(); + } + } else { + sbp.cursor = sbp.limit - v_3; + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + r_stem_suffix_chain_before_ki(); + } else { + sbp.cursor = sbp.limit - v_3; + r_stem_suffix_chain_before_ki(); + } + } + return; + } + sbp.cursor = sbp.limit - v_1; + if (habr11()) + return; + sbp.cursor = sbp.limit - v_1; + if (r_mark_lArI()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + return; + } + sbp.cursor = sbp.limit - v_1; + if (r_stem_suffix_chain_before_ki()) + return; + sbp.cursor = sbp.limit - v_1; + if (habr12()) + return; + sbp.cursor = sbp.limit - v_1; + sbp.ket = sbp.cursor; + if (!r_mark_possessives()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_sU()) + return; + } + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + r_stem_suffix_chain_before_ki(); + } + } + + function r_post_process_last_consonants() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_23, 4); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_from("p"); + break; + case 2: + sbp.slice_from("\u00E7"); + break; + case 3: + sbp.slice_from("t"); + break; + case 4: + sbp.slice_from("k"); + break; + } + } + } + + function habr13() { + while (true) { + var v_1 = sbp.limit - sbp.cursor; + if (sbp.in_grouping_b(g_vowel, 97, 305)) { + sbp.cursor = sbp.limit - v_1; + break; + } + sbp.cursor = sbp.limit - v_1; + if (sbp.cursor <= sbp.limit_backward) + return false; + sbp.cursor--; + } + return true; + } + + function habr14(v_1, c1, c2) { + sbp.cursor = sbp.limit - v_1; + if (habr13()) { + var v_2 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(1, c1)) { + sbp.cursor = sbp.limit - v_2; + if (!sbp.eq_s_b(1, c2)) + return true; + } + sbp.cursor = sbp.limit - v_1; + var c = sbp.cursor; + sbp.insert(sbp.cursor, sbp.cursor, c2); + sbp.cursor = c; + return false; + } + return true; + } + + function r_append_U_to_stems_ending_with_d_or_g() { + var v_1 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(1, "d")) { + sbp.cursor = sbp.limit - v_1; + if (!sbp.eq_s_b(1, "g")) + return; + } + if (habr14(v_1, "a", "\u0131")) + if (habr14(v_1, "e", "i")) + if (habr14(v_1, "o", "u")) + habr14(v_1, "\u00F6", "\u00FC") + } + + function r_more_than_one_syllable_word() { + var v_1 = sbp.cursor, + v_2 = 2, + v_3; + while (true) { + v_3 = sbp.cursor; + while (!sbp.in_grouping(g_vowel, 97, 305)) { + if (sbp.cursor >= sbp.limit) { + sbp.cursor = v_3; + if (v_2 > 0) + return false; + sbp.cursor = v_1; + return true; + } + sbp.cursor++; + } + v_2--; + } + } + + function habr15(v_1, n1, c1) { + while (!sbp.eq_s(n1, c1)) { + if (sbp.cursor >= sbp.limit) + return true; + sbp.cursor++; + } + I_strlen = n1; + if (I_strlen != sbp.limit) + return true; + sbp.cursor = v_1; + return false; + } + + function r_is_reserved_word() { + var v_1 = sbp.cursor; + if (habr15(v_1, 2, "ad")) { + sbp.cursor = v_1; + if (habr15(v_1, 5, "soyad")) + return false; + } + return true; + } + + function r_postlude() { + var v_1 = sbp.cursor; + if (r_is_reserved_word()) + return false; + sbp.limit_backward = v_1; + sbp.cursor = sbp.limit; + r_append_U_to_stems_ending_with_d_or_g(); + sbp.cursor = sbp.limit; + r_post_process_last_consonants(); + return true; + } + this.stem = function() { + if (r_more_than_one_syllable_word()) { + sbp.limit_backward = sbp.cursor; + sbp.cursor = sbp.limit; + r_stem_nominal_verb_suffixes(); + sbp.cursor = sbp.limit; + if (B_c_s_n_s) { + r_stem_noun_suffixes(); + sbp.cursor = sbp.limit_backward; + if (r_postlude()) + return true; + } + } + return false; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.tr.stemmer, 'stemmer-tr'); + + /* stop word filter function */ + lunr.tr.stopWordFilter = function(token) { + if (lunr.tr.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.tr.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.tr.stopWordFilter.stopWords.length = 210; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.tr.stopWordFilter.stopWords.elements = ' acaba altmış altı ama ancak arada aslında ayrıca bana bazı belki ben benden beni benim beri beş bile bin bir biri birkaç birkez birçok birşey birşeyi biz bizden bize bizi bizim bu buna bunda bundan bunlar bunları bunların bunu bunun burada böyle böylece da daha dahi de defa değil diye diğer doksan dokuz dolayı dolayısıyla dört edecek eden ederek edilecek ediliyor edilmesi ediyor elli en etmesi etti ettiği ettiğini eğer gibi göre halen hangi hatta hem henüz hep hepsi her herhangi herkesin hiç hiçbir iki ile ilgili ise itibaren itibariyle için işte kadar karşın katrilyon kendi kendilerine kendini kendisi kendisine kendisini kez ki kim kimden kime kimi kimse kırk milyar milyon mu mü mı nasıl ne neden nedenle nerde nerede nereye niye niçin o olan olarak oldu olduklarını olduğu olduğunu olmadı olmadığı olmak olması olmayan olmaz olsa olsun olup olur olursa oluyor on ona ondan onlar onlardan onları onların onu onun otuz oysa pek rağmen sadece sanki sekiz seksen sen senden seni senin siz sizden sizi sizin tarafından trilyon tüm var vardı ve veya ya yani yapacak yapmak yaptı yaptıkları yaptığı yaptığını yapılan yapılması yapıyor yedi yerine yetmiş yine yirmi yoksa yüz zaten çok çünkü öyle üzere üç şey şeyden şeyi şeyler şu şuna şunda şundan şunları şunu şöyle'.split(' '); + + lunr.Pipeline.registerFunction(lunr.tr.stopWordFilter, 'stopWordFilter-tr'); + }; +})) \ No newline at end of file diff --git a/js/lunr.tr.min.js b/js/lunr.tr.min.js new file mode 100644 index 0000000..54adb6d --- /dev/null +++ b/js/lunr.tr.min.js @@ -0,0 +1 @@ +!function(r,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(r.lunr)}(this,function(){return function(i){if(void 0===i)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===i.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var mr,dr,e;i.tr=function(){this.pipeline.reset(),this.pipeline.add(i.tr.trimmer,i.tr.stopWordFilter,i.tr.stemmer)},i.tr.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",i.tr.trimmer=i.trimmerSupport.generateTrimmer(i.tr.wordCharacters),i.Pipeline.registerFunction(i.tr.trimmer,"trimmer-tr"),i.tr.stemmer=(mr=i.stemmerSupport.Among,dr=i.stemmerSupport.SnowballProgram,e=new function(){var i,r=[new mr("m",-1,-1),new mr("n",-1,-1),new mr("miz",-1,-1),new mr("niz",-1,-1),new mr("muz",-1,-1),new mr("nuz",-1,-1),new mr("müz",-1,-1),new mr("nüz",-1,-1),new mr("mız",-1,-1),new mr("nız",-1,-1)],e=[new mr("leri",-1,-1),new mr("ları",-1,-1)],n=[new mr("ni",-1,-1),new mr("nu",-1,-1),new mr("nü",-1,-1),new mr("nı",-1,-1)],t=[new mr("in",-1,-1),new mr("un",-1,-1),new mr("ün",-1,-1),new mr("ın",-1,-1)],u=[new mr("a",-1,-1),new mr("e",-1,-1)],T=[new mr("na",-1,-1),new mr("ne",-1,-1)],Z=[new mr("da",-1,-1),new mr("ta",-1,-1),new mr("de",-1,-1),new mr("te",-1,-1)],B=[new mr("nda",-1,-1),new mr("nde",-1,-1)],D=[new mr("dan",-1,-1),new mr("tan",-1,-1),new mr("den",-1,-1),new mr("ten",-1,-1)],G=[new mr("ndan",-1,-1),new mr("nden",-1,-1)],H=[new mr("la",-1,-1),new mr("le",-1,-1)],I=[new mr("ca",-1,-1),new mr("ce",-1,-1)],J=[new mr("im",-1,-1),new mr("um",-1,-1),new mr("üm",-1,-1),new mr("ım",-1,-1)],K=[new mr("sin",-1,-1),new mr("sun",-1,-1),new mr("sün",-1,-1),new mr("sın",-1,-1)],M=[new mr("iz",-1,-1),new mr("uz",-1,-1),new mr("üz",-1,-1),new mr("ız",-1,-1)],N=[new mr("siniz",-1,-1),new mr("sunuz",-1,-1),new mr("sünüz",-1,-1),new mr("sınız",-1,-1)],Q=[new mr("lar",-1,-1),new mr("ler",-1,-1)],R=[new mr("niz",-1,-1),new mr("nuz",-1,-1),new mr("nüz",-1,-1),new mr("nız",-1,-1)],U=[new mr("dir",-1,-1),new mr("tir",-1,-1),new mr("dur",-1,-1),new mr("tur",-1,-1),new mr("dür",-1,-1),new mr("tür",-1,-1),new mr("dır",-1,-1),new mr("tır",-1,-1)],V=[new mr("casına",-1,-1),new mr("cesine",-1,-1)],X=[new mr("di",-1,-1),new mr("ti",-1,-1),new mr("dik",-1,-1),new mr("tik",-1,-1),new mr("duk",-1,-1),new mr("tuk",-1,-1),new mr("dük",-1,-1),new mr("tük",-1,-1),new mr("dık",-1,-1),new mr("tık",-1,-1),new mr("dim",-1,-1),new mr("tim",-1,-1),new mr("dum",-1,-1),new mr("tum",-1,-1),new mr("düm",-1,-1),new mr("tüm",-1,-1),new mr("dım",-1,-1),new mr("tım",-1,-1),new mr("din",-1,-1),new mr("tin",-1,-1),new mr("dun",-1,-1),new mr("tun",-1,-1),new mr("dün",-1,-1),new mr("tün",-1,-1),new mr("dın",-1,-1),new mr("tın",-1,-1),new mr("du",-1,-1),new mr("tu",-1,-1),new mr("dü",-1,-1),new mr("tü",-1,-1),new mr("dı",-1,-1),new mr("tı",-1,-1)],Y=[new mr("sa",-1,-1),new mr("se",-1,-1),new mr("sak",-1,-1),new mr("sek",-1,-1),new mr("sam",-1,-1),new mr("sem",-1,-1),new mr("san",-1,-1),new mr("sen",-1,-1)],$=[new mr("miş",-1,-1),new mr("muş",-1,-1),new mr("müş",-1,-1),new mr("mış",-1,-1)],rr=[new mr("b",-1,1),new mr("c",-1,2),new mr("d",-1,3),new mr("ğ",-1,4)],o=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,0,0,0,0,0,0,1],s=[1,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,1],c=[65],l=[65],a=[["a",[1,64,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],97,305],["e",[17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,130],101,252],["ı",[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],97,305],["i",[17],101,105],["o",c,111,117],["ö",l,246,252],["u",c,111,117]],m=new dr;function d(r,i,e){for(;;){var n=m.limit-m.cursor;if(m.in_grouping_b(r,i,e)){m.cursor=m.limit-n;break}if(m.cursor=m.limit-n,m.cursor<=m.limit_backward)return;m.cursor--}return 1}function f(){var r=m.limit-m.cursor;d(o,97,305);for(var i=0;im.limit_backward)&&(m.cursor--,e=m.limit-m.cursor,i()))m.cursor=m.limit-e;else{if(m.cursor=m.limit-n,r())return m.cursor=m.limit-n,!1;if(m.cursor=m.limit-n,m.cursor<=m.limit_backward)return!1;if(m.cursor--,!i())return!1;m.cursor=m.limit-n}return!0}function w(r){return b(r,function(){return m.in_grouping_b(o,97,305)})}function _(){return w(function(){return m.eq_s_b(1,"n")})}function k(){return w(function(){return m.eq_s_b(1,"y")})}function p(){return m.find_among_b(r,10)&&b(function(){return m.in_grouping_b(s,105,305)},function(){return m.out_grouping_b(o,97,305)})}function g(){return f()&&m.in_grouping_b(s,105,305)&&w(function(){return m.eq_s_b(1,"s")})}function y(){return m.find_among_b(e,2)}function z(){return f()&&m.find_among_b(t,4)&&_()}function h(){return f()&&m.find_among_b(Z,4)}function v(){return f()&&m.find_among_b(B,2)}function q(){return f()&&m.find_among_b(J,4)&&k()}function W(){return f()&&m.find_among_b(K,4)}function F(){return f()&&m.find_among_b(M,4)&&k()}function C(){return m.find_among_b(N,4)}function S(){return f()&&m.find_among_b(Q,2)}function P(){return f()&&m.find_among_b(U,8)}function L(){return f()&&m.find_among_b(X,32)&&k()}function x(){return m.find_among_b(Y,8)&&k()}function A(){return f()&&m.find_among_b($,4)&&k()}function ir(){var r=m.limit-m.cursor;return!(A()||(m.cursor=m.limit-r,L())||(m.cursor=m.limit-r,x())||(m.cursor=m.limit-r,m.eq_s_b(3,"ken")&&k()))}function er(){if(m.find_among_b(V,2)){var r=m.limit-m.cursor;if(C()||(m.cursor=m.limit-r,S())||(m.cursor=m.limit-r,q())||(m.cursor=m.limit-r,W())||(m.cursor=m.limit-r,F())||(m.cursor=m.limit-r),A())return}return 1}function nr(){var r;return!(f()&&m.find_among_b(R,4)&&(r=m.limit-m.cursor,L()||(m.cursor=m.limit-r,x())))}function tr(){var r=m.limit-m.cursor;if(m.ket=m.cursor,i=!0,ir()&&(m.cursor=m.limit-r,er())&&(m.cursor=m.limit-r,function(){var r;if(!S())return 1;m.bra=m.cursor,m.slice_del(),r=m.limit-m.cursor,m.ket=m.cursor,P()||(m.cursor=m.limit-r,L())||(m.cursor=m.limit-r,x())||(m.cursor=m.limit-r,A())||(m.cursor=m.limit-r),i=!1}())&&(m.cursor=m.limit-r,nr())&&(m.cursor=m.limit-r,function(){var r=m.limit-m.cursor;if(!(C()||(m.cursor=m.limit-r,F())||(m.cursor=m.limit-r,W())||(m.cursor=m.limit-r,q())))return 1;m.bra=m.cursor,m.slice_del(),r=m.limit-m.cursor,m.ket=m.cursor,A()||(m.cursor=m.limit-r)}())){if(m.cursor=m.limit-r,!P())return;m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,r=m.limit-m.cursor,C()||(m.cursor=m.limit-r,S())||(m.cursor=m.limit-r,q())||(m.cursor=m.limit-r,W())||(m.cursor=m.limit-r,F())||(m.cursor=m.limit-r),A()||(m.cursor=m.limit-r)}m.bra=m.cursor,m.slice_del()}function E(){var r,i;if(m.ket=m.cursor,m.eq_s_b(2,"ki")){if(r=m.limit-m.cursor,h())return m.bra=m.cursor,m.slice_del(),i=m.limit-m.cursor,m.ket=m.cursor,(S()||(m.cursor=m.limit-i,p()&&(m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,S())))&&(m.bra=m.cursor,m.slice_del(),E()),1;if(m.cursor=m.limit-r,z()){if(m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,i=m.limit-m.cursor,y())m.bra=m.cursor,m.slice_del();else{if(m.cursor=m.limit-i,m.ket=m.cursor,!p()&&(m.cursor=m.limit-i,!g())&&(m.cursor=m.limit-i,!E()))return 1;m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,S()&&(m.bra=m.cursor,m.slice_del(),E())}return 1}if(m.cursor=m.limit-r,v()){if(i=m.limit-m.cursor,y())m.bra=m.cursor,m.slice_del();else if(m.cursor=m.limit-i,g())m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,S()&&(m.bra=m.cursor,m.slice_del(),E());else if(m.cursor=m.limit-i,!E())return;return 1}}}function ur(r){if(m.ket=m.cursor,v()||(m.cursor=m.limit-r,f()&&m.find_among_b(T,2))){r=m.limit-m.cursor;if(y())m.bra=m.cursor,m.slice_del();else if(m.cursor=m.limit-r,g())m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,S()&&(m.bra=m.cursor,m.slice_del(),E());else if(m.cursor=m.limit-r,!E())return;return 1}}function or(r){if(m.ket=m.cursor,f()&&m.find_among_b(G,2)||(m.cursor=m.limit-r,f()&&m.find_among_b(n,4)))return r=m.limit-m.cursor,g()||(m.cursor=m.limit-r,y())?(m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,S()&&(m.bra=m.cursor,m.slice_del(),E()),1):void 0}function sr(){var r=m.limit-m.cursor;return m.ket=m.cursor,(z()||(m.cursor=m.limit-r,f()&&m.find_among_b(H,2)&&k()))&&(m.bra=m.cursor,m.slice_del(),r=m.limit-m.cursor,m.ket=m.cursor,S()&&(m.bra=m.cursor,m.slice_del(),E())||(m.cursor=m.limit-r,m.ket=m.cursor,(p()||(m.cursor=m.limit-r,g())||(m.cursor=m.limit-r,E()))&&(m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,S())&&(m.bra=m.cursor,m.slice_del(),E())),1)}function cr(){var r,i=m.limit-m.cursor;if(m.ket=m.cursor,h()||(m.cursor=m.limit-i,f()&&m.in_grouping_b(s,105,305)&&k())||(m.cursor=m.limit-i,f()&&m.find_among_b(u,2)&&k())){if(m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,i=m.limit-m.cursor,p())m.bra=m.cursor,m.slice_del(),r=m.limit-m.cursor,m.ket=m.cursor,S()||(m.cursor=m.limit-r);else if(m.cursor=m.limit-i,!S())return 1;return m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,E(),1}}function lr(){var r,i=m.limit-m.cursor;if(m.ket=m.cursor,S())m.bra=m.cursor,m.slice_del(),E();else if(m.cursor=m.limit-i,m.ket=m.cursor,f()&&m.find_among_b(I,2)&&_())if(m.bra=m.cursor,m.slice_del(),r=m.limit-m.cursor,m.ket=m.cursor,y())m.bra=m.cursor,m.slice_del();else{if(m.cursor=m.limit-r,m.ket=m.cursor,!p()&&(m.cursor=m.limit-r,!g())){if(m.cursor=m.limit-r,m.ket=m.cursor,!S())return;if(m.bra=m.cursor,m.slice_del(),!E())return}m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,S()&&(m.bra=m.cursor,m.slice_del(),E())}else m.cursor=m.limit-i,ur(i)||(m.cursor=m.limit-i,or(i))||(m.cursor=m.limit-i,m.ket=m.cursor,f()&&m.find_among_b(D,4)?(m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,r=m.limit-m.cursor,p()?(m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,S()&&(m.bra=m.cursor,m.slice_del(),E())):(m.cursor=m.limit-r,S()?(m.bra=m.cursor,m.slice_del()):m.cursor=m.limit-r,E())):(m.cursor=m.limit-i,sr()||(m.cursor=m.limit-i,y()?(m.bra=m.cursor,m.slice_del()):(m.cursor=m.limit-i,E()||(m.cursor=m.limit-i,cr())||(m.cursor=m.limit-i,m.ket=m.cursor,(p()||(m.cursor=m.limit-i,g()))&&(m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,S())&&(m.bra=m.cursor,m.slice_del(),E()))))))}function j(r,i,e){if(m.cursor=m.limit-r,!function(){for(;;){var r=m.limit-m.cursor;if(m.in_grouping_b(o,97,305)){m.cursor=m.limit-r;break}if(m.cursor=m.limit-r,m.cursor<=m.limit_backward)return;m.cursor--}return 1}())return 1;var n=m.limit-m.cursor;if(!m.eq_s_b(1,i)&&(m.cursor=m.limit-n,!m.eq_s_b(1,e)))return 1;m.cursor=m.limit-r;i=m.cursor;m.insert(m.cursor,m.cursor,e),m.cursor=i}function O(r,i,e){for(;!m.eq_s(i,e);){if(m.cursor>=m.limit)return 1;m.cursor++}if(i!=m.limit)return 1;m.cursor=r}function ar(){var r,i=m.cursor;if(O(r=m.cursor,2,"ad")&&O(m.cursor=r,5,"soyad")){if(m.limit_backward=i,m.cursor=m.limit,r=m.limit-m.cursor,(m.eq_s_b(1,"d")||(m.cursor=m.limit-r,m.eq_s_b(1,"g")))&&j(r,"a","ı")&&j(r,"e","i")&&j(r,"o","u")&&j(r,"ö","ü"),m.cursor=m.limit,m.ket=m.cursor,i=m.find_among_b(rr,4))switch(m.bra=m.cursor,i){case 1:m.slice_from("p");break;case 2:m.slice_from("ç");break;case 3:m.slice_from("t");break;case 4:m.slice_from("k")}return 1}}this.setCurrent=function(r){m.setCurrent(r)},this.getCurrent=function(){return m.getCurrent()},this.stem=function(){return!!(function(){for(var r,i=m.cursor,e=2;;){for(r=m.cursor;!m.in_grouping(o,97,305);){if(m.cursor>=m.limit)return m.cursor=r,!(0 1.0.0 + this.tokenizerFn = lunr.zh.tokenizer; + } + } + }; + + lunr.zh.tokenizer = function(obj) { + if (!arguments.length || obj == null || obj == undefined) return [] + if (Array.isArray(obj)) return obj.map(function(t) { + return isLunr2 ? new lunr.Token(t.toLowerCase()) : t.toLowerCase() + }) + + nodejiebaDictJson && nodejieba.load(nodejiebaDictJson) + + var str = obj.toString().trim().toLowerCase(); + var tokens = []; + + nodejieba.cut(str, true).forEach(function(seg) { + tokens = tokens.concat(seg.split(' ')) + }) + + tokens = tokens.filter(function(token) { + return !!token; + }); + + var fromIndex = 0 + + return tokens.map(function(token, index) { + if (isLunr2) { + var start = str.indexOf(token, fromIndex) + + var tokenMetadata = {} + tokenMetadata["position"] = [start, token.length] + tokenMetadata["index"] = index + + fromIndex = start + + return new lunr.Token(token, tokenMetadata); + } else { + return token + } + }); + } + + /* lunr trimmer function */ + lunr.zh.wordCharacters = "\\w\u4e00-\u9fa5"; + lunr.zh.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.zh.wordCharacters); + lunr.Pipeline.registerFunction(lunr.zh.trimmer, 'trimmer-zh'); + + /* lunr stemmer function */ + lunr.zh.stemmer = (function() { + + /* TODO Chinese stemmer */ + return function(word) { + return word; + } + })(); + lunr.Pipeline.registerFunction(lunr.zh.stemmer, 'stemmer-zh'); + + /* lunr stop word filter. see https://www.ranks.nl/stopwords/chinese-stopwords */ + lunr.generateStopWordFilter = function (stopWords) { + var words = stopWords.reduce(function (memo, stopWord) { + memo[stopWord] = stopWord + return memo + }, {}) + + return function (token) { + if (token && words[token.toString()] !== token.toString()) return token + } + } + + lunr.zh.stopWordFilter = lunr.generateStopWordFilter( + '的 一 不 在 人 有 是 为 以 于 上 他 而 后 之 来 及 了 因 下 可 到 由 这 与 也 此 但 并 个 其 已 无 小 我 们 起 最 再 今 去 好 只 又 或 很 亦 某 把 那 你 乃 它 吧 被 比 别 趁 当 从 到 得 打 凡 儿 尔 该 各 给 跟 和 何 还 即 几 既 看 据 距 靠 啦 了 另 么 每 们 嘛 拿 哪 那 您 凭 且 却 让 仍 啥 如 若 使 谁 虽 随 同 所 她 哇 嗡 往 哪 些 向 沿 哟 用 于 咱 则 怎 曾 至 致 着 诸 自'.split(' ')); + lunr.Pipeline.registerFunction(lunr.zh.stopWordFilter, 'stopWordFilter-zh'); + }; +})) diff --git a/js/lunr.zh.min.js b/js/lunr.zh.min.js new file mode 100644 index 0000000..6c2e84d --- /dev/null +++ b/js/lunr.zh.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r(require("nodejieba")):r()(e.lunr)}(this,function(n){return function(u,t){if(void 0===u)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===u.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var s="2"==u.version[0];u.zh=function(){this.pipeline.reset(),this.pipeline.add(u.zh.trimmer,u.zh.stopWordFilter,u.zh.stemmer),s?this.tokenizer=u.zh.tokenizer:(u.tokenizer&&(u.tokenizer=u.zh.tokenizer),this.tokenizerFn&&(this.tokenizerFn=u.zh.tokenizer))},u.zh.tokenizer=function(e){if(!arguments.length||null==e)return[];if(Array.isArray(e))return e.map(function(e){return s?new u.Token(e.toLowerCase()):e.toLowerCase()});t&&n.load(t);var i=e.toString().trim().toLowerCase(),r=[],o=(n.cut(i,!0).forEach(function(e){r=r.concat(e.split(" "))}),r=r.filter(function(e){return!!e}),0);return r.map(function(e,r){var t,n;return s?(t=i.indexOf(e,o),(n={}).position=[t,e.length],n.index=r,o=t,new u.Token(e,n)):e})},u.zh.wordCharacters="\\w一-龥",u.zh.trimmer=u.trimmerSupport.generateTrimmer(u.zh.wordCharacters),u.Pipeline.registerFunction(u.zh.trimmer,"trimmer-zh"),u.zh.stemmer=function(e){return e},u.Pipeline.registerFunction(u.zh.stemmer,"stemmer-zh"),u.generateStopWordFilter=function(e){var r=e.reduce(function(e,r){return e[r]=r,e},{});return function(e){if(e&&r[e.toString()]!==e.toString())return e}},u.zh.stopWordFilter=u.generateStopWordFilter("的 一 不 在 人 有 是 为 以 于 上 他 而 后 之 来 及 了 因 下 可 到 由 这 与 也 此 但 并 个 其 已 无 小 我 们 起 最 再 今 去 好 只 又 或 很 亦 某 把 那 你 乃 它 吧 被 比 别 趁 当 从 到 得 打 凡 儿 尔 该 各 给 跟 和 何 还 即 几 既 看 据 距 靠 啦 了 另 么 每 们 嘛 拿 哪 那 您 凭 且 却 让 仍 啥 如 若 使 谁 虽 随 同 所 她 哇 嗡 往 哪 些 向 沿 哟 用 于 咱 则 怎 曾 至 致 着 诸 自".split(" ")),u.Pipeline.registerFunction(u.zh.stopWordFilter,"stopWordFilter-zh")}}); \ No newline at end of file diff --git a/js/mathtex-script-type.min.js b/js/mathtex-script-type.min.js new file mode 100644 index 0000000..af02830 --- /dev/null +++ b/js/mathtex-script-type.min.js @@ -0,0 +1 @@ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("katex"));else if("function"==typeof define&&define.amd)define(["katex"],t);else{var r="object"==typeof exports?t(require("katex")):t(e.katex);for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}("undefined"!=typeof self?self:this,(function(e){return function(){"use strict";var t={771:function(t){t.exports=e}},r={};function n(e){var o=r[e];if(void 0!==o)return o.exports;var i=r[e]={exports:{}};return t[e](i,i.exports,n),i.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};var o,i,a,u={};return o=n(771),i=n.n(o),a=document.body.getElementsByTagName("script"),(a=Array.prototype.slice.call(a)).forEach((function(e){if(!e.type||!e.type.match(/math\/tex/i))return-1;var t=null!=e.type.match(/mode\s*=\s*display(;|\s|\n|$)/),r=document.createElement(t?"div":"span");r.setAttribute("class",t?"equation":"inline-equation");try{i().render(e.text,r,{displayMode:t})}catch(t){r.textContent=e.text}e.parentNode.replaceChild(r,e)})),u=u.default}()})); \ No newline at end of file diff --git a/js/pagefind.search.js b/js/pagefind.search.js new file mode 100644 index 0000000..6889f5f --- /dev/null +++ b/js/pagefind.search.js @@ -0,0 +1,256 @@ +window.onload = function () { + if (document.body.contains(document.goSearch)) { + var loaded = false; + document.goSearch.onsubmit = function () { return goSearchNow() }; + + /* + Source: + - https://github.com/nextapps-de/flexsearch#index-documents-field-search + - https://raw.githack.com/nextapps-de/flexsearch/master/demo/autocomplete.html + - http://elasticlunr.com/ + - https://pagefind.app/ + - https://github.com/getzola/zola/blob/master/docs/static/search.js + - https://github.com/aaranxu/adidoks/blob/main/static/js/search.js + */ + (function () { + //insertHere + + function inputFocus(e) { + + if (e.keyCode === 191//forward slash + && document.activeElement.tagName !== "INPUT" + && document.activeElement.tagName !== "TEXTAREA") { + e.preventDefault(); + searchinput.focus(); + suggestions.classList.remove('d-none'); + } + + if (e.keyCode === 27) {//escape + searchinput.blur(); + suggestions.classList.add('d-none'); + closeAllLists(); + } + + const focusableSuggestions = suggestions.querySelectorAll('a'); + if (suggestions.classList.contains('d-none') + || focusableSuggestions.length === 0) { + return; + } + const focusable = [...focusableSuggestions]; + const index = focusable.indexOf(document.activeElement); + + let nextIndex = 0; + + if (e.keyCode === 38) {//up arrow + e.preventDefault(); + nextIndex = index > 0 ? index - 1 : 0; + focusableSuggestions[nextIndex].focus(); + } + else if (e.keyCode === 40) {//down arrow + e.preventDefault(); + nextIndex = index + 1 < focusable.length ? index + 1 : index; + focusableSuggestions[nextIndex].focus(); + } + + } + + var suggestions = document.getElementById("suggestions"); + var searchinput = document.getElementById("searchinput"); + var lang = document.documentElement.getAttribute("lang"); + var langOnly = lang.substring(0, 2); + var baseUrl = document.querySelector("meta[name='base']").getAttribute("content"); + if (baseUrl.slice(-1) == "/") { + baseUrl = baseUrl.slice(0, -1); + } + options({//pagefind options + basePath: baseUrl + '/js/' + }); + var index; + searchinput.addEventListener('input', show_results, true); + suggestions.addEventListener('click', accept_suggestion, true); + document.addEventListener("keydown", inputFocus); + document.addEventListener("click", function (event) { suggestions.contains(event.target) || suggestions.classList.add("d-none") }); + document.getElementById('searchinput').onfocus = function() { + if (!loaded) { + lazyLoad(); + loaded = true; + } + document.getElementById('searchinput').onfocus = ''; + } + async function lazyLoad() { + await init(); + } + + // in page results when press enter or click search icon from search box + function closeSearchNow() { + const main = document.querySelector("main"); + main.innerHTML = window.main + } + + function goSearchNow() { + const main = document.querySelector("main"); + if (!window.main) { + window.main = main.innerHTML + }; + var results = document.getElementById("suggestions");// suggestions div generated by search box + + var ResultsClone = results.cloneNode(true);// make a clone of the results, so that we can alter it + ResultsClone.id = "results";// alter the id of our clone, so that we can apply different css style + + var headerDiv = document.createElement("div");// create a div element + + var headerContent = '

'.concat(document.getElementById("searchinput").value, "

");// header to use at top of results page + + headerDiv.innerHTML = headerContent;// document element div (headerDiv), set the inner contents to our header html (headerContent) + + ResultsClone.insertBefore(headerDiv, ResultsClone.firstChild);//insert our header div at the top of the page + + main.innerHTML = ResultsClone.outerHTML;//display ResultsClone.outerHTML as the page + results.innerHTML = "";// clear the suggestions div popup + document.getElementById("searchinput").value = "";// clear the search input box + document.body.contains(document.closeSearch) && (document.closeSearch.onsubmit = function () { closeSearchNow() }) + return false + } + + /* Close search suggestion popup list */ + function closeAllLists(elmnt) { + var suggestions = document.getElementById("suggestions"); + while (suggestions.firstChild) { + suggestions.removeChild(suggestions.firstChild); + } + } + + + + async function show_results() { + var value = this.value.trim(); + + var searchResults = await search(value); + + var entry, childs = suggestions.childNodes; + var i = 0, len = searchResults.results.length; + var items = value.split(/\s+/); + suggestions.classList.remove('d-none'); + + for (const result of searchResults.results) { + const data = await result.data(); + if (data.content !== '') { + entry = document.createElement('div'); + + entry.innerHTML = ''; + + a = entry.querySelector('a'), + t = entry.querySelector('span:first-child'), + d = entry.querySelector('span:nth-child(2)'); + a.href = data.url; + t.textContent = data.meta.title; + d.innerHTML = sanitise(data.excerpt); + + suggestions.appendChild(entry); + } + } + + while (childs.length > len) { + suggestions.removeChild(childs[i]) + } + } + + function sanitise(str) { + return str.replace(/\{\{.*?\}\}|—|<(?!\/?mark\b).*?>|<.*?>/g, ''); + } + + + function accept_suggestion() { + + while (suggestions.lastChild) { + + suggestions.removeChild(suggestions.lastChild); + } + + return false; + } + // Get the string bytes from binary + function getByteByBinary(binaryCode) { + // Binary system, starts with `0b` in ES6 + // Octal number system, starts with `0` in ES5 and starts with `0o` in ES6 + // Hexadecimal, starts with `0x` in both ES5 and ES6 + var byteLengthDatas = [0, 1, 2, 3, 4]; + var len = byteLengthDatas[Math.ceil(binaryCode.length / 8)]; + return len; + } + + // Get the string bytes from hexadecimal + function getByteByHex(hexCode) { + return getByteByBinary(parseInt(hexCode, 16).toString(2)); + } + // Get substring by bytes + // If using JavaScript inline substring method, it will return error codes + // Source: https://www.52pojie.cn/thread-1059814-1-1.html + function substringByByte(str, maxLength) { + var result = ""; + var flag = false; + var len = 0; + var length = 0; + var length2 = 0; + for (var i = 0; i < str.length; i++) { + var code = str.codePointAt(i).toString(16); + if (code.length > 4) { + i++; + if ((i + 1) < str.length) { + flag = str.codePointAt(i + 1).toString(16) == "200d"; + } + } + if (flag) { + len += getByteByHex(code); + if (i == str.length - 1) { + length += len; + if (length <= maxLength) { + result += str.substr(length2, i - length2 + 1); + } else { + break + } + } + } else { + if (len != 0) { + length += len; + length += getByteByHex(code); + if (length <= maxLength) { + result += str.substr(length2, i - length2 + 1); + length2 = i + 1; + } else { + break + } + len = 0; + continue; + } + length += getByteByHex(code); + if (length <= maxLength) { + if (code.length <= 4) { + result += str[i] + } else { + result += str[i - 1] + str[i] + } + length2 = i + 1; + } else { + break + } + } + } + return result; + } + /* Taken from mdbook + // The strategy is as follows: + // First, assign a value to each word in the document: + // Words that correspond to search terms (stemmer aware): 40 + // Normal words: 2 + // First word in a sentence: 8 + // Then use a sliding window with a constant number of words and count the + // sum of the values of the words within the window. Then use the window that got the + // maximum sum. If there are multiple maximas, then get the last one. + // Enclose the terms in . + */ + + document.goSearch.onsubmit = function () { return goSearchNow() }; + }()); + } +}; diff --git a/js/prestyle.js b/js/prestyle.js new file mode 100644 index 0000000..2516247 --- /dev/null +++ b/js/prestyle.js @@ -0,0 +1,4 @@ +const items = document.querySelectorAll('.preStyle'); +items.forEach(item => { + item.rel = 'stylesheet'; +}); diff --git a/js/search.js b/js/search.js new file mode 100644 index 0000000..689a83f --- /dev/null +++ b/js/search.js @@ -0,0 +1,366 @@ +window.onload = function() { + if (document.body.contains(document.goSearch)) { + document.goSearch.onsubmit = function() { return goSearchNow() }; + + /* + Source: + - https://github.com/nextapps-de/flexsearch#index-documents-field-search + - https://raw.githack.com/nextapps-de/flexsearch/master/demo/autocomplete.html + - http://elasticlunr.com/ + - https://github.com/getzola/zola/blob/master/docs/static/search.js + - https://github.com/aaranxu/adidoks/blob/main/static/js/search.js + */ + (function(){ + function inputFocus(e) { + + if (e.keyCode === 191//forward slash + && document.activeElement.tagName !== "INPUT" + && document.activeElement.tagName !== "TEXTAREA") { + e.preventDefault(); + searchinput.focus(); + suggestions.classList.remove('d-none'); + } + + if (e.keyCode === 27 ) {//escape + searchinput.blur(); + suggestions.classList.add('d-none'); + closeAllLists(); + } + + const focusableSuggestions= suggestions.querySelectorAll('a'); + if (suggestions.classList.contains('d-none') + || focusableSuggestions.length === 0) { + return; + } + const focusable= [...focusableSuggestions]; + const index = focusable.indexOf(document.activeElement); + + let nextIndex = 0; + + if (e.keyCode === 38) {//up arrow + e.preventDefault(); + nextIndex= index > 0 ? index-1 : 0; + focusableSuggestions[nextIndex].focus(); + } + else if (e.keyCode === 40) {//down arrow + e.preventDefault(); + nextIndex= index+1 < focusable.length ? index+1 : index; + focusableSuggestions[nextIndex].focus(); + } + + } + + var suggestions = document.getElementById("suggestions"); + var searchinput = document.getElementById("searchinput"); + document.addEventListener("keydown", inputFocus); + document.addEventListener("click", function(event) {suggestions.contains(event.target) || suggestions.classList.add("d-none")}); + + var lang = document.documentElement.getAttribute("lang"); + var langOnly = lang.substring(0, 2); + var baseUrl = document.querySelector("meta[name='base']").getAttribute("content"); + if (baseUrl.slice(-1) == "/") { + baseUrl = baseUrl.slice(0, -1); + } + + var index; + searchinput.addEventListener('input', show_results, true); + suggestions.addEventListener('click', accept_suggestion, true); + + + // in page results when press enter or click search icon from search box + function closeSearchNow() { + const main = document.querySelector("main"); + main.innerHTML = window.main + } + + function goSearchNow() { + const main = document.querySelector("main"); + if (!window.main) { + window.main = main.innerHTML + }; + var results = document.getElementById("suggestions");// suggestions div generated by search box + + var ResultsClone = results.cloneNode(true);// make a clone of the results, so that we can alter it + ResultsClone.id = "results";// alter the id of our clone, so that we can apply different css style + + var headerDiv = document.createElement("div");// create a div element + + var headerContent = '

'.concat(document.getElementById("searchinput").value, "

");// header to use at top of results page + + headerDiv.innerHTML = headerContent;// document element div (headerDiv), set the inner contents to our header html (headerContent) + + ResultsClone.insertBefore(headerDiv, ResultsClone.firstChild);//insert our header div at the top of the page + + main.innerHTML = ResultsClone.outerHTML;//display ResultsClone.outerHTML as the page + results.innerHTML = "";// clear the suggestions div popup + document.getElementById("searchinput").value = "";// clear the search input box + document.body.contains(document.closeSearch) && (document.closeSearch.onsubmit = function() { closeSearchNow() }) + return false + } + + /* Close search suggestion popup list */ + function closeAllLists(elmnt) { + var suggestions = document.getElementById("suggestions"); + while (suggestions.firstChild) { + suggestions.removeChild(suggestions.firstChild); + } + } + + + + async function show_results() { + var initIndex = async function () { + if (index === undefined) { + index = fetch(baseUrl + '/search_index.' + langOnly + '.json') + .then( + async function(response) { + return await elasticlunr.Index.load(await response.json()); + } + ); + } + let res = await index; + return res; + } + var value = this.value.trim(); + var options = { + bool: "OR", + fields: { + title: {boost: 2}, + body: {boost: 1}, + } + }; + //var results = index.search(value, options); + var results = (await initIndex()).search(value, options); + + var entry, childs = suggestions.childNodes; + var i = 0, len = results.length; + var items = value.split(/\s+/); + suggestions.classList.remove('d-none'); + + results.forEach(function(page) { + if (page.doc.body !== '') { + entry = document.createElement('div'); + + entry.innerHTML = ''; + + a = entry.querySelector('a'), + t = entry.querySelector('span:first-child'), + d = entry.querySelector('span:nth-child(2)'); + a.href = page.ref; + t.textContent = page.doc.title; + d.innerHTML = makeTeaser(page.doc.body, items); + + suggestions.appendChild(entry); + } + }); + + while(childs.length > len){ + suggestions.removeChild(childs[i]) + } + + } + + function accept_suggestion(){ + + while(suggestions.lastChild){ + + suggestions.removeChild(suggestions.lastChild); + } + + return false; + } + // Get the string bytes from binary + function getByteByBinary(binaryCode) { + // Binary system, starts with `0b` in ES6 + // Octal number system, starts with `0` in ES5 and starts with `0o` in ES6 + // Hexadecimal, starts with `0x` in both ES5 and ES6 + var byteLengthDatas = [0, 1, 2, 3, 4]; + var len = byteLengthDatas[Math.ceil(binaryCode.length / 8)]; + return len; + } + + // Get the string bytes from hexadecimal + function getByteByHex(hexCode) { + return getByteByBinary(parseInt(hexCode, 16).toString(2)); + } + // Get substring by bytes + // If using JavaScript inline substring method, it will return error codes + // Source: https://www.52pojie.cn/thread-1059814-1-1.html + function substringByByte(str, maxLength) { + var result = ""; + var flag = false; + var len = 0; + var length = 0; + var length2 = 0; + for (var i = 0; i < str.length; i++) { + var code = str.codePointAt(i).toString(16); + if (code.length > 4) { + i++; + if ((i + 1) < str.length) { + flag = str.codePointAt(i + 1).toString(16) == "200d"; + } + } + if (flag) { + len += getByteByHex(code); + if (i == str.length - 1) { + length += len; + if (length <= maxLength) { + result += str.substr(length2, i - length2 + 1); + } else { + break + } + } + } else { + if (len != 0) { + length += len; + length += getByteByHex(code); + if (length <= maxLength) { + result += str.substr(length2, i - length2 + 1); + length2 = i + 1; + } else { + break + } + len = 0; + continue; + } + length += getByteByHex(code); + if (length <= maxLength) { + if (code.length <= 4) { + result += str[i] + } else { + result += str[i - 1] + str[i] + } + length2 = i + 1; + } else { + break + } + } + } + return result; + } + /* Taken from mdbook + // The strategy is as follows: + // First, assign a value to each word in the document: + // Words that correspond to search terms (stemmer aware): 40 + // Normal words: 2 + // First word in a sentence: 8 + // Then use a sliding window with a constant number of words and count the + // sum of the values of the words within the window. Then use the window that got the + // maximum sum. If there are multiple maximas, then get the last one. + // Enclose the terms in . + */ + function makeTeaser(body, terms) { + var TERM_WEIGHT = 40; + var NORMAL_WORD_WEIGHT = 2; + var FIRST_WORD_WEIGHT = 8; + var TEASER_MAX_WORDS = 30; + + var stemmedTerms = terms.map(function (w) { + return elasticlunr.stemmer(w.toLowerCase()); + }); + var termFound = false; + var index = 0; + var weighted = []; // contains elements of ["word", weight, index_in_document] + + // split in sentences, then words + var sentences = body.toLowerCase().split(". "); + for (var i in sentences) { + var words = sentences[i].split(/[\s\n]/); + var value = FIRST_WORD_WEIGHT; + for (var j in words) { + + var word = words[j]; + + if (word.length > 0) { + for (var k in stemmedTerms) { + if (elasticlunr.stemmer(word).startsWith(stemmedTerms[k])) { + value = TERM_WEIGHT; + termFound = true; + } + } + weighted.push([word, value, index]); + value = NORMAL_WORD_WEIGHT; + } + + index += word.length; + index += 1; // ' ' or '.' if last word in sentence + } + + index += 1; // because we split at a two-char boundary '. ' + } + + if (weighted.length === 0) { + if (body.length !== undefined && body.length > TEASER_MAX_WORDS * 10) { + return body.substring(0, TEASER_MAX_WORDS * 10) + '...'; + } else { + return body; + } + } + + var windowWeights = []; + var windowSize = Math.min(weighted.length, TEASER_MAX_WORDS); + // We add a window with all the weights first + var curSum = 0; + for (var i = 0; i < windowSize; i++) { + curSum += weighted[i][1]; + } + windowWeights.push(curSum); + + for (var i = 0; i < weighted.length - windowSize; i++) { + curSum -= weighted[i][1]; + curSum += weighted[i + windowSize][1]; + windowWeights.push(curSum); + } + + // If we didn't find the term, just pick the first window + var maxSumIndex = 0; + if (termFound) { + var maxFound = 0; + // backwards + for (var i = windowWeights.length - 1; i >= 0; i--) { + if (windowWeights[i] > maxFound) { + maxFound = windowWeights[i]; + maxSumIndex = i; + } + } + } + + var teaser = []; + var startIndex = weighted[maxSumIndex][2]; + for (var i = maxSumIndex; i < maxSumIndex + windowSize; i++) { + var word = weighted[i]; + if (startIndex < word[2]) { + // missing text from index to start of `word` + teaser.push(body.substring(startIndex, word[2])); + startIndex = word[2]; + } + + // add around search terms + if (word[1] === TERM_WEIGHT) { + teaser.push(""); + } + + startIndex = word[2] + word[0].length; + // Check the string is ascii characters or not + var re = /^[\x00-\xff]+$/ + if (word[1] !== TERM_WEIGHT && word[0].length >= 12 && !re.test(word[0])) { + // If the string's length is too long, it maybe a Chinese/Japanese/Korean article + // if using substring method directly, it may occur error codes on emoji chars + var strBefore = body.substring(word[2], startIndex); + var strAfter = substringByByte(strBefore, 12); + teaser.push(strAfter); + } else { + teaser.push(body.substring(word[2], startIndex)); + } + + if (word[1] === TERM_WEIGHT) { + teaser.push(""); + } + } + teaser.push("…"); + return teaser.join(""); + } + document.goSearch.onsubmit = function() { return goSearchNow() }; + }()); + } +}; diff --git a/js/search_elasticlunr.min.js b/js/search_elasticlunr.min.js new file mode 100644 index 0000000..bd26660 --- /dev/null +++ b/js/search_elasticlunr.min.js @@ -0,0 +1 @@ +!function(){function g(e){var t=new g.Index;return t.pipeline.add(g.trimmer,g.stopWordFilter,g.stemmer),e&&e.call(t,t),t}var a,c,e,t,d,h,f,p,m,v,y,S,x,b,w,I,E,D,F,C,k,_,N,P,n;g.version="0.9.5",((lunr=g).utils={}).warn=(n=this,function(e){n.console}),g.utils.toString=function(e){return null==e?"":e.toString()},(g.EventEmitter=function(){this.events={}}).prototype.addListener=function(){var e=[].slice.call(arguments),t=e.pop();if("function"!=typeof t)throw new TypeError("last argument must be a function");e.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},g.EventEmitter.prototype.removeListener=function(e,t){this.hasHandler(e)&&-1!=(t=this.events[e].indexOf(t))&&(this.events[e].splice(t,1),0==this.events[e].length)&&delete this.events[e]},g.EventEmitter.prototype.emit=function(e){var t;this.hasHandler(e)&&(t=[].slice.call(arguments,1),this.events[e].forEach(function(e){e.apply(void 0,t)},this))},g.EventEmitter.prototype.hasHandler=function(e){return e in this.events},(g.tokenizer=function(e){var t,n;return arguments.length&&null!=e?Array.isArray(e)?(t=(t=e.filter(function(e){return null!=e})).map(function(e){return g.utils.toString(e).toLowerCase()}),n=[],t.forEach(function(e){e=e.split(g.tokenizer.seperator);n=n.concat(e)},this),n):e.toString().trim().toLowerCase().split(g.tokenizer.seperator):[]}).defaultSeperator=/[\s\-]+/,g.tokenizer.seperator=g.tokenizer.defaultSeperator,g.tokenizer.setSeperator=function(e){null!=e&&"object"==typeof e&&(g.tokenizer.seperator=e)},g.tokenizer.resetSeperator=function(){g.tokenizer.seperator=g.tokenizer.defaultSeperator},g.tokenizer.getSeperator=function(){return g.tokenizer.seperator},(g.Pipeline=function(){this._queue=[]}).registeredFunctions={},g.Pipeline.registerFunction=function(e,t){t in g.Pipeline.registeredFunctions&&g.utils.warn("Overwriting existing registered function: "+t),e.label=t,g.Pipeline.registeredFunctions[t]=e},g.Pipeline.getRegisteredFunction=function(e){return e in g.Pipeline.registeredFunctions!=1?null:g.Pipeline.registeredFunctions[e]},g.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||g.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},g.Pipeline.load=function(e){var n=new g.Pipeline;return e.forEach(function(e){var t=g.Pipeline.getRegisteredFunction(e);if(!t)throw Error("Cannot load un-registered function: "+e);n.add(t)}),n},g.Pipeline.prototype.add=function(){[].slice.call(arguments).forEach(function(e){g.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},g.Pipeline.prototype.after=function(e,t){g.Pipeline.warnIfFunctionNotRegistered(t);e=this._queue.indexOf(e);if(-1==e)throw Error("Cannot find existingFn");this._queue.splice(1+e,0,t)},g.Pipeline.prototype.before=function(e,t){g.Pipeline.warnIfFunctionNotRegistered(t);e=this._queue.indexOf(e);if(-1==e)throw Error("Cannot find existingFn");this._queue.splice(e,0,t)},g.Pipeline.prototype.remove=function(e){e=this._queue.indexOf(e);-1!=e&&this._queue.splice(e,1)},g.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,o=this._queue.length,i=0;i{if(null===e||"object"!=typeof e)return e;var t,n=e.constructor();for(t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);return n})(t):null},g.DocumentStore.prototype.getDoc=function(e){return!1===this.hasDoc(e)?null:this.docs[e]},g.DocumentStore.prototype.hasDoc=function(e){return e in this.docs},g.DocumentStore.prototype.removeDoc=function(e){this.hasDoc(e)&&(delete this.docs[e],delete this.docInfo[e],this.length--)},g.DocumentStore.prototype.addFieldLength=function(e,t,n){null!=e&&0!=this.hasDoc(e)&&(this.docInfo[e]||(this.docInfo[e]={}),this.docInfo[e][t]=n)},g.DocumentStore.prototype.updateFieldLength=function(e,t,n){null!=e&&0!=this.hasDoc(e)&&this.addFieldLength(e,t,n)},g.DocumentStore.prototype.getFieldLength=function(e,t){return null!=e&&e in this.docs&&t in this.docInfo[e]?this.docInfo[e][t]:0},g.DocumentStore.prototype.toJSON=function(){return{docs:this.docs,docInfo:this.docInfo,length:this.length,save:this._save}},a={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},c={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},d=/^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*/,h=/^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*[aeiouy][aeiou]*[^aeiou][^aeiouy]*/,f=/^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*([aeiouy][aeiou]*)?$/,p=/^([^aeiou][^aeiouy]*)?[aeiouy]/,m=/^(.+?)(ss|i)es$/,v=/^(.+?)([^s])s$/,y=/^(.+?)eed$/,S=/^(.+?)(ed|ing)$/,x=/.$/,b=/(at|bl|iz)$/,w=/([^aeiouylsz])\1$/,I=RegExp("^"+(t="[^aeiou][^aeiouy]*")+(e="[aeiouy]")+"[^aeiouwxy]$"),E=/^(.+?[^aeiou])y$/,D=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,F=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,C=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,k=/^(.+?)(s|t)(ion)$/,_=/^(.+?)e$/,N=/ll$/,P=RegExp("^"+t+e+"[^aeiouwxy]$"),g.Pipeline.registerFunction(g.stemmer=function(e){var t,n,o,i,r,s,u,l;return e.length<3||("y"==(n=e.substr(0,1))&&(e=n.toUpperCase()+e.substr(1)),u=v,(r=m).test(e)?e=e.replace(r,"$1$2"):u.test(e)&&(e=e.replace(u,"$1$2")),u=S,(r=y).test(e)?(l=r.exec(e),(r=d).test(l[1])&&(e=e.replace(r=x,""))):u.test(e)&&(s=(l=u.exec(e))[1],(u=p).test(s))&&(e=s,o=w,i=I,(u=b).test(e)?e+="e":o.test(e)?e=e.replace(r=x,""):i.test(e)&&(e+="e")),(r=E).test(e)&&(e=(s=(l=r.exec(e))[1])+"i"),(r=D).test(e)&&(s=(l=r.exec(e))[1],t=l[2],(r=d).test(s))&&(e=s+a[t]),(r=F).test(e)&&(s=(l=r.exec(e))[1],t=l[2],(r=d).test(s))&&(e=s+c[t]),u=k,(r=C).test(e)?(s=(l=r.exec(e))[1],(r=h).test(s)&&(e=s)):u.test(e)&&(s=(l=u.exec(e))[1]+l[2],(u=h).test(s))&&(e=s),(r=_).test(e)&&(s=(l=r.exec(e))[1],u=f,o=P,(r=h).test(s)||u.test(s)&&!o.test(s))&&(e=s),u=h,(r=N).test(e)&&u.test(e)&&(e=e.replace(r=x,"")),"y"==n&&(e=n.toLowerCase()+e.substr(1))),e},"stemmer"),g.stopWordFilter=function(e){return e&&!0!==g.stopWordFilter.stopWords[e]?e:void 0},g.clearStopWords=function(){g.stopWordFilter.stopWords={}},g.addStopWords=function(e){null!=e&&!1!==Array.isArray(e)&&e.forEach(function(e){g.stopWordFilter.stopWords[e]=!0},this)},g.resetStopWords=function(){g.stopWordFilter.stopWords=g.defaultStopWords},g.stopWordFilter.stopWords=g.defaultStopWords={"":!0,a:!0,able:!0,about:!0,across:!0,after:!0,all:!0,almost:!0,also:!0,am:!0,among:!0,an:!0,and:!0,any:!0,are:!0,as:!0,at:!0,be:!0,because:!0,been:!0,but:!0,by:!0,can:!0,cannot:!0,could:!0,dear:!0,did:!0,do:!0,does:!0,either:!0,else:!0,ever:!0,every:!0,for:!0,from:!0,get:!0,got:!0,had:!0,has:!0,have:!0,he:!0,her:!0,hers:!0,him:!0,his:!0,how:!0,however:!0,i:!0,if:!0,in:!0,into:!0,is:!0,it:!0,its:!0,just:!0,least:!0,let:!0,like:!0,likely:!0,may:!0,me:!0,might:!0,most:!0,must:!0,my:!0,neither:!0,no:!0,nor:!0,not:!0,of:!0,off:!0,often:!0,on:!0,only:!0,or:!0,other:!0,our:!0,own:!0,rather:!0,said:!0,say:!0,says:!0,she:!0,should:!0,since:!0,so:!0,some:!0,than:!0,that:!0,the:!0,their:!0,them:!0,then:!0,there:!0,these:!0,they:!0,this:!0,tis:!0,to:!0,too:!0,twas:!0,us:!0,wants:!0,was:!0,we:!0,were:!0,what:!0,when:!0,where:!0,which:!0,while:!0,who:!0,whom:!0,why:!0,will:!0,with:!0,would:!0,yet:!0,you:!0,your:!0},g.Pipeline.registerFunction(g.stopWordFilter,"stopWordFilter"),g.Pipeline.registerFunction(g.trimmer=function(e){if(null==e)throw Error("token should not be undefined");return e.replace(/^\W+/,"").replace(/\W+$/,"")},"trimmer"),(g.InvertedIndex=function(){this.root={docs:{},df:0}}).load=function(e){var t=new this;return t.root=e.root,t},g.InvertedIndex.prototype.addToken=function(e,t,n){for(var n=n||this.root,o=0;o<=e.length-1;){var i=e[o];i in n||(n[i]={docs:{},df:0}),o+=1,n=n[i]}var r=t.ref;n.docs[r]?n.docs[r]={tf:t.tf}:(n.docs[r]={tf:t.tf},n.df+=1)},g.InvertedIndex.prototype.hasToken=function(e){if(!e)return!1;for(var t=this.root,n=0;n=n&&r-1>=o;)s[n]!==u[o]?s[n]u[o]&&o++:(t.add(s[n]),n++,o++);return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){for(var t,e=this.length

'.concat(document.getElementById("searchinput").value,"

");return o.innerHTML=i,n.insertBefore(o,n.firstChild),e.innerHTML=n.outerHTML,t.innerHTML="",document.getElementById("searchinput").value="",document.body.contains(document.closeSearch)&&(document.closeSearch.onsubmit=function(){document.querySelector("main").innerHTML=window.main}),!1}function b(e){return[0,1,2,3,4][Math.ceil(parseInt(e,16).toString(2).length/8)]}var u,r,l,c,h;document.body.contains(document.goSearch)&&(document.goSearch.onsubmit=function(){return goSearchNow()},u=document.getElementById("suggestions"),r=document.getElementById("searchinput"),document.addEventListener("keydown",function(t){if(191===t.keyCode&&"INPUT"!==document.activeElement.tagName&&"TEXTAREA"!==document.activeElement.tagName&&(t.preventDefault(),r.focus(),u.classList.remove("d-none")),27===t.keyCode){r.blur(),u.classList.add("d-none");for(var e=document.getElementById("suggestions");e.firstChild;)e.removeChild(e.firstChild)}var n=u.querySelectorAll("a");if(!u.classList.contains("d-none")&&0!==n.length){var o=[...n],i=o.indexOf(document.activeElement);let e=0;38===t.keyCode?(t.preventDefault(),n[e=0",a=n.querySelector("a"),t=n.querySelector("span:first-child"),d=n.querySelector("span:nth-child(2)"),a.href=e.ref,t.textContent=e.doc.title,d.innerHTML=((e,t)=>{var n=t.map(function(e){return elasticlunr.stemmer(e.toLowerCase())}),o=!1,i=0,r=[],s=e.toLowerCase().split(". ");for(p in s){var u,l=s[p].split(/[\s\n]/),a=8;for(u in l){if(0<(v=l[u]).length){for(var c in n)elasticlunr.stemmer(v).startsWith(n[c])&&(a=40,o=!0);r.push([v,a,i]),a=2}i=i+v.length+1}i+=1}if(0===r.length)return void 0!==e.length&&300"),x=v[2]+v[0].length;40===v[1]||v[0].length<12||/^[\x00-\xff]+$/.test(v[0])?S.push(e.substring(v[2],x)):(y=((e,t)=>{for(var n="",o=!1,i=0,r=0,s=0,u=0;u")}return S.push("…"),S.join("")})(e.doc.body,s),u.appendChild(n))});i.length>r;)u.removeChild(i[0])},!0),u.addEventListener("click",function(){for(;u.lastChild;)u.removeChild(u.lastChild);return!1},!0),document.goSearch.onsubmit=e)}; \ No newline at end of file diff --git a/js/search_tinysearch.min.js b/js/search_tinysearch.min.js new file mode 100644 index 0000000..3ed4113 --- /dev/null +++ b/js/search_tinysearch.min.js @@ -0,0 +1 @@ +window.onload=function(){if(document.body.contains(document.goSearch)){document.goSearch.onsubmit=function(){return goSearchNow()};{function n(){var e=document.querySelector("main"),n=(window.main||(window.main=e.innerHTML),document.getElementById("suggestions")),t=n.cloneNode(!0),o=(t.id="results",document.createElement("div")),r='

'.concat(document.getElementById("searchinput").value,"

");return o.innerHTML=r,t.insertBefore(o,t.firstChild),e.innerHTML=t.outerHTML,n.innerHTML="",document.getElementById("searchinput").value="",document.body.contains(document.closeSearch)&&(document.closeSearch.onsubmit=function(){document.querySelector("main").innerHTML=window.main}),!1}function v(){for(var e=document.getElementById("suggestions");e.firstChild;)e.removeChild(e.firstChild)}function w(){return e=null!==e&&e.buffer===f.memory.buffer?e:new Uint8Array(f.memory.buffer)}async function o(e){var n=document.querySelector("meta[name='base']").getAttribute("content"),n=("/"==n.slice(-1)&&(n=n.slice(0,-1)),void 0===e&&(e=new URL(n+"/tinysearch_engine_bg.wasm")),{wbg:{}}),{instance:e,module:n}=(n.wbg.__wbindgen_json_parse=function(e,n){return e=JSON.parse((e=e,n=n,t.decode(w().subarray(e,e+n)))),h===g.length&&g.push(g.length+1),n=h,h=g[n],g[n]=e,n},await(async(e,n)=>{if("function"==typeof Response&&e instanceof Response){if("function"==typeof WebAssembly.instantiateStreaming)try{return await WebAssembly.instantiateStreaming(e,n)}catch(n){if("application/wasm"==e.headers.get("Content-Type"))throw n}var t=await e.arrayBuffer();return WebAssembly.instantiate(t,n)}return(t=await WebAssembly.instantiate(e,n))instanceof WebAssembly.Instance?{instance:t,module:e}:t})(await(e="string"==typeof e||"function"==typeof Request&&e instanceof Request||"function"==typeof URL&&e instanceof URL?fetch(e):e),n));return f=e.exports,o.__wbindgen_wasm_module=n,f}var a=document.getElementById("searchinput"),r=(document.addEventListener("keydown",function(n){191===n.keyCode&&"INPUT"!==document.activeElement.tagName&&"TEXTAREA"!==document.activeElement.tagName&&(n.preventDefault(),a.focus(),suggestions.classList.remove("d-none")),27===n.keyCode&&(a.blur(),suggestions.classList.add("d-none"),v());var t=suggestions.querySelectorAll("a");if(!suggestions.classList.contains("d-none")&&0!==t.length){var o=[...t],r=o.indexOf(document.activeElement);let e=0;38===n.keyCode?(n.preventDefault(),t[e=0{var e=document.querySelector("meta[name='base']").getAttribute("content");await o((e="/"==e.slice(-1)?e.slice(0,-1):e)+"/tinysearch_engine_bg.wasm")})(),r=!0),document.getElementById("searchinput").onfocus=""};let f,t=(document.getElementById("searchinput").addEventListener("input",function(e){var n=this.value;if(v(),!n)return!1;for(var t,o,r,a=document.getElementById("suggestions"),i=(o=99,t=((t,o,n)=>{if(void 0===n){let e=b.encode(t),n=o(e.length);return w().subarray(n,n+e.length).set(e),y=e.length,n}let r=t.length,a=o(r),i=w(),s=0;for(;s{var n=(e=>g[e])(e);return e<36||(g[e]=h,h=e),n})(f.search(t,r,o))),s=0;s",c=d.querySelector("a"),u=d.querySelector("span:first-child"),l=d.querySelector("span:nth-child(2)"),c.href=m[1]+"?q="+encodeURIComponent(n),u.innerHTML=m[0],l.innerHTML=m[2].replace(RegExp("(^|)("+n+")(|$)","ig"),"$1$2$3"),a.appendChild(d)}}),new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0})),e=(t.decode(),null),g=Array(32).fill(void 0),h=(g.push(void 0,null,!0,!1),g.length),y=0,b=new TextEncoder("utf-8"),p="function"==typeof b.encodeInto?function(e,n){return b.encodeInto(e,n)}:function(e,n){var t=b.encode(e);return n.set(t),{read:e.length,written:t.length}};document.goSearch.onsubmit=n}}}; \ No newline at end of file diff --git a/js/searchjava.js b/js/searchjava.js new file mode 100644 index 0000000..46157b2 --- /dev/null +++ b/js/searchjava.js @@ -0,0 +1,354 @@ +window.onload = function() { + if (document.body.contains(document.goSearch)) { + document.goSearch.onsubmit = function() { return goSearchNow() }; + + /* + Source: + - https://github.com/nextapps-de/flexsearch#index-documents-field-search + - https://raw.githack.com/nextapps-de/flexsearch/master/demo/autocomplete.html + - http://elasticlunr.com/ + - https://github.com/getzola/zola/blob/master/docs/static/search.js + - https://github.com/aaranxu/adidoks/blob/main/static/js/search.js + */ + (function(){ + function inputFocus(e) { + + if (e.keyCode === 191//forward slash + && document.activeElement.tagName !== "INPUT" + && document.activeElement.tagName !== "TEXTAREA") { + e.preventDefault(); + searchinput.focus(); + suggestions.classList.remove('d-none'); + } + + if (e.keyCode === 27 ) {//escape + searchinput.blur(); + suggestions.classList.add('d-none'); + closeAllLists(); + } + + const focusableSuggestions= suggestions.querySelectorAll('a'); + if (suggestions.classList.contains('d-none') + || focusableSuggestions.length === 0) { + return; + } + const focusable= [...focusableSuggestions]; + const index = focusable.indexOf(document.activeElement); + + let nextIndex = 0; + + if (e.keyCode === 38) {//up arrow + e.preventDefault(); + nextIndex= index > 0 ? index-1 : 0; + focusableSuggestions[nextIndex].focus(); + } + else if (e.keyCode === 40) {//down arrow + e.preventDefault(); + nextIndex= index+1 < focusable.length ? index+1 : index; + focusableSuggestions[nextIndex].focus(); + } + + } + + var suggestions = document.getElementById("suggestions"); + var searchinput = document.getElementById("searchinput"); + document.addEventListener("keydown", inputFocus); + document.addEventListener("click", function(event) {suggestions.contains(event.target) || suggestions.classList.add("d-none")}); + + var lang = document.documentElement.getAttribute("lang"); + var langOnly = lang.substring(0, 2); + var baseUrl = document.querySelector("meta[name='base']").getAttribute("content"); + if (baseUrl.slice(-1) == "/") { + baseUrl = baseUrl.slice(0, -1); + } + + var index; + searchinput.addEventListener('input', show_results, true); + suggestions.addEventListener('click', accept_suggestion, true); + + + // in page results when press enter or click search icon from search box + function closeSearchNow() { + const main = document.querySelector("main"); + main.innerHTML = window.main + } + + function goSearchNow() { + const main = document.querySelector("main"); + if (!window.main) { + window.main = main.innerHTML + }; + var results = document.getElementById("suggestions");// suggestions div generated by search box + + var ResultsClone = results.cloneNode(true);// make a clone of the results, so that we can alter it + ResultsClone.id = "results";// alter the id of our clone, so that we can apply different css style + + var headerDiv = document.createElement("div");// create a div element + + var headerContent = '

'.concat(document.getElementById("searchinput").value, "

");// header to use at top of results page + + headerDiv.innerHTML = headerContent;// document element div (headerDiv), set the inner contents to our header html (headerContent) + + ResultsClone.insertBefore(headerDiv, ResultsClone.firstChild);//insert our header div at the top of the page + + main.innerHTML = ResultsClone.outerHTML;//display ResultsClone.outerHTML as the page + results.innerHTML = "";// clear the suggestions div popup + document.getElementById("searchinput").value = "";// clear the search input box + document.body.contains(document.closeSearch) && (document.closeSearch.onsubmit = function() { closeSearchNow() }) + return false + } + + /* Close search suggestion popup list */ + function closeAllLists(elmnt) { + var suggestions = document.getElementById("suggestions"); + while (suggestions.firstChild) { + suggestions.removeChild(suggestions.firstChild); + } + } + + + var index = elasticlunr.Index.load(window.searchIndex); + + async function show_results() { + var value = this.value.trim(); + var options = { + bool: "OR", + fields: { + title: {boost: 2}, + body: {boost: 1}, + } + }; + var results = index.search(value, options); + + var entry, childs = suggestions.childNodes; + var i = 0, len = results.length; + var items = value.split(/\s+/); + suggestions.classList.remove('d-none'); + + results.forEach(function(page) { + if (page.doc.body !== '') { + entry = document.createElement('div'); + + entry.innerHTML = ''; + + a = entry.querySelector('a'), + t = entry.querySelector('span:first-child'), + d = entry.querySelector('span:nth-child(2)'); + a.href = page.ref; + t.textContent = page.doc.title; + d.innerHTML = makeTeaser(page.doc.body, items); + + suggestions.appendChild(entry); + } + }); + + while(childs.length > len){ + suggestions.removeChild(childs[i]) + } + + } + + function accept_suggestion(){ + + while(suggestions.lastChild){ + + suggestions.removeChild(suggestions.lastChild); + } + + return false; + } + // Get the string bytes from binary + function getByteByBinary(binaryCode) { + // Binary system, starts with `0b` in ES6 + // Octal number system, starts with `0` in ES5 and starts with `0o` in ES6 + // Hexadecimal, starts with `0x` in both ES5 and ES6 + var byteLengthDatas = [0, 1, 2, 3, 4]; + var len = byteLengthDatas[Math.ceil(binaryCode.length / 8)]; + return len; + } + + // Get the string bytes from hexadecimal + function getByteByHex(hexCode) { + return getByteByBinary(parseInt(hexCode, 16).toString(2)); + } + // Get substring by bytes + // If using JavaScript inline substring method, it will return error codes + // Source: https://www.52pojie.cn/thread-1059814-1-1.html + function substringByByte(str, maxLength) { + var result = ""; + var flag = false; + var len = 0; + var length = 0; + var length2 = 0; + for (var i = 0; i < str.length; i++) { + var code = str.codePointAt(i).toString(16); + if (code.length > 4) { + i++; + if ((i + 1) < str.length) { + flag = str.codePointAt(i + 1).toString(16) == "200d"; + } + } + if (flag) { + len += getByteByHex(code); + if (i == str.length - 1) { + length += len; + if (length <= maxLength) { + result += str.substr(length2, i - length2 + 1); + } else { + break + } + } + } else { + if (len != 0) { + length += len; + length += getByteByHex(code); + if (length <= maxLength) { + result += str.substr(length2, i - length2 + 1); + length2 = i + 1; + } else { + break + } + len = 0; + continue; + } + length += getByteByHex(code); + if (length <= maxLength) { + if (code.length <= 4) { + result += str[i] + } else { + result += str[i - 1] + str[i] + } + length2 = i + 1; + } else { + break + } + } + } + return result; + } + /* Taken from mdbook + // The strategy is as follows: + // First, assign a value to each word in the document: + // Words that correspond to search terms (stemmer aware): 40 + // Normal words: 2 + // First word in a sentence: 8 + // Then use a sliding window with a constant number of words and count the + // sum of the values of the words within the window. Then use the window that got the + // maximum sum. If there are multiple maximas, then get the last one. + // Enclose the terms in . + */ + function makeTeaser(body, terms) { + var TERM_WEIGHT = 40; + var NORMAL_WORD_WEIGHT = 2; + var FIRST_WORD_WEIGHT = 8; + var TEASER_MAX_WORDS = 30; + + var stemmedTerms = terms.map(function (w) { + return elasticlunr.stemmer(w.toLowerCase()); + }); + var termFound = false; + var index = 0; + var weighted = []; // contains elements of ["word", weight, index_in_document] + + // split in sentences, then words + var sentences = body.toLowerCase().split(". "); + for (var i in sentences) { + var words = sentences[i].split(/[\s\n]/); + var value = FIRST_WORD_WEIGHT; + for (var j in words) { + + var word = words[j]; + + if (word.length > 0) { + for (var k in stemmedTerms) { + if (elasticlunr.stemmer(word).startsWith(stemmedTerms[k])) { + value = TERM_WEIGHT; + termFound = true; + } + } + weighted.push([word, value, index]); + value = NORMAL_WORD_WEIGHT; + } + + index += word.length; + index += 1; // ' ' or '.' if last word in sentence + } + + index += 1; // because we split at a two-char boundary '. ' + } + + if (weighted.length === 0) { + if (body.length !== undefined && body.length > TEASER_MAX_WORDS * 10) { + return body.substring(0, TEASER_MAX_WORDS * 10) + '...'; + } else { + return body; + } + } + + var windowWeights = []; + var windowSize = Math.min(weighted.length, TEASER_MAX_WORDS); + // We add a window with all the weights first + var curSum = 0; + for (var i = 0; i < windowSize; i++) { + curSum += weighted[i][1]; + } + windowWeights.push(curSum); + + for (var i = 0; i < weighted.length - windowSize; i++) { + curSum -= weighted[i][1]; + curSum += weighted[i + windowSize][1]; + windowWeights.push(curSum); + } + + // If we didn't find the term, just pick the first window + var maxSumIndex = 0; + if (termFound) { + var maxFound = 0; + // backwards + for (var i = windowWeights.length - 1; i >= 0; i--) { + if (windowWeights[i] > maxFound) { + maxFound = windowWeights[i]; + maxSumIndex = i; + } + } + } + + var teaser = []; + var startIndex = weighted[maxSumIndex][2]; + for (var i = maxSumIndex; i < maxSumIndex + windowSize; i++) { + var word = weighted[i]; + if (startIndex < word[2]) { + // missing text from index to start of `word` + teaser.push(body.substring(startIndex, word[2])); + startIndex = word[2]; + } + + // add around search terms + if (word[1] === TERM_WEIGHT) { + teaser.push(""); + } + + startIndex = word[2] + word[0].length; + // Check the string is ascii characters or not + var re = /^[\x00-\xff]+$/ + if (word[1] !== TERM_WEIGHT && word[0].length >= 12 && !re.test(word[0])) { + // If the string's length is too long, it maybe a Chinese/Japance/Korean article + // if using substring method directly, it may occur error codes on emoji chars + var strBefor = body.substring(word[2], startIndex); + var strAfter = substringByByte(strBefor, 12); + teaser.push(strAfter); + } else { + teaser.push(body.substring(word[2], startIndex)); + } + + if (word[1] === TERM_WEIGHT) { + teaser.push(""); + } + } + teaser.push("…"); + return teaser.join(""); + } + document.goSearch.onsubmit = function() { return goSearchNow() }; + }()); + } +}; diff --git a/js/searchjavaugly.js b/js/searchjavaugly.js new file mode 100644 index 0000000..335e872 --- /dev/null +++ b/js/searchjavaugly.js @@ -0,0 +1,354 @@ +window.onload = function() { + if (document.body.contains(document.goSearch)) { + document.goSearch.onsubmit = function() { return goSearchNow() }; + + /* + Source: + - https://github.com/nextapps-de/flexsearch#index-documents-field-search + - https://raw.githack.com/nextapps-de/flexsearch/master/demo/autocomplete.html + - http://elasticlunr.com/ + - https://github.com/getzola/zola/blob/master/docs/static/search.js + - https://github.com/aaranxu/adidoks/blob/main/static/js/search.js + */ + (function(){ + function inputFocus(e) { + + if (e.keyCode === 191//forward slash + && document.activeElement.tagName !== "INPUT" + && document.activeElement.tagName !== "TEXTAREA") { + e.preventDefault(); + searchinput.focus(); + suggestions.classList.remove('d-none'); + } + + if (e.keyCode === 27 ) {//escape + searchinput.blur(); + suggestions.classList.add('d-none'); + closeAllLists(); + } + + const focusableSuggestions= suggestions.querySelectorAll('a'); + if (suggestions.classList.contains('d-none') + || focusableSuggestions.length === 0) { + return; + } + const focusable= [...focusableSuggestions]; + const index = focusable.indexOf(document.activeElement); + + let nextIndex = 0; + + if (e.keyCode === 38) {//up arrow + e.preventDefault(); + nextIndex= index > 0 ? index-1 : 0; + focusableSuggestions[nextIndex].focus(); + } + else if (e.keyCode === 40) {//down arrow + e.preventDefault(); + nextIndex= index+1 < focusable.length ? index+1 : index; + focusableSuggestions[nextIndex].focus(); + } + + } + + var suggestions = document.getElementById("suggestions"); + var searchinput = document.getElementById("searchinput"); + document.addEventListener("keydown", inputFocus); + document.addEventListener("click", function(event) {suggestions.contains(event.target) || suggestions.classList.add("d-none")}); + + var lang = document.documentElement.getAttribute("lang"); + var langOnly = lang.substring(0, 2); + var baseUrl = document.querySelector("meta[name='base']").getAttribute("content"); + if (baseUrl.slice(-1) == "/") { + baseUrl = baseUrl.slice(0, -1); + } + + var index; + searchinput.addEventListener('input', show_results, true); + suggestions.addEventListener('click', accept_suggestion, true); + + + // in page results when press enter or click search icon from search box + function closeSearchNow() { + const main = document.querySelector("main"); + main.innerHTML = window.main + } + + function goSearchNow() { + const main = document.querySelector("main"); + if (!window.main) { + window.main = main.innerHTML + }; + var results = document.getElementById("suggestions");// suggestions div generated by search box + + var ResultsClone = results.cloneNode(true);// make a clone of the results, so that we can alter it + ResultsClone.id = "results";// alter the id of our clone, so that we can apply different css style + + var headerDiv = document.createElement("div");// create a div element + + var headerContent = '

'.concat(document.getElementById("searchinput").value, "

");// header to use at top of results page + + headerDiv.innerHTML = headerContent;// document element div (headerDiv), set the inner contents to our header html (headerContent) + + ResultsClone.insertBefore(headerDiv, ResultsClone.firstChild);//insert our header div at the top of the page + + main.innerHTML = ResultsClone.outerHTML;//display ResultsClone.outerHTML as the page + results.innerHTML = "";// clear the suggestions div popup + document.getElementById("searchinput").value = "";// clear the search input box + document.body.contains(document.closeSearch) && (document.closeSearch.onsubmit = function() { closeSearchNow() }) + return false + } + + /* Close search suggestion popup list */ + function closeAllLists(elmnt) { + var suggestions = document.getElementById("suggestions"); + while (suggestions.firstChild) { + suggestions.removeChild(suggestions.firstChild); + } + } + + + var index = elasticlunr.Index.load(window.searchIndex); + + async function show_results() { + var value = this.value.trim(); + var options = { + bool: "OR", + fields: { + title: {boost: 2}, + body: {boost: 1}, + } + }; + var results = index.search(value, options); + + var entry, childs = suggestions.childNodes; + var i = 0, len = results.length; + var items = value.split(/\s+/); + suggestions.classList.remove('d-none'); + + results.forEach(function(page) { + if (page.doc.body !== '') { + entry = document.createElement('div'); + + entry.innerHTML = ''; + + a = entry.querySelector('a'), + t = entry.querySelector('span:first-child'), + d = entry.querySelector('span:nth-child(2)'); + a.href = page.ref + 'index.html'; + t.textContent = page.doc.title; + d.innerHTML = makeTeaser(page.doc.body, items); + + suggestions.appendChild(entry); + } + }); + + while(childs.length > len){ + suggestions.removeChild(childs[i]) + } + + } + + function accept_suggestion(){ + + while(suggestions.lastChild){ + + suggestions.removeChild(suggestions.lastChild); + } + + return false; + } + // Get the string bytes from binary + function getByteByBinary(binaryCode) { + // Binary system, starts with `0b` in ES6 + // Octal number system, starts with `0` in ES5 and starts with `0o` in ES6 + // Hexadecimal, starts with `0x` in both ES5 and ES6 + var byteLengthDatas = [0, 1, 2, 3, 4]; + var len = byteLengthDatas[Math.ceil(binaryCode.length / 8)]; + return len; + } + + // Get the string bytes from hexadecimal + function getByteByHex(hexCode) { + return getByteByBinary(parseInt(hexCode, 16).toString(2)); + } + // Get substring by bytes + // If using JavaScript inline substring method, it will return error codes + // Source: https://www.52pojie.cn/thread-1059814-1-1.html + function substringByByte(str, maxLength) { + var result = ""; + var flag = false; + var len = 0; + var length = 0; + var length2 = 0; + for (var i = 0; i < str.length; i++) { + var code = str.codePointAt(i).toString(16); + if (code.length > 4) { + i++; + if ((i + 1) < str.length) { + flag = str.codePointAt(i + 1).toString(16) == "200d"; + } + } + if (flag) { + len += getByteByHex(code); + if (i == str.length - 1) { + length += len; + if (length <= maxLength) { + result += str.substr(length2, i - length2 + 1); + } else { + break + } + } + } else { + if (len != 0) { + length += len; + length += getByteByHex(code); + if (length <= maxLength) { + result += str.substr(length2, i - length2 + 1); + length2 = i + 1; + } else { + break + } + len = 0; + continue; + } + length += getByteByHex(code); + if (length <= maxLength) { + if (code.length <= 4) { + result += str[i] + } else { + result += str[i - 1] + str[i] + } + length2 = i + 1; + } else { + break + } + } + } + return result; + } + /* Taken from mdbook + // The strategy is as follows: + // First, assign a value to each word in the document: + // Words that correspond to search terms (stemmer aware): 40 + // Normal words: 2 + // First word in a sentence: 8 + // Then use a sliding window with a constant number of words and count the + // sum of the values of the words within the window. Then use the window that got the + // maximum sum. If there are multiple maximas, then get the last one. + // Enclose the terms in . + */ + function makeTeaser(body, terms) { + var TERM_WEIGHT = 40; + var NORMAL_WORD_WEIGHT = 2; + var FIRST_WORD_WEIGHT = 8; + var TEASER_MAX_WORDS = 30; + + var stemmedTerms = terms.map(function (w) { + return elasticlunr.stemmer(w.toLowerCase()); + }); + var termFound = false; + var index = 0; + var weighted = []; // contains elements of ["word", weight, index_in_document] + + // split in sentences, then words + var sentences = body.toLowerCase().split(". "); + for (var i in sentences) { + var words = sentences[i].split(/[\s\n]/); + var value = FIRST_WORD_WEIGHT; + for (var j in words) { + + var word = words[j]; + + if (word.length > 0) { + for (var k in stemmedTerms) { + if (elasticlunr.stemmer(word).startsWith(stemmedTerms[k])) { + value = TERM_WEIGHT; + termFound = true; + } + } + weighted.push([word, value, index]); + value = NORMAL_WORD_WEIGHT; + } + + index += word.length; + index += 1; // ' ' or '.' if last word in sentence + } + + index += 1; // because we split at a two-char boundary '. ' + } + + if (weighted.length === 0) { + if (body.length !== undefined && body.length > TEASER_MAX_WORDS * 10) { + return body.substring(0, TEASER_MAX_WORDS * 10) + '...'; + } else { + return body; + } + } + + var windowWeights = []; + var windowSize = Math.min(weighted.length, TEASER_MAX_WORDS); + // We add a window with all the weights first + var curSum = 0; + for (var i = 0; i < windowSize; i++) { + curSum += weighted[i][1]; + } + windowWeights.push(curSum); + + for (var i = 0; i < weighted.length - windowSize; i++) { + curSum -= weighted[i][1]; + curSum += weighted[i + windowSize][1]; + windowWeights.push(curSum); + } + + // If we didn't find the term, just pick the first window + var maxSumIndex = 0; + if (termFound) { + var maxFound = 0; + // backwards + for (var i = windowWeights.length - 1; i >= 0; i--) { + if (windowWeights[i] > maxFound) { + maxFound = windowWeights[i]; + maxSumIndex = i; + } + } + } + + var teaser = []; + var startIndex = weighted[maxSumIndex][2]; + for (var i = maxSumIndex; i < maxSumIndex + windowSize; i++) { + var word = weighted[i]; + if (startIndex < word[2]) { + // missing text from index to start of `word` + teaser.push(body.substring(startIndex, word[2])); + startIndex = word[2]; + } + + // add around search terms + if (word[1] === TERM_WEIGHT) { + teaser.push(""); + } + + startIndex = word[2] + word[0].length; + // Check the string is ascii characters or not + var re = /^[\x00-\xff]+$/ + if (word[1] !== TERM_WEIGHT && word[0].length >= 12 && !re.test(word[0])) { + // If the string's length is too long, it maybe a Chinese/Japance/Korean article + // if using substring method directly, it may occur error codes on emoji chars + var strBefor = body.substring(word[2], startIndex); + var strAfter = substringByByte(strBefor, 12); + teaser.push(strAfter); + } else { + teaser.push(body.substring(word[2], startIndex)); + } + + if (word[1] === TERM_WEIGHT) { + teaser.push(""); + } + } + teaser.push("…"); + return teaser.join(""); + } + document.goSearch.onsubmit = function() { return goSearchNow() }; + }()); + } +}; diff --git a/js/sw_load.js b/js/sw_load.js new file mode 100644 index 0000000..57cb540 --- /dev/null +++ b/js/sw_load.js @@ -0,0 +1,14 @@ +if ("serviceWorker" in navigator) { + navigator.serviceWorker + .register("/sw.min.js?v=3.12.1", + { scope: "/" }) + .then(() => { + console.info("SW Loaded"); + }, err => console.error("SW error: ", err)); + + navigator.serviceWorker + .ready + .then(() => { + console.info("SW Ready"); + }); +} diff --git a/js/sw_load.min.js b/js/sw_load.min.js new file mode 100644 index 0000000..5c3a598 --- /dev/null +++ b/js/sw_load.min.js @@ -0,0 +1 @@ +"serviceWorker"in navigator&&(navigator.serviceWorker.register("/sw.min.js?v=3.12.1",{scope:"/"}).then(()=>{},e=>{}),navigator.serviceWorker.ready.then(()=>{})); \ No newline at end of file diff --git a/js/theme.js b/js/theme.js new file mode 100644 index 0000000..ec10638 --- /dev/null +++ b/js/theme.js @@ -0,0 +1,4 @@ +// enforce local storage setting but also fallback to user-agent preferences +if (localStorage.getItem('theme') === 'switch' || (!localStorage.getItem('theme') && !window.matchMedia("(prefers-color-scheme: dark)").matches)) { + document.documentElement.classList.add('switch'); +} diff --git a/js/theme.min.js b/js/theme.min.js new file mode 100644 index 0000000..8804552 --- /dev/null +++ b/js/theme.min.js @@ -0,0 +1 @@ +"switch"!==localStorage.getItem("theme")&&(localStorage.getItem("theme")||window.matchMedia("(prefers-color-scheme: dark)").matches)||document.documentElement.classList.add("switch"); \ No newline at end of file diff --git a/js/theme_button.js b/js/theme_button.js new file mode 100644 index 0000000..b60f85e --- /dev/null +++ b/js/theme_button.js @@ -0,0 +1,7 @@ +// switch theme mode +if (document.getElementById('mode')) { + document.getElementById('mode').addEventListener('click', () => { + document.documentElement.classList.toggle('switch'); + localStorage.setItem('theme', document.documentElement.classList.contains('switch') ? 'switch' : 'default'); + }); +} diff --git a/js/theme_light.js b/js/theme_light.js new file mode 100644 index 0000000..cea48ac --- /dev/null +++ b/js/theme_light.js @@ -0,0 +1,4 @@ +// enforce local storage setting but also fallback to user-agent preferences +if (localStorage.getItem('theme') === 'switch' || (!localStorage.getItem('theme') && !window.matchMedia("(prefers-color-scheme: light)").matches)) { + document.documentElement.classList.add('switch'); +} diff --git a/js/theme_light.min.js b/js/theme_light.min.js new file mode 100644 index 0000000..fca2f11 --- /dev/null +++ b/js/theme_light.min.js @@ -0,0 +1 @@ +"switch"!==localStorage.getItem("theme")&&(localStorage.getItem("theme")||window.matchMedia("(prefers-color-scheme: light)").matches)||document.documentElement.classList.add("switch"); \ No newline at end of file diff --git a/js/tinysearch.js b/js/tinysearch.js new file mode 100644 index 0000000..183eb05 --- /dev/null +++ b/js/tinysearch.js @@ -0,0 +1,254 @@ +window.onload = function () { + if (document.body.contains(document.goSearch)) { + document.goSearch.onsubmit = function () { return goSearchNow() }; + + (function () {//anonymous function to keep from defining global variables. + + var searchinput = document.getElementById("searchinput"); + function suggestionFocus(e) { + if (e.keyCode === 191//forward slash + && document.activeElement.tagName !== "INPUT" + && document.activeElement.tagName !== "TEXTAREA") { + e.preventDefault(); + searchinput.focus(); + suggestions.classList.remove('d-none'); + } + + if (e.keyCode === 27 ) {//escape + searchinput.blur(); + suggestions.classList.add('d-none'); + closeAllLists(); + } + + const focusableSuggestions= suggestions.querySelectorAll('a'); + if (suggestions.classList.contains('d-none') + || focusableSuggestions.length === 0) { + return; + } + const focusable= [...focusableSuggestions]; + const index = focusable.indexOf(document.activeElement); + + let nextIndex = 0; + + if (e.keyCode === 38) {//up arrow + e.preventDefault(); + nextIndex= index > 0 ? index-1 : 0; + focusableSuggestions[nextIndex].focus(); + } + else if (e.keyCode === 40) {//down arrow + e.preventDefault(); + nextIndex= index+1 < focusable.length ? index+1 : index; + focusableSuggestions[nextIndex].focus(); + } + + } + document.addEventListener("keydown", suggestionFocus); + + var loaded = false; + document.getElementById('searchinput').onfocus = function() { + if (!loaded) { + lazyLoad(); + loaded = true; + } + document.getElementById('searchinput').onfocus = ''; + } + async function lazyLoad() { + var baseUrl = document.querySelector("meta[name='base']").getAttribute("content"); + if (baseUrl.slice(-1) == "/") { + baseUrl = baseUrl.slice(0, -1); + } + await init(baseUrl + "/tinysearch_engine_bg.wasm"); + } + + // in page results when press enter or click search icon from search box + function closeSearchNow() { + const main = document.querySelector("main"); + main.innerHTML = window.main + } + function goSearchNow() { + const main = document.querySelector("main"); + if (!window.main) { + window.main = main.innerHTML + }; + var results = document.getElementById("suggestions");// suggestions div generated by search box + + var ResultsClone = results.cloneNode(true);// make a clone of the results, so that we can alter it + ResultsClone.id = "results";// alter the id of our clone, so that we can apply different css style + + var headerDiv = document.createElement("div");// create a div element + + var headerContent = '

'.concat(document.getElementById("searchinput").value, "

");// header to use at top of results page + + headerDiv.innerHTML = headerContent;// document element div (headerDiv), set the inner contents to our header html (headerContent) + + ResultsClone.insertBefore(headerDiv, ResultsClone.firstChild);//insert our header div at the top of the page + + main.innerHTML = ResultsClone.outerHTML;//display ResultsClone.outerHTML as the page + results.innerHTML = "";// clear the suggestions div popup + document.getElementById("searchinput").value = "";// clear the search input box + document.body.contains(document.closeSearch) && (document.closeSearch.onsubmit = function() { closeSearchNow() }) + return false + } + + /* Close search suggestion popup list */ + function closeAllLists(elmnt) { + var suggestions = document.getElementById("suggestions"); + while (suggestions.firstChild) { + suggestions.removeChild(suggestions.firstChild); + } + } + + function markTerm(input, term) { + return input.replace(new RegExp('(^|)(' + term + ')(|$)','ig'), '$1$2$3'); + } + + function autocomplete(inp) { + + inp.addEventListener("input", function (e) { + var suggestions, entry, i, val = this.value; + + /*close any already open lists of autocompleted values*/ + closeAllLists(); + if (!val) { + return false; + } + + suggestions = document.getElementById("suggestions");// suggestions div, generated by search box + + let arr = search(val, 99);//limit results + + for (i = 0; i < arr.length; i++) { + let elem = arr[i]; + + entry = document.createElement("DIV"); + entry.innerHTML = ''; + var a, t, d; + a = entry.querySelector('a'), + t = entry.querySelector('span:first-child'), + d = entry.querySelector('span:nth-child(2)'); + a.href = `${elem[1]}?q=${encodeURIComponent(val)}`;//a link + //t.innerHTML = markTerm(elem[0], val);//title + t.innerHTML = elem[0];//title + d.innerHTML = markTerm(elem[2], val);//description + + suggestions.appendChild(entry); + } + }) + } + + + let wasm, cachedTextDecoder = (autocomplete(document.getElementById("searchinput")), new TextDecoder("utf-8", { + ignoreBOM: !0, + fatal: !0 + })), + cachegetUint8Memory0 = (cachedTextDecoder.decode(), null); + + function getUint8Memory0() { + return cachegetUint8Memory0 = null !== cachegetUint8Memory0 && cachegetUint8Memory0.buffer === wasm.memory.buffer ? cachegetUint8Memory0 : new Uint8Array(wasm.memory.buffer) + } + + function getStringFromWasm0(e, t) { + return cachedTextDecoder.decode(getUint8Memory0().subarray(e, e + t)) + } + const heap = new Array(32).fill(void 0); + heap.push(void 0, null, !0, !1); + let heap_next = heap.length; + + function addHeapObject(e) { + heap_next === heap.length && heap.push(heap.length + 1); + var t = heap_next; + return heap_next = heap[t], heap[t] = e, t + } + let WASM_VECTOR_LEN = 0, + cachedTextEncoder = new TextEncoder("utf-8"); + const encodeString = "function" == typeof cachedTextEncoder.encodeInto ? function(e, t) { + return cachedTextEncoder.encodeInto(e, t) + } : function(e, t) { + var n = cachedTextEncoder.encode(e); + return t.set(n), { + read: e.length, + written: n.length + } + }; + + function passStringToWasm0(e, t, n) { + if (void 0 === n) { + const n = cachedTextEncoder.encode(e), + a = t(n.length); + return getUint8Memory0().subarray(a, a + n.length).set(n), WASM_VECTOR_LEN = n.length, a + } + let a = e.length, + o = t(a); + const i = getUint8Memory0(); + let r = 0; + for (; r < a; r++) { + const t = e.charCodeAt(r); + if (127 < t) break; + i[o + r] = t + } + if (r !== a) { + 0 !== r && (e = e.slice(r)), o = n(o, a, a = r + 3 * e.length); + const t = getUint8Memory0().subarray(o + r, o + a); + r += encodeString(e, t).written + } + return WASM_VECTOR_LEN = r, o + } + + function getObject(e) { + return heap[e] + } + + function dropObject(e) { + e < 36 || (heap[e] = heap_next, heap_next = e) + } + + function takeObject(e) { + var t = getObject(e); + return dropObject(e), t + } + + function search(e, t) { + var e = passStringToWasm0(e, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc), + n = WASM_VECTOR_LEN; + return takeObject(wasm.search(e, n, t)) + } + async function load(e, t) { + if ("function" == typeof Response && e instanceof Response) { + if ("function" == typeof WebAssembly.instantiateStreaming) try { + return await WebAssembly.instantiateStreaming(e, t) + } catch (t) { + if ("application/wasm" == e.headers.get("Content-Type")) throw t; + console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", t) + } + var n = await e.arrayBuffer(); + return WebAssembly.instantiate(n, t) + } + n = await WebAssembly.instantiate(e, t); + return n instanceof WebAssembly.Instance ? { + instance: n, + module: e + } : n + } + async function init(e) { + var baseUrl = document.querySelector("meta[name='base']").getAttribute("content"); + if (baseUrl.slice(-1) == "/") { + baseUrl = baseUrl.slice(0, -1); + } + void 0 === e && (e = new URL(baseUrl + "/tinysearch_engine_bg.wasm")); + const t = { + wbg: {} + }; + t.wbg.__wbindgen_json_parse = function(e, t) { + return addHeapObject(JSON.parse(getStringFromWasm0(e, t))) + }; + var { + instance: e, + module: n + } = await load(await (e = "string" == typeof e || "function" == typeof Request && e instanceof Request || "function" == typeof URL && e instanceof URL ? fetch(e) : e), t); + return wasm = e.exports, init.__wbindgen_wasm_module = n, wasm + } + + document.goSearch.onsubmit = function () { return goSearchNow() }; + }()); + } +}; diff --git a/katex.min.css b/katex.min.css new file mode 100644 index 0000000..444a00c --- /dev/null +++ b/katex.min.css @@ -0,0 +1 @@ +@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype")}.katex{text-rendering:auto;font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.15.6"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo} diff --git a/m1024.png b/m1024.png new file mode 100644 index 0000000..f733670 Binary files /dev/null and b/m1024.png differ diff --git a/m128.png b/m128.png new file mode 100644 index 0000000..428f863 Binary files /dev/null and b/m128.png differ diff --git a/m192.png b/m192.png new file mode 100644 index 0000000..0983cd8 Binary files /dev/null and b/m192.png differ diff --git a/m384.png b/m384.png new file mode 100644 index 0000000..5909ebb Binary files /dev/null and b/m384.png differ diff --git a/m48.png b/m48.png new file mode 100644 index 0000000..e7136b4 Binary files /dev/null and b/m48.png differ diff --git a/m512.png b/m512.png new file mode 100644 index 0000000..21daff2 Binary files /dev/null and b/m512.png differ diff --git a/m72.png b/m72.png new file mode 100644 index 0000000..763db52 Binary files /dev/null and b/m72.png differ diff --git a/m96.png b/m96.png new file mode 100644 index 0000000..7089028 Binary files /dev/null and b/m96.png differ diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..65d9670 --- /dev/null +++ b/manifest.json @@ -0,0 +1,77 @@ +{ + "name": "Abridge Zola Theme", + "short_name": "Abridge", + "description": "Fast and Lightweight Zola Theme", + "background_color": "#111111", + "theme_color": "#333333", + "display": "standalone", + "orientation": "any", + "start_url": "/", + "scope": "/", + "categories": ["developer", "development", "productivity"], + "icons": [ + { + "src": "/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "/apple-touch-icon.png", + "sizes": "180x180", + "type": "image/png" + }, + { + "src": "/m48.png", + "sizes": "48x48", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "/m72.png", + "sizes": "72x72", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "/m96.png", + "sizes": "96x96", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "/m128.png", + "sizes": "128x128", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "/m192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "/m384.png", + "sizes": "384x384", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "/m512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "/m1024.png", + "sizes": "1024x1024", + "type": "image/png", + "purpose": "maskable" + } + ] +} diff --git a/manifest.min.json b/manifest.min.json new file mode 100644 index 0000000..e6bf4ec --- /dev/null +++ b/manifest.min.json @@ -0,0 +1 @@ +{"name":"Abridge Zola Theme","short_name":"Abridge","description":"Fast and Lightweight Zola Theme","background_color":"#111111","theme_color":"#333333","display":"standalone","orientation":"any","start_url":"/","scope":"/","categories":["developer","development","productivity"],"icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"},{"src":"/apple-touch-icon.png","sizes":"180x180","type":"image/png"},{"src":"/m48.png","sizes":"48x48","type":"image/png","purpose":"maskable"},{"src":"/m72.png","sizes":"72x72","type":"image/png","purpose":"maskable"},{"src":"/m96.png","sizes":"96x96","type":"image/png","purpose":"maskable"},{"src":"/m128.png","sizes":"128x128","type":"image/png","purpose":"maskable"},{"src":"/m192.png","sizes":"192x192","type":"image/png","purpose":"maskable"},{"src":"/m384.png","sizes":"384x384","type":"image/png","purpose":"maskable"},{"src":"/m512.png","sizes":"512x512","type":"image/png","purpose":"maskable"},{"src":"/m1024.png","sizes":"1024x1024","type":"image/png","purpose":"maskable"}]} \ No newline at end of file diff --git a/mstile-150x150.png b/mstile-150x150.png new file mode 100644 index 0000000..8abea88 Binary files /dev/null and b/mstile-150x150.png differ diff --git a/nojs.css b/nojs.css new file mode 100644 index 0000000..7e0ba6d --- /dev/null +++ b/nojs.css @@ -0,0 +1 @@ +.js{display:none} \ No newline at end of file diff --git a/page/1/index.html b/page/1/index.html new file mode 100644 index 0000000..09573cb --- /dev/null +++ b/page/1/index.html @@ -0,0 +1,6 @@ + + + + +Redirect +

Click here to be redirected.

diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..1b0a797 --- /dev/null +++ b/robots.txt @@ -0,0 +1,5 @@ + +Sitemap: https://dynamis.gg/sitemap.xml +User-Agent: * +Allow: / +Host: https://dynamis.gg diff --git a/safari-pinned-tab.svg b/safari-pinned-tab.svg new file mode 100644 index 0000000..31cf03f --- /dev/null +++ b/safari-pinned-tab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/search_index.en.json b/search_index.en.json new file mode 100644 index 0000000..9cfe1d8 --- /dev/null +++ b/search_index.en.json @@ -0,0 +1 @@ +{"fields":["title","description","body"],"pipeline":["trimmer","stopWordFilter","stemmer"],"ref":"id","version":"0.9.5","index":{"body":{"root":{"docs":{},"df":0,"0":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":2,"b":{"docs":{},"df":0,"u":{"docs":{},"df":0,"f":{"docs":{},"df":0,"f":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}},"1":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p2/":{"tf":2.0},"https://dynamis.gg/fru/p3/":{"tf":2.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":6,".":{"docs":{},"df":0,"o":{"docs":{},"df":0,"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}},"/":{"docs":{},"df":0,"1":{"docs":{},"df":0,"/":{"docs":{},"df":0,"4":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}},"6":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}}},"2":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1,"/":{"docs":{},"df":0,"3":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}},"4":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}},"0":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":3},"2":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":2.0}},"df":1,"0":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":2}},"4":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":3.0}},"df":3},"5":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":4},"6":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":6},"7":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":2.449489742783178}},"df":1},"9":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}},"2":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":2.0},"https://dynamis.gg/fru/p2/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p3/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":7,".":{"docs":{},"df":0,"1":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}},"/":{"docs":{},"df":0,"2":{"docs":{},"df":0,"/":{"docs":{},"df":0,"2":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}},"3":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}},"0":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p3/":{"tf":3.1622776601683795},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":4},"2":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1,".":{"docs":{},"df":0,"5":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951}},"df":1}},"5":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1,"°":{"docs":{},"df":0,"[":{"docs":{},"df":0,"2":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}},"4":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2,"0":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}},"6":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":2.23606797749979}},"df":1},"7":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1,"0":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}},"m":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":2.0},"https://dynamis.gg/fru/p2/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p5/":{"tf":2.0}},"df":3},"×":{"docs":{},"df":0,"2":{"docs":{},"df":0,"×":{"docs":{},"df":0,"1":{"docs":{},"df":0,"×":{"docs":{},"df":0,"1":{"docs":{},"df":0,"×":{"docs":{},"df":0,"1":{"docs":{},"df":0,"×":{"docs":{},"df":0,"1":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}}}}}}},"3":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":2.0},"https://dynamis.gg/fru/p1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":7,".":{"docs":{},"df":0,"2":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}},"/":{"docs":{},"df":0,"4":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1}},"0":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":2.6457513110645907}},"df":2},"1":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772}},"df":1},"2":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1},"3":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":2.8284271247461903}},"df":1},"6":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":2},"7":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}},"4":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/i1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p2/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p5/":{"tf":2.23606797749979}},"df":7,".":{"docs":{},"df":0,"3":{"docs":{},"df":0,"r":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}},"0":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":3.1622776601683795}},"df":2},"3":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":3.1622776601683795}},"df":1},"4":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1},"5":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1},"8":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}},"5":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.8284271247461903},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":4,".":{"docs":{},"df":0,"4":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}},"0":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1},"2":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1},"’":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}},"6":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2,".":{"docs":{},"df":0,"5":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}},"7":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2,".":{"docs":{},"df":0,"6":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}},"8":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2,".":{"docs":{},"df":0,"7":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1}}},"8":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}},"0":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}},"9":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2,"0":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772}},"df":3},"9":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}},"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"i":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}},"o":{"docs":{},"df":0,"v":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772}},"df":2}},"s":{"docs":{},"df":0,"o":{"docs":{},"df":0,"l":{"docs":{},"df":0,"u":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":3}}},"r":{"docs":{},"df":0,"b":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}}}}},"c":{"docs":{},"df":0,"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"m":{"docs":{},"df":0,"p":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}}},"u":{"docs":{},"df":0,"m":{"docs":{},"df":0,"u":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951}},"df":1}}}}},"k":{"docs":{},"df":0,"n":{"docs":{},"df":0,"o":{"docs":{},"df":0,"w":{"docs":{},"df":0,"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"d":{"docs":{},"df":0,"g":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":6}}}}}}}},"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":3.1622776601683795}},"df":1}},"v":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":3.872983346207417},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":2}},"u":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p3/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":5}}}}},"d":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1,"d":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":4,"i":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":2}}}}}},"v":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":2}}}}},"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"o":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}},"t":{"docs":{},"df":0,"h":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.0}},"df":1}}}}}},"f":{"docs":{},"df":0,"a":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":2.8284271247461903}},"df":1}},"f":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}}}},"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"w":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3}}}}}}}},"g":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":5,"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}},"i":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951}},"df":2},"r":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951}},"df":1}},"k":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":3.3166247903554},"https://dynamis.gg/fru/p5/":{"tf":2.0}},"df":2}},"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{},"df":0,"a":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}}},"i":{"docs":{},"df":0,"v":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":4}},"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1},"o":{"docs":{},"df":0,"w":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}},"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"g":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}},"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}}},"h":{"docs":{},"df":0,"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"g":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p3/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":4}}}}}},"w":{"docs":{},"df":0,"a":{"docs":{},"df":0,"y":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":2.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":2.0},"https://dynamis.gg/fru/p5/":{"tf":2.23606797749979}},"df":5}}}},"m":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"g":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}},"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}},"p":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}},"n":{"docs":{},"df":0,"g":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3}},"i":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}},"o":{"docs":{},"df":0,"l":{"docs":{},"df":0,"o":{"docs":{},"df":0,"g":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}},"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":4}}},"s":{"docs":{},"df":0,"w":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}}}},"y":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":6}},"w":{"docs":{},"df":0,"h":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}}}}}},"o":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":3.4641016151377544},"https://dynamis.gg/fru/i1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p1/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p2/":{"tf":3.1622776601683795},"https://dynamis.gg/fru/p4/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p5/":{"tf":2.0}},"df":6,"s":{"docs":{},"df":0,"—":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}}},"p":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":2.0}},"df":3}}},"e":{"docs":{},"df":0,"x":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}},"o":{"docs":{},"df":0,"c":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{},"df":0,"y":{"docs":{},"df":0,"p":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":2}}}}}}},"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p1/":{"tf":2.8284271247461903},"https://dynamis.gg/fru/p2/":{"tf":2.8284271247461903},"https://dynamis.gg/fru/p3/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":3.4641016151377544},"https://dynamis.gg/fru/p5/":{"tf":3.3166247903554}},"df":7,"l":{"docs":{},"df":0,"o":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}},"s":{"docs":{},"df":0,"h":{"docs":{},"df":0,"i":{"docs":{},"df":0,"v":{"docs":{},"df":0,"a":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}}},"n":{"docs":{},"df":0,"d":{"docs":{},"df":0,"i":{"docs":{},"df":0,"x":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}}}},"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1,"c":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951}},"df":1}}},"o":{"docs":{},"df":0,"x":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1,"i":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}}}},"r":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1},"e":{"docs":{},"df":0,"a":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772}},"df":1},"n":{"docs":{},"df":0,"a":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p2/":{"tf":3.4641016151377544},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":3.1622776601683795},"https://dynamis.gg/fru/p5/":{"tf":2.6457513110645907}},"df":7,"’":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}},"’":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}},"g":{"docs":{},"df":0,"u":{"docs":{},"df":0,"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}},"m":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}},"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":2.0},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":3}}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"g":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}},"o":{"docs":{},"df":0,"w":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}},"s":{"docs":{},"df":0,"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951}},"df":1}}},"o":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}},"u":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}}},"t":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951}},"df":1}},"o":{"docs":{},"df":0,"l":{"docs":{},"df":0,"o":{"docs":{},"df":0,"g":{"docs":{},"df":0,"i":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.4142135623730951}},"df":1}}}}}}}}}},"t":{"docs":{},"df":0,"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1},"k":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":3.605551275463989},"https://dynamis.gg/fru/p2/":{"tf":3.0},"https://dynamis.gg/fru/p3/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":3.1622776601683795},"https://dynamis.gg/fru/p5/":{"tf":3.0}},"df":6,"—":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}},"e":{"docs":{},"df":0,"m":{"docs":{},"df":0,"p":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}}},"n":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":2}}}}},"u":{"docs":{},"df":0,"t":{"docs":{},"df":0,"o":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1,"a":{"docs":{},"df":0,"t":{"docs":{},"df":0,"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":2}}}}}},"m":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}}},"—":{"docs":{},"df":0,"w":{"docs":{},"df":0,"h":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}}}}}},"v":{"docs":{},"df":0,"o":{"docs":{},"df":0,"i":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}}},"w":{"docs":{},"df":0,"a":{"docs":{},"df":0,"y":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772}},"df":5}}},"x":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772}},"df":1}},"b":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":6,"g":{"docs":{},"df":0,"r":{"docs":{},"df":0,"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1}}}}}}}},"d":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3,".":{"docs":{},"df":0,"[":{"docs":{},"df":0,"4":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":2.23606797749979}},"df":1}}},"l":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}},"n":{"docs":{},"df":0,"i":{"docs":{},"df":0,"s":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":2.0}},"df":1}}}},"r":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":5,"d":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.0}},"df":2}},"s":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":4}}},"e":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772}},"df":1}}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951}},"df":2}}}},"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":5}}},"f":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p1/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p2/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p3/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p5/":{"tf":2.449489742783178}},"df":7,"e":{"docs":{},"df":0,"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}}}},"g":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p1/":{"tf":3.0},"https://dynamis.gg/fru/p2/":{"tf":3.4641016151377544},"https://dynamis.gg/fru/p4/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p5/":{"tf":2.23606797749979}},"df":5,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"/":{"docs":{},"df":0,"w":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}}}}}}}},"h":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":2.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":5}}}},"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"e":{"docs":{},"df":0,"v":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951}},"df":1}}},"o":{"docs":{},"df":0,"w":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":4}}},"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}},"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}},"t":{"docs":{},"df":0,"w":{"docs":{},"df":0,"e":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772}},"df":5}}}}}},"i":{"docs":{},"df":0,"g":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":3},"n":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}},"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":2.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.0}},"df":3}},"d":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":2.0}},"df":1}},"n":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772}},"df":1}},"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951}},"df":1}}},"e":{"docs":{},"df":0,"e":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":3}}},"i":{"docs":{},"df":0,"z":{"docs":{},"df":0,"z":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.449489742783178},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":4}}}}}},"o":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}},"w":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}},"u":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p3/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772}},"df":6}}},"o":{"docs":{},"df":0,"d":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}},"n":{"docs":{},"df":0,"a":{"docs":{},"df":0,"f":{"docs":{},"df":0,"i":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}}}},"s":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":4.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":6,"/":{"docs":{},"df":0,"c":{"docs":{},"df":0,"l":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}}}}}}},"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":3.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":5,".":{"docs":{},"df":0,"[":{"docs":{},"df":0,"2":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}},"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1},"d":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":2}}},"v":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}},"x":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":2.0}},"df":1}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"m":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":3}}},"n":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":4,"d":{"docs":{},"df":0,"o":{"docs":{},"df":0,"w":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}}}},"i":{"docs":{},"df":0,"e":{"docs":{},"df":0,"f":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":4}},"g":{"docs":{},"df":0,"h":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951}},"df":2,"f":{"docs":{},"df":0,"i":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}},"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}},"n":{"docs":{},"df":0,"g":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}},"o":{"docs":{},"df":0,"k":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":2}}},"u":{"docs":{},"df":0,"g":{"docs":{},"df":0,"h":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951}},"df":2}}}}}},"u":{"docs":{},"df":0,"f":{"docs":{},"df":0,"f":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":3.4641016151377544}},"df":1}},"r":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":2,"i":{"docs":{},"df":0,"s":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":2.23606797749979}},"df":1}}},"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.0}},"df":2}},"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}},"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}}},"c":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":5,"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":1}}}}},"m":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}},"n":{"docs":{},"df":0,"’":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":4}}},"p":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}},"r":{"docs":{},"df":0,"d":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":2.23606797749979}},"df":4}}},"e":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":4}},"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":2.0},"https://dynamis.gg/fru/p1/":{"tf":5.0},"https://dynamis.gg/fru/p2/":{"tf":4.69041575982343},"https://dynamis.gg/fru/p3/":{"tf":3.4641016151377544},"https://dynamis.gg/fru/p4/":{"tf":4.898979485566356},"https://dynamis.gg/fru/p5/":{"tf":3.7416573867739413}},"df":7,"(":{"docs":{},"df":0,"n":{"docs":{},"df":0,"=":{"docs":{},"df":0,"(":{"docs":{},"df":0,"“":{"docs":{},"df":0,"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}}}}},"b":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":2.0}},"df":6}}},"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}}}},"t":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}},"u":{"docs":{},"df":0,"g":{"docs":{},"df":0,"h":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}},"s":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":5}}},"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":2.8284271247461903},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":6}}}},"r":{"docs":{},"df":0,"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.0}},"df":1}}}}}},"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":3}},"m":{"docs":{},"df":0,"b":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}},"n":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1},"g":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":3},"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.7320508075688772}},"df":1}}}},"o":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}},"g":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}},"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}},"e":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}},"o":{"docs":{},"df":0,"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951}},"df":1}}}}},"i":{"docs":{},"df":0,"a":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1},"r":{"docs":{},"df":0,"c":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p2/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p4/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":6},"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":4}}}}}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{},"df":0,"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":2}}}}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":2.6457513110645907}},"df":3,"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}},"r":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":2.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":4},"v":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p2/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":2.8284271247461903}},"df":5}}},"i":{"docs":{},"df":0,"f":{"docs":{},"df":0,"f":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}},"p":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}},"o":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{},"df":0,"w":{"docs":{},"df":0,"i":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":3}}}}},"n":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":2,"s":{"docs":{},"df":0,"—":{"docs":{},"df":0,"f":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"b":{"docs":{},"df":0,"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"k":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"'":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}}}}}}}}}}}}}}},"s":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":4,"r":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1},"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3}}}}},"u":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}},"o":{"docs":{},"df":0,"l":{"docs":{},"df":0,"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":2}}},"u":{"docs":{},"df":0,"m":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":1}}}},"m":{"docs":{},"df":0,"b":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}},"e":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":2.0}},"df":4},"m":{"docs":{},"df":0,"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{},"df":0,"y":{"docs":{},"df":0,".":{"docs":{},"df":0,"[":{"docs":{},"df":0,"2":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}}}}}},"p":{"docs":{},"df":0,"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}},"e":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p1/":{"tf":3.0},"https://dynamis.gg/fru/p2/":{"tf":2.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p5/":{"tf":2.0}},"df":6},"x":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}},"u":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}},"n":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}},"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}},"d":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}},"e":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":2.0},"https://dynamis.gg/fru/p1/":{"tf":2.8284271247461903},"https://dynamis.gg/fru/p2/":{"tf":2.0},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772}},"df":4,"’":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}},"f":{"docs":{},"df":0,"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}},"r":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}},"u":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}},"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}},"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}}},"i":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}},"t":{"docs":{},"df":0,"r":{"docs":{},"df":0,"u":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.0}},"df":3}}}}}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}},"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}},"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}},"r":{"docs":{},"df":0,"o":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1}}}},"v":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}},"r":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}},"o":{"docs":{},"df":0,"l":{"docs":{},"df":0,"d":{"docs":{},"df":0,"o":{"docs":{},"df":0,"w":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}}},"p":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}},"r":{"docs":{},"df":0,"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":1,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":2}}}},"s":{"docs":{},"df":0,"p":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}}}}}}}},"s":{"docs":{},"df":0,"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}},"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"d":{"docs":{},"df":0,"n":{"docs":{},"df":0,"’":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}},"n":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2,"d":{"docs":{},"df":0,"o":{"docs":{},"df":0,"w":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951}},"df":1}}}},"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1,"c":{"docs":{},"df":0,"l":{"docs":{},"df":0,"o":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{},"df":0,"w":{"docs":{},"df":0,"i":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}}}}}}}}}}},"r":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}},"v":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":4}}},"w":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"d":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}}}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":2}}},"i":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}}},"o":{"docs":{},"df":0,"s":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2,"e":{"docs":{},"df":0,"d":{"docs":{},"df":0,".":{"docs":{},"df":0,"[":{"docs":{},"df":0,"3":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}}}}},"y":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.0},"https://dynamis.gg/fru/i1/":{"tf":4.69041575982343},"https://dynamis.gg/fru/p4/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":4}}}}}},"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951}},"df":1}}}},"s":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3}},"t":{"docs":{},"df":0,"s":{"docs":{},"df":0,"c":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":2.23606797749979}},"df":2}}}}}},"y":{"docs":{},"df":0,"c":{"docs":{},"df":0,"l":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":2.449489742783178}},"df":1}}}}}},"d":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1,"a":{"docs":{},"df":0,"m":{"docs":{},"df":0,"a":{"docs":{},"df":0,"g":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":5.5677643628300215},"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":2.0},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":3.0},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":7,"e":{"docs":{},"df":0,".":{"docs":{},"df":0,"[":{"docs":{},"df":0,"1":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}}},"g":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}},"n":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.0}},"df":1}}}},"r":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":6.0},"https://dynamis.gg/fru/i1/":{"tf":2.8284271247461903},"https://dynamis.gg/fru/p3/":{"tf":3.1622776601683795},"https://dynamis.gg/fru/p4/":{"tf":3.872983346207417},"https://dynamis.gg/fru/p5/":{"tf":3.872983346207417},"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.4142135623730951}},"df":6,"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":1}}},"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"s":{"docs":{},"df":0,"'":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2},"—":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}}}}}},"y":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}},"e":{"docs":{},"df":0,")":{"docs":{},"df":0,"b":{"docs":{},"df":0,"u":{"docs":{},"df":0,"f":{"docs":{},"df":0,"f":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}}}}},"a":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":3},"l":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":5,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}},"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.7320508075688772}},"df":1,"w":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}}},"b":{"docs":{},"df":0,"u":{"docs":{},"df":0,"f":{"docs":{},"df":0,"f":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p2/":{"tf":2.0},"https://dynamis.gg/fru/p3/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p4/":{"tf":2.8284271247461903}},"df":4}}}},"c":{"docs":{},"df":0,"e":{"docs":{},"df":0,"p":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}}},"e":{"docs":{},"df":0,"p":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":3}},"f":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":3}}},"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"y":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3}},"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"h":{"docs":{},"df":0,"t":{"docs":{},"df":0,"'":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}}},"n":{"docs":{},"df":0,"o":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3}}},"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":3}}}},"s":{"docs":{},"df":0,"c":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}},"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"p":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.6457513110645907}},"df":1}}}}},"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":4.242640687119285},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":2}}},"p":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}},"t":{"docs":{},"df":0,"r":{"docs":{},"df":0,"o":{"docs":{},"df":0,"y":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":2}},"u":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}}}}}},"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"m":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":2}}}}},"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":2.0}},"df":2}}}},"i":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951}},"df":3,"a":{"docs":{},"df":0,"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}},"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":2.449489742783178}},"df":1}}}}},"e":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":4},"f":{"docs":{},"df":0,"f":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":5}}}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p3/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":5,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":2}}}}}},"s":{"docs":{},"df":0,"a":{"docs":{},"df":0,"p":{"docs":{},"df":0,"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":3}}}}}},"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":2}}}},"p":{"docs":{},"df":0,"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"y":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951}},"df":1}}}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":4}}},"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"b":{"docs":{},"df":0,"u":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951}},"df":2}}}}}}},"v":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}},"o":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1,"d":{"docs":{},"df":0,"g":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":4}},"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"/":{"docs":{},"df":0,"d":{"docs":{},"df":0,"o":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"n":{"docs":{},"df":0,"’":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}}}}},"n":{"docs":{},"df":0,"’":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":4}}}}},"l":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}},"n":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":3},"u":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":2.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":3}},"’":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":2.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":4}}},"o":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951}},"df":1}},"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":3},"u":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}},"w":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":3.1622776601683795},"https://dynamis.gg/fru/i1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":2.449489742783178}},"df":5,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":4}}},"w":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}}}}}},"p":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p3/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":4},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":1}}},"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951}},"df":1}}},"g":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1,"s":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"g":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":2}}}}},"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.4142135623730951}},"df":1}}}},"w":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951}},"df":1}}},"o":{"docs":{},"df":0,"p":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":2.0}},"df":1}}},"u":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":2},"o":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":4}},"e":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":2.0},"https://dynamis.gg/fru/p2/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":2.8284271247461903}},"df":6}},"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":2.23606797749979}},"df":1,"—":{"docs":{},"df":0,"a":{"docs":{},"df":0,"p":{"docs":{},"df":0,"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}}}}}}},"y":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}},"e":{"docs":{},"df":0,"1":{"docs":{},"df":0,"1":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951}},"df":1},"2":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":2.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2,"n":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951}},"df":1}}},"8":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":2.0},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772}},"df":3,"n":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}},"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p1/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p2/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p3/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p4/":{"tf":2.0},"https://dynamis.gg/fru/p5/":{"tf":2.0}},"df":6}},"r":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":3,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":4}}}},"n":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1}},"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p4/":{"tf":2.23606797749979}},"df":2,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}},"d":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}},"g":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":2.449489742783178}},"df":3}},"f":{"docs":{},"df":0,"f":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":4.69041575982343},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":5}}}}},"g":{"docs":{},"df":0,"g":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}},"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"h":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951}},"df":3}}}},"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p5/":{"tf":2.449489742783178}},"df":2}}}}}},"m":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"z":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951}},"df":1}}}}}},"i":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":1}}},"n":{"docs":{},"df":0,"c":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":2}}},"d":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":2.0},"https://dynamis.gg/fru/p3/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":2.8284271247461903},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":6,"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951}},"df":1}}}}},"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"g":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":3}}}},"j":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"i":{"docs":{},"df":0,"a":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}}},"o":{"docs":{},"df":0,"y":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":2}}},"m":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":2}}}},"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}},"u":{"docs":{},"df":0,"g":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":2.23606797749979}},"df":4}}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"g":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p3/":{"tf":2.0},"https://dynamis.gg/fru/p4/":{"tf":2.0},"https://dynamis.gg/fru/p5/":{"tf":2.0}},"df":6}}},"s":{"docs":{},"df":0,"u":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951}},"df":1,"r":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}},"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}},"i":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":3.1622776601683795},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":5},"t":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}},"w":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951}},"df":1}}}}},"q":{"docs":{},"df":0,"u":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":3}},"i":{"docs":{},"df":0,"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}}}}}}}},"r":{"docs":{},"df":0,"u":{"docs":{},"df":0,"p":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":3}}}},"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"y":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}},"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}},"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"a":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}}}},"t":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1},"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":2.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3}}}},"v":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}}},"e":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3},"r":{"docs":{},"df":0,"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951}},"df":2}}}},"y":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p3/":{"tf":2.0},"https://dynamis.gg/fru/p4/":{"tf":2.6457513110645907}},"df":6,"e":{"docs":{},"df":0,"’":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":2}}}},"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}}},"w":{"docs":{},"df":0,"a":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}}},"x":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":3,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":2.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":4}}}},"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":3.605551275463989},"https://dynamis.gg/fru/p5/":{"tf":2.449489742783178}},"df":2,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"—":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}}}}},"m":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}},"c":{"docs":{},"df":0,"e":{"docs":{},"df":0,"p":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":2}}}},"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.0},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":4}}}},"i":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}},"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":2}}},"i":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":5.0990195135927845},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":2.0}},"df":5,"i":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}},"o":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.0},"https://dynamis.gg/fru/p1/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":2.0},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":5},"s":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":3.0}},"df":3,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"s":{"docs":{},"df":0,"1":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1}}},"2":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}},"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}},"3":{"docs":{},"df":0,"r":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1}}},"4":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1}}},"5":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1}}},"6":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}},"a":{"docs":{},"df":0,"k":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":2.23606797749979}},"df":1}}},"o":{"docs":{},"df":0,"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1}}}}}}}}}}}},"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}},"r":{"docs":{},"df":0,"a":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2},"e":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}}},"f":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":2.23606797749979}},"df":4},"t":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}},"d":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}},"i":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":2.0}},"df":1}}},"l":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":5}},"m":{"docs":{},"df":0,"i":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":2}}}}}},"n":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2},"r":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":4,"t":{"docs":{},"df":0,"h":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":2}}}}}},"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}},"t":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":2.8284271247461903},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":4,"b":{"docs":{},"df":0,"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":4.242640687119285},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":2}}}}}}},"y":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}},"e":{"docs":{},"df":0,"l":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}},"t":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951}},"df":2}}}},"w":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":5,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":2}}}},"f":{"docs":{},"df":0,"8":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}},"i":{"docs":{},"df":0,"f":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}}},"g":{"docs":{},"df":0,"h":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":2.0}},"df":6}}},"l":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1}},"n":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":2.6457513110645907}},"df":4}},"i":{"docs":{},"df":0,"s":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}}}},"r":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p1/":{"tf":3.1622776601683795},"https://dynamis.gg/fru/p3/":{"tf":2.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":4},"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p1/":{"tf":2.0},"https://dynamis.gg/fru/p2/":{"tf":3.872983346207417},"https://dynamis.gg/fru/p3/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":3.1622776601683795},"https://dynamis.gg/fru/p5/":{"tf":3.0}},"df":6}}},"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}},"v":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}},"x":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"m":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951}},"df":1}},"v":{"docs":{},"df":0,"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}},"i":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1},"o":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951}},"df":2}},"o":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":4,".":{"docs":{},"df":0,"[":{"docs":{},"df":0,"3":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}}},"o":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1,"g":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951}},"df":1},"l":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1},"l":{"docs":{},"df":0,"o":{"docs":{},"df":0,"w":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p5/":{"tf":2.23606797749979}},"df":5}}}},"o":{"docs":{},"df":0,"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"g":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1}},"h":{"docs":{},"df":0,"o":{"docs":{},"df":0,"l":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}}}}}},"r":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":3},"m":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":2.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3}},"u":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p2/":{"tf":4.123105625617661},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":2.0},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":6}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}},"g":{"docs":{},"df":0,"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p4/":{"tf":3.3166247903554},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":3}}}}},"m":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}},"e":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":2,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}},"z":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":3}}},"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"i":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951}},"df":1}}}},"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":5,"—":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}}}},"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p4/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":5}},"z":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}},"u":{"docs":{"https://dynamis.gg/fru/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":2,"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}}}},"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"g":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":2.0}},"df":1}}}},"l":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":5}},"n":{"docs":{},"df":0,"n":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}},"r":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}},"t":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/":{"tf":1.0},"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":8}}}}},"g":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"a":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":2.0},"https://dynamis.gg/fru/p3/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p4/":{"tf":3.0}},"df":3,"’":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":3}},"n":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}},"m":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}},"p":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1},"u":{"docs":{},"df":0,"g":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1}},"z":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}},"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}},"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}},"h":{"docs":{},"df":0,"o":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}},"i":{"docs":{},"df":0,"v":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":3,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":5}}}},"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}}}},"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":2.23606797749979}},"df":1}},"w":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":2.23606797749979}},"df":3}}},"o":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p2/":{"tf":3.1622776601683795},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":3.872983346207417},"https://dynamis.gg/fru/p5/":{"tf":2.449489742783178}},"df":7,"e":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":5},"l":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1,"e":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951}},"df":1}}}},"o":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}}},"p":{"docs":{},"df":0,"o":{"docs":{},"df":0,"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}},"p":{"docs":{},"df":0,"h":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}}}}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":2}},"e":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}},"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":4}}},"w":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}},"u":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}}}},"d":{"docs":{},"df":0,"i":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}}},"i":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/":{"tf":1.0},"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":8}},"n":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.4142135623730951}},"df":1}}}}},"p":{"docs":{},"df":0,"o":{"docs":{},"df":0,"w":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}}}}}}},"h":{"docs":{},"df":0,"1":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.0}},"df":1},"2":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.0}},"df":1},"a":{"docs":{},"df":0,"l":{"docs":{},"df":0,"f":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":2,"w":{"docs":{},"df":0,"a":{"docs":{},"df":0,"y":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}},"l":{"docs":{},"df":0,"o":{"docs":{},"df":0,"w":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":2.449489742783178}},"df":2}}},"o":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":2.8284271247461903},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":2}},"m":{"docs":{},"df":0,"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951}},"df":2}}}},"p":{"docs":{},"df":0,"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":3}}}},"r":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}},"m":{"docs":{},"df":0,"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"s":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}}}}},"v":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2,"n":{"docs":{},"df":0,"’":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772}},"df":2,"s":{"docs":{},"df":0,"—":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{},"df":0,"s":{"docs":{},"df":0,"o":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}}},"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951}},"df":1}},"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":2}}},"r":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1}},"v":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.7320508075688772}},"df":1,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}},"i":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":5}}},"h":{"docs":{},"df":0,"e":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}}},"l":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1,"'":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}},"p":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}},"r":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2},"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{},"df":0,"f":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":2}}}},"—":{"docs":{},"df":0,"b":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}}}},"x":{"docs":{},"df":0,"a":{"docs":{},"df":0,"g":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}}},"i":{"docs":{},"df":0,"e":{"docs":{},"df":0,"m":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}}}},"g":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":1}},"n":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}},"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.23606797749979},"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p1/":{"tf":3.872983346207417},"https://dynamis.gg/fru/p2/":{"tf":3.0},"https://dynamis.gg/fru/p4/":{"tf":4.0},"https://dynamis.gg/fru/p5/":{"tf":3.3166247903554}},"df":6,"b":{"docs":{},"df":0,"o":{"docs":{},"df":0,"x":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}},"o":{"docs":{},"df":0,"l":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1},"e":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1},"i":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":2.23606797749979}},"df":2}},"p":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1,"p":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}},"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"z":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}}},"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1},"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"g":{"docs":{},"df":0,"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":3.3166247903554},"https://dynamis.gg/fru/p4/":{"tf":3.1622776601683795}},"df":2,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"/":{"docs":{},"df":0,"w":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}}}}}}}}}}}}},"s":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":2.0}},"df":1}},"v":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}},"p":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":2.0},"https://dynamis.gg/fru/p4/":{"tf":3.605551275463989}},"df":3},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"v":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{},"df":0,"g":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":1}}}}}}}}},"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}}}},"i":{"docs":{},"df":0,".":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1},"c":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.23606797749979},"https://dynamis.gg/fru/i1/":{"tf":4.0},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":6,"e":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}},"i":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":2}},"d":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3,"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{},"df":0,".":{"docs":{},"df":0,"[":{"docs":{},"df":0,"4":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}}}}}}}},"g":{"docs":{},"df":0,"n":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}},"i":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":2.0}},"df":2,"i":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":4.358898943540674},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":2.0},"https://dynamis.gg/fru/p3/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p4/":{"tf":2.0}},"df":5}},"m":{"docs":{},"df":0,"a":{"docs":{},"df":0,"g":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2,"e":{"docs":{},"df":0,"—":{"docs":{},"df":0,"w":{"docs":{},"df":0,"i":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}}}}}},"b":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":1}}}}}},"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"d":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":6}}},"u":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}},"p":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}}}},"s":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}},"n":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}}}}},"c":{"docs":{},"df":0,"l":{"docs":{},"df":0,"u":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}},"o":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":2}}}}},"d":{"docs":{},"df":0,"e":{"docs":{},"df":0,"f":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951}},"df":1}}}}}},"i":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p3/":{"tf":2.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":2.0}},"df":5},"v":{"docs":{},"df":0,"i":{"docs":{},"df":0,"d":{"docs":{},"df":0,"u":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}}},"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}},"f":{"docs":{},"df":0,"a":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}},"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}},"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.8284271247461903},"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p1/":{"tf":2.8284271247461903},"https://dynamis.gg/fru/p2/":{"tf":3.3166247903554},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":2.6457513110645907}},"df":7}}}},"o":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}},"i":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":3}}},"k":{"docs":{},"df":0,"o":{"docs":{},"df":0,"m":{"docs":{},"df":0,"p":{"docs":{},"df":0,"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}}}}}},"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}},"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951}},"df":1}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"k":{"docs":{},"df":0,"i":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}},"n":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1},"t":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":2}}}}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":5}}}}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{},"df":0,"—":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}}},"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951}},"df":1}}},"c":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"d":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772}},"df":3}}}}}},"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1,"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"g":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}}}}},"m":{"docs":{},"df":0,"i":{"docs":{},"df":0,"s":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":2.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":5,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"—":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}}}}}}}}}}},"r":{"docs":{},"df":0,"o":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":2}}},"v":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951}},"df":1}}},"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}}}},"n":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951}},"df":2}}},"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1,".":{"docs":{},"df":0,"[":{"docs":{},"df":0,"1":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}},"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":3}}}}}}},"r":{"docs":{},"df":0,"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"v":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}}}}}},"s":{"docs":{},"df":0,"n":{"docs":{},"df":0,"’":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":5}}}},"t":{"docs":{},"df":0,"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{},"df":0,"f":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":3}}}},"’":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p3/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p4/":{"tf":2.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":5}},"’":{"docs":{},"df":0,"l":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}},"m":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":2},"v":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1}}},"j":{"docs":{},"df":0,"a":{"docs":{},"df":0,"p":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1}}}}}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{},"df":0,"o":{"docs":{},"df":0,"u":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}},"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"y":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}},"u":{"docs":{},"df":0,"d":{"docs":{},"df":0,"g":{"docs":{},"df":0,"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}}},"m":{"docs":{},"df":0,"p":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}}},"k":{"docs":{},"df":0,"e":{"docs":{},"df":0,"e":{"docs":{},"df":0,"p":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":3}},"y":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}},"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":3.872983346207417},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":3}},"l":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":5}},"n":{"docs":{},"df":0,"d":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}},"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}},"n":{"docs":{},"df":0,"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"h":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.4142135623730951}},"df":1}}}},"o":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":6,"b":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":2.8284271247461903}},"df":3}}}}}},"w":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}}},"o":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.7320508075688772}},"df":1,"'":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1}},"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}},"n":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1},"g":{"docs":{},"df":0,"u":{"docs":{},"df":0,"a":{"docs":{},"df":0,"g":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1}}}}},"p":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1},"r":{"docs":{},"df":0,"g":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.23606797749979},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":2.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":5,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}}},"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951}},"df":1}},"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":2.449489742783178}},"df":4}},"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772}},"df":5}}},"w":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1},"y":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}},"b":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1,"3":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":2}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1},"p":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":1},"v":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":4}},"f":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":2.23606797749979}},"df":5}},"g":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}},"n":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}},"s":{"docs":{},"df":0,"b":{"docs":{},"df":0,"i":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1}}}}},"t":{"docs":{},"df":0,"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":3.0},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":5}}}},"v":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}},"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951}},"df":1}}}},"i":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1,"f":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951}},"df":2}},"g":{"docs":{},"df":0,"h":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":4.123105625617661},"https://dynamis.gg/fru/i1/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":4.123105625617661},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":2.8284271247461903},"https://dynamis.gg/fru/p5/":{"tf":3.7416573867739413}},"df":7,"'":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2},"n":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":3.0}},"df":1},"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"e":{"docs":{},"df":0,"p":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":3}}}}},"—":{"docs":{},"df":0,"b":{"docs":{},"df":0,"u":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}}}},"m":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1}}},"n":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":2.0},"https://dynamis.gg/fru/p2/":{"tf":2.8284271247461903},"https://dynamis.gg/fru/p3/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":2.0},"https://dynamis.gg/fru/p5/":{"tf":3.872983346207417}},"df":6,"[":{"docs":{},"df":0,"2":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}},"s":{"docs":{},"df":0,"—":{"docs":{},"df":0,"w":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}}},"’":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}},"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}},"t":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951}},"df":2}}}},"o":{"docs":{},"df":0,"b":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}},"c":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":2}},"k":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":2.23606797749979}},"df":1}},"g":{"docs":{},"df":0,"h":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"f":{"docs":{},"df":0,"’":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}}},"n":{"docs":{},"df":0,"g":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":6,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}},"o":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":5},"p":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":3}},"r":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}},"s":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1},"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":2}},"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2},"u":{"docs":{},"df":0,"d":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}},"w":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1},"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}},"p":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":4},"u":{"docs":{},"df":0,"c":{"docs":{},"df":0,"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"z":{"docs":{},"df":0,"i":{"docs":{},"df":0,"a":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}},"m":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951}},"df":1}}},"n":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}},"m":{"docs":{},"df":0,"1":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.0}},"df":1},"2":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.0}},"df":1},"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"i":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.0}},"df":1}}}}}}},"e":{"docs":{},"df":0,"l":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"r":{"docs":{},"df":0,"o":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":2.449489742783178}},"df":1}}}}}}},"g":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":2.0}},"df":2},"i":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":5}}},"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"a":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}},"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":2.0}},"df":4,"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}}}}}},"k":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":2.0},"https://dynamis.gg/fru/p3/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":2.449489742783178}},"df":6}},"n":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":4,"f":{"docs":{},"df":0,"o":{"docs":{},"df":0,"l":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951}},"df":1}}}}}},"r":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":3.3166247903554},"https://dynamis.gg/fru/p1/":{"tf":3.1622776601683795},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":5,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":3.3166247903554},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":4}}}},"s":{"docs":{},"df":0,"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"v":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":4}}}},"t":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}},"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772}},"df":1,"a":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"z":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,".":{"docs":{},"df":0,"[":{"docs":{},"df":0,"1":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}}}}}}}}}}},"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}}},"x":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1,"i":{"docs":{},"df":0,"m":{"docs":{},"df":0,"u":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":2},"s":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}},"c":{"docs":{},"df":0,"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/":{"tf":1.0},"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p1/":{"tf":2.8284271247461903},"https://dynamis.gg/fru/p2/":{"tf":3.872983346207417},"https://dynamis.gg/fru/p3/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p4/":{"tf":3.872983346207417},"https://dynamis.gg/fru/p5/":{"tf":2.449489742783178}},"df":8}}}},"l":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1},"t":{"docs":{},"df":0,"d":{"docs":{},"df":0,"o":{"docs":{},"df":0,"w":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951}},"df":1}}}},"s":{"docs":{},"df":0,"[":{"docs":{},"df":0,"1":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}}}}},"m":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":4},"y":{"docs":{},"df":0,"'":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":2}}}}},"r":{"docs":{},"df":0,"g":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1}},"s":{"docs":{},"df":0,"s":{"docs":{},"df":0,"a":{"docs":{},"df":0,"g":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}},"i":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}}},"d":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":2,"e":{"docs":{},"df":0,"—":{"docs":{},"df":0,"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}}}}}}}}},"g":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}},"k":{"docs":{},"df":0,"a":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}},"n":{"docs":{},"df":0,"u":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}},"r":{"docs":{},"df":0,"r":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":3.872983346207417}},"df":1}}}},"s":{"docs":{},"df":0,"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}},"s":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":2}},"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2,"i":{"docs":{},"df":0,"g":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":2.449489742783178}},"df":2,"a":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"/":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}}}}}}}},"r":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":2}}}}},"o":{"docs":{},"df":0,"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":2}}}},"n":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.4142135623730951}},"df":1}},"r":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p2/":{"tf":2.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":6},"n":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":3.7416573867739413},"https://dynamis.gg/fru/p5/":{"tf":3.0}},"df":2,"–":{"docs":{},"df":0,"m":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":3}}}},"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}}},"v":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p2/":{"tf":3.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":2.0}},"df":4}}},"t":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.0}},"df":1},"u":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951}},"df":1}},"l":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"p":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}}}},"n":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1,"a":{"docs":{},"df":0,"m":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":2}},"r":{"docs":{},"df":0,"r":{"docs":{},"df":0,"o":{"docs":{},"df":0,"w":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3}}}},"t":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}},"u":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":3}}},"e":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3,"a":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":2,"b":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.0},"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":2}},"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":7}}}}},"c":{"docs":{},"df":0,"k":{"docs":{},"df":0,"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}}}},"e":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":5}},"v":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":3}}},"w":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.7320508075688772}},"df":1,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}}},"x":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":2.0},"https://dynamis.gg/fru/p2/":{"tf":2.0},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":6}}},"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1},"k":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}},"n":{"docs":{},"df":0,"j":{"docs":{},"df":0,"a":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.4142135623730951}},"df":1}},"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}}}},"o":{"docs":{},"df":0,"b":{"docs":{},"df":0,"o":{"docs":{},"df":0,"d":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}}},"n":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772}},"df":1,"e":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}},"r":{"docs":{},"df":0,"m":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}},"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":2.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":4,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1,"m":{"docs":{},"df":0,"o":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}}}}}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3}}},"e":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":7}},"v":{"docs":{},"df":0,"a":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}},"w":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":4,"d":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}}}}},"u":{"docs":{},"df":0,"m":{"docs":{},"df":0,"b":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}}}},"w":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3},"y":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"a":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}},"o":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"v":{"docs":{},"df":0,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}}}}}}},"c":{"docs":{},"df":0,"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951}},"df":1}}}},"d":{"docs":{},"df":0,"d":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3}}}},"f":{"docs":{},"df":0,"f":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"/":{"docs":{},"df":0,"w":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}}}}},"s":{"docs":{},"df":0,"a":{"docs":{},"df":0,"f":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}},"e":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}},"h":{"docs":{},"df":0,"i":{"docs":{},"df":0,"v":{"docs":{},"df":0,"a":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}}},"k":{"docs":{},"df":0,"a":{"docs":{},"df":0,"y":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}},"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p4/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":5}}},"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.449489742783178},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":2.8284271247461903},"https://dynamis.gg/fru/p2/":{"tf":3.3166247903554},"https://dynamis.gg/fru/p3/":{"tf":3.3166247903554},"https://dynamis.gg/fru/p4/":{"tf":3.4641016151377544},"https://dynamis.gg/fru/p5/":{"tf":3.7416573867739413}},"df":7,"c":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":2.0}},"df":3}},"p":{"docs":{},"df":0,"p":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"t":{"docs":{},"df":0,"u":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3}}}},"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":2}}}}},"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p3/":{"tf":2.0},"https://dynamis.gg/fru/p4/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":4,"e":{"docs":{},"df":0,"'":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":2.23606797749979}},"df":1},"’":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}}}}},"b":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":3.3166247903554},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":3,"i":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}},"d":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":4}}},"i":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3}}},"g":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":4}}}}},"t":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.0}},"df":1,"h":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"w":{"docs":{},"df":0,"i":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":4}}}}}}},"u":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}},"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":3.1622776601683795},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":5,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1,"m":{"docs":{},"df":0,"o":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}}},"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951}},"df":1}}},"w":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}}},"v":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":4,"a":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1,"l":{"docs":{},"df":0,"—":{"docs":{},"df":0,"p":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}}}}}}}},"f":{"docs":{},"df":0,"l":{"docs":{},"df":0,"o":{"docs":{},"df":0,"w":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951}},"df":1}}}}}}}},"p":{"docs":{},"df":0,"a":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}}},"g":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}},"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1},"r":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":4}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.4142135623730951}},"df":1}}}}},"n":{"docs":{},"df":0,"d":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":3.605551275463989}},"df":1,"'":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1},",":{"docs":{},"df":0,"[":{"docs":{},"df":0,"1":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}},"—":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}},"’":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":1}}}}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{},"df":0,"i":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":2.449489742783178}},"df":1}}}},"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":2,"i":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":2.0},"https://dynamis.gg/fru/p4/":{"tf":3.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":5,"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}}}}}}},"y":{"docs":{},"df":0,"’":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}},"s":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2,"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}}}}},"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3},"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3}}}}},"y":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":2}},"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}}}}},"r":{"docs":{},"df":0,"f":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}},"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}},"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"p":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}},"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}},"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}}}}}}},"s":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":3}}}}},"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":3.0},"https://dynamis.gg/fru/i1/":{"tf":3.605551275463989},"https://dynamis.gg/fru/p1/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p2/":{"tf":3.4641016151377544},"https://dynamis.gg/fru/p3/":{"tf":3.0},"https://dynamis.gg/fru/p4/":{"tf":4.58257569495584},"https://dynamis.gg/fru/p5/":{"tf":3.1622776601683795}},"df":7}}},"y":{"docs":{},"df":0,"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":4}}}}},"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{},"df":0,"o":{"docs":{},"df":0,"m":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.0}},"df":1}}}}}}},"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":1}}},"n":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":4}},"y":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":3.605551275463989},"https://dynamis.gg/fru/i1/":{"tf":2.0},"https://dynamis.gg/fru/p1/":{"tf":5.196152422706632},"https://dynamis.gg/fru/p2/":{"tf":5.744562646538029},"https://dynamis.gg/fru/p3/":{"tf":3.1622776601683795},"https://dynamis.gg/fru/p4/":{"tf":5.744562646538029},"https://dynamis.gg/fru/p5/":{"tf":4.58257569495584}},"df":7,"s":{"docs":{},"df":0,"–":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}}}}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}},"n":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}},"u":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}},"o":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":1,"i":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1}}}}},"p":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1},"r":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}}}}}},"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":3.1622776601683795},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":5,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"s":{"docs":{},"df":0,"n":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{},"df":0,"/":{"docs":{},"df":0,"s":{"docs":{},"df":0,"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}}}}}}}}}}}}},"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":2}}},"i":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":3}}}},"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}},"v":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":4},"w":{"docs":{},"df":0,"d":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":2.23606797749979}},"df":2}}},"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772}},"df":3}}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":2}}}}},"e":{"docs":{},"df":0,"d":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}},"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}},"v":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951}},"df":2}}},"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"u":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}}},"y":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951}},"df":2}},"i":{"docs":{},"df":0,"m":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}},"n":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{},"df":0,"p":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":2.0},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":3}}}},"s":{"docs":{},"df":0,"m":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}}}},"o":{"docs":{},"df":0,"c":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":3}},"d":{"docs":{},"df":0,"u":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":3}}},"g":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":2,"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}}}}},"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}},"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}},"c":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}},"v":{"docs":{},"df":0,"i":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}},"o":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}},"x":{"docs":{},"df":0,"i":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}}}},"u":{"docs":{},"df":0,"d":{"docs":{},"df":0,"d":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":2.23606797749979}},"df":3}}},"l":{"docs":{},"df":0,"s":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951}},"df":1}}}},"r":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951}},"df":2},"p":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":2}}},"s":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}},"t":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}},"q":{"docs":{},"df":0,"u":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{},"df":0,"r":{"docs":{},"df":0,"u":{"docs":{},"df":0,"p":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}}}},"r":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}},"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":2}}}}}},"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}},"e":{"docs":{},"df":0,"t":{"docs":{},"df":0,"u":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}},"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":5}}}},"r":{"docs":{},"df":0,"1":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.0}},"df":1},"2":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.0}},"df":1},"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}},"d":{"docs":{},"df":0,"i":{"docs":{},"df":0,"u":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}},"i":{"docs":{},"df":0,"d":{"docs":{},"df":0,"p":{"docs":{},"df":0,"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}},"w":{"docs":{},"df":0,"i":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p2/":{"tf":3.0},"https://dynamis.gg/fru/p3/":{"tf":2.0},"https://dynamis.gg/fru/p4/":{"tf":3.1622776601683795},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":6}}}},"n":{"docs":{},"df":0,"b":{"docs":{},"df":0,"o":{"docs":{},"df":0,"w":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}},"s":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}},"m":{"docs":{},"df":0,"p":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2,"6":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}}},"n":{"docs":{},"df":0,"d":{"docs":{},"df":0,"o":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p2/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":2.6457513110645907}},"df":5,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":2}}}}}},"p":{"docs":{},"df":0,"i":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}}}}},"r":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}},"y":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951}},"df":2}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2},"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951}},"df":1}}}}},"l":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":2}}},"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.4142135623730951}},"df":1}},"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":2.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":3}}}}}},"c":{"docs":{},"df":0,"e":{"docs":{},"df":0,"i":{"docs":{},"df":0,"v":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p3/":{"tf":3.872983346207417},"https://dynamis.gg/fru/p4/":{"tf":4.358898943540674},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":7}},"n":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"g":{"docs":{},"df":0,"—":{"docs":{},"df":0,"s":{"docs":{},"df":0,"h":{"docs":{},"df":0,"i":{"docs":{},"df":0,"v":{"docs":{},"df":0,"a":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}}}}}}}}}},"o":{"docs":{},"df":0,"g":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}},"r":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}},"d":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.0}},"df":3,"u":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.449489742783178},"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":2,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}}}},"f":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}},"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":3.0}},"df":1,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"’":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772}},"df":1}}}}}}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}}}},"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"g":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772}},"df":2}}}},"g":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":2.0}},"df":1}},"r":{"docs":{},"df":0,"d":{"docs":{},"df":0,"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}}},"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}}}},"l":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":1}},"v":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}},"i":{"docs":{},"df":0,"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}},"m":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":4,"d":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}}}},"e":{"docs":{},"df":0,"m":{"docs":{},"df":0,"b":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}},"o":{"docs":{},"df":0,"v":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951}},"df":1}}},"n":{"docs":{},"df":0,"d":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}}}},"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}}},"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":2.0},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":3,"e":{"docs":{},"df":0,"d":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951}},"df":1}}},"o":{"docs":{},"df":0,"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}},"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}},"q":{"docs":{},"df":0,"u":{"docs":{},"df":0,"i":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":3}}}},"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":2.0}},"df":3}}},"o":{"docs":{},"df":0,"l":{"docs":{},"df":0,"v":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":2.8284271247461903}},"df":3}},"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/":{"tf":1.0}},"df":1}}}},"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":1}}}},"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":4,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951}},"df":1}}}}},"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3}}}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}},"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":3.4641016151377544},"https://dynamis.gg/fru/p3/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p4/":{"tf":2.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":4}}}},"w":{"docs":{},"df":0,"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}},"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/":{"tf":1.0},"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":8}}}}}}}},"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772}},"df":1}}},"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"h":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":2.0},"https://dynamis.gg/fru/p5/":{"tf":2.23606797749979}},"df":5}}},"n":{"docs":{},"df":0,"g":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}},"o":{"docs":{},"df":0,"l":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951}},"df":2,"2":{"docs":{},"df":0,"×":{"docs":{},"df":0,"1":{"docs":{},"df":0,"×":{"docs":{},"df":0,"1":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}}}},"o":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3,"m":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":1}}}}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951}},"df":2}}},"u":{"docs":{},"df":0,"g":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":4}}}}}},"u":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":2}},"y":{"docs":{},"df":0,"n":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":2.0}},"df":3}}}},"s":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2,"a":{"docs":{},"df":0,"f":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":2.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":3}},"g":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.4142135623730951}},"df":1}},"m":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p2/":{"tf":3.3166247903554},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p5/":{"tf":3.4641016151377544}},"df":5},"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.4142135623730951}},"df":1}}}}},"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"s":{"docs":{},"df":0,"f":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}}}},"v":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":4}}},"b":{"docs":{},"df":0,"o":{"docs":{},"df":0,"s":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}},"c":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}}},"h":{"docs":{},"df":0,"o":{"docs":{},"df":0,"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.4142135623730951}},"df":1}}}}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}},"y":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":2.6457513110645907}},"df":1}}}},"d":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}}},"e":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1,"a":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}},"b":{"docs":{},"df":0,"a":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}},"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.0},"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p1/":{"tf":3.0},"https://dynamis.gg/fru/p2/":{"tf":3.7416573867739413},"https://dynamis.gg/fru/p3/":{"tf":3.605551275463989},"https://dynamis.gg/fru/p4/":{"tf":4.242640687119285},"https://dynamis.gg/fru/p5/":{"tf":2.449489742783178}},"df":7}}},"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}}}},"d":{"docs":{},"df":0,"g":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}},"e":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":3},"n":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}},"g":{"docs":{},"df":0,"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}},"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}},"n":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}},"p":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}},"q":{"docs":{},"df":0,"u":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":3.1622776601683795},"https://dynamis.gg/fru/p2/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p3/":{"tf":2.0},"https://dynamis.gg/fru/p4/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p5/":{"tf":3.0}},"df":5}}}}},"r":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":3,"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}},"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":2.0},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":5},"v":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}},"x":{"docs":{},"df":0,"t":{"docs":{},"df":0,"u":{"docs":{},"df":0,"p":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}}},"f":{"docs":{},"df":0,"i":{"docs":{},"df":0,"r":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}},"g":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"a":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}},"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{},"df":0,"o":{"docs":{},"df":0,"w":{"docs":{},"df":0,"e":{"docs":{},"df":0,"y":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":2}}}}},"p":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}},"r":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}},"s":{"docs":{},"df":0,"'":{"docs":{},"df":0,"o":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}},"t":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.7320508075688772}},"df":1}}}}},"e":{"docs":{},"df":0,"’":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1,"l":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}},"i":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":2}}},"n":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}},"v":{"docs":{},"df":0,"a":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p2/":{"tf":3.3166247903554},"https://dynamis.gg/fru/p4/":{"tf":3.4641016151377544}},"df":3,"‘":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1},"’":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":2.23606797749979}},"df":2}}}},"o":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{},"df":0,"w":{"docs":{},"df":0,"a":{"docs":{},"df":0,"v":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951}},"df":1}}}}},"o":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}},"r":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":2,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":3}}}},"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":2,"s":{"docs":{},"df":0,".":{"docs":{},"df":0,"[":{"docs":{},"df":0,"3":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}},"w":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":1,"n":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}},"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}},"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{},"df":0,"e":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}},"d":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":4.0}},"df":3}},"g":{"docs":{},"df":0,"n":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}},"i":{"docs":{},"df":0,"f":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.7320508075688772}},"df":1}}}}}}}}}}},"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":2.0}},"df":1},"t":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":3}}},"v":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}},"m":{"docs":{},"df":0,"i":{"docs":{},"df":0,"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":3}}}},"p":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1,"i":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2,"f":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}},"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772}},"df":2}}}}}},"n":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"z":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.7320508075688772}},"df":1}}},"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":2.0},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951}},"df":5}}}}},"g":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":4}},"k":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1},"s":{"docs":{},"df":0,"m":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":2.0}},"df":1}},"o":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":2.0}},"df":1}}}}},"x":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":2.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":3,"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}},"z":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}}},"k":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2,"p":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1},"p":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}},"i":{"docs":{},"df":0,"d":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772}},"df":2}},"g":{"docs":{},"df":0,"h":{"docs":{},"df":0,"t":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3}}}}}},"o":{"docs":{},"df":0,"w":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":1,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}},"m":{"docs":{},"df":0,"a":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"r":{"docs":{},"df":0,"o":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":1}}}}}}},"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"r":{"docs":{},"df":0,"o":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}},"l":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":6}}}},"n":{"docs":{},"df":0,"a":{"docs":{},"df":0,"p":{"docs":{},"df":0,"s":{"docs":{},"df":0,"h":{"docs":{},"df":0,"o":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.8284271247461903},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":2.449489742783178}},"df":4}}}}}},"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{},"df":0,"/":{"docs":{},"df":0,"s":{"docs":{},"df":0,"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":1}}}}}}}}}}},"o":{"docs":{},"df":0,"a":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":2.0}},"df":4}},"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}},"o":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1},"u":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}},"v":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951}},"df":1}},"m":{"docs":{},"df":0,"b":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}},"e":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}},"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":4}}}}},"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1,"!":{"docs":{},"df":0,"—":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}}},"r":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1},"o":{"docs":{},"df":0,"w":{"docs":{},"df":0,"'":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}},"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}},"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1,"e":{"docs":{},"df":0,"t":{"docs":{},"df":0,"o":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}}},"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":4}}}},"p":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}},"w":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":2.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":4}}},"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3}}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}}}}},"e":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}},"l":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":4.0},"https://dynamis.gg/fru/p3/":{"tf":3.605551275463989},"https://dynamis.gg/fru/p4/":{"tf":3.4641016151377544}},"df":3}}},"i":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":1}}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"y":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}},"o":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p2/":{"tf":2.8284271247461903},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":3,"8":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}},"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"k":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}},"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"p":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}},"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}},"h":{"docs":{},"df":0,"i":{"docs":{},"df":0,"v":{"docs":{},"df":0,"a":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}},"p":{"docs":{},"df":0,"i":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":4.123105625617661},"https://dynamis.gg/fru/p1/":{"tf":3.0},"https://dynamis.gg/fru/p2/":{"tf":4.242640687119285},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":3.0},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":6,"/":{"docs":{},"df":0,"s":{"docs":{},"df":0,"p":{"docs":{},"df":0,"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}}}}}},"s":{"docs":{},"df":0,"8":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}},"g":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951}},"df":1}},"n":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772}},"df":2}},"r":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1,"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":2.6457513110645907}},"df":5}},"y":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":2}},"e":{"docs":{},"df":0,"p":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}},"i":{"docs":{},"df":0,"l":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p2/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p4/":{"tf":2.0}},"df":4}}},"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951}},"df":1}},"r":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"h":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1,"f":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"w":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}}}}}}}},"t":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}},"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"g":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}},"i":{"docs":{},"df":0,"k":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":2.8284271247461903},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":2.0},"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.0}},"df":4}}},"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"g":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.7320508075688772}},"df":1}}}},"u":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":2.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":4}}},"u":{"docs":{},"df":0,"b":{"docs":{},"df":0,"j":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}}},"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"q":{"docs":{},"df":0,"u":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":2}}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}}}}}},"c":{"docs":{},"df":0,"c":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1,"s":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3,"f":{"docs":{},"df":0,"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951}},"df":1}}}}}}}}}},"g":{"docs":{},"df":0,"g":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}},"i":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}},"m":{"docs":{},"df":0,"m":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1,"i":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}},"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":2.0},"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.0}},"df":4}}}},"p":{"docs":{},"df":0,"p":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3,"s":{"docs":{},"df":0,"–":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}}}}}},"r":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2},"p":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}},"r":{"docs":{},"df":0,"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951}},"df":1}}}}},"v":{"docs":{},"df":0,"i":{"docs":{},"df":0,"v":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":2.8284271247461903},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":3}}}},"s":{"docs":{},"df":0,"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.7320508075688772}},"df":1}}}}}},"w":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1,"a":{"docs":{},"df":0,"p":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}},"e":{"docs":{},"df":0,"e":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}},"y":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}},"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":4.58257569495584}},"df":1,"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}},"k":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":5,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":2},"r":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772}},"df":1}}},"l":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}}},"n":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":2.0}},"df":4,"b":{"docs":{},"df":0,"u":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":2.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":6}}}}}},"r":{"docs":{},"df":0,"g":{"docs":{},"df":0,"e":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":4.0},"https://dynamis.gg/fru/i1/":{"tf":2.0},"https://dynamis.gg/fru/p1/":{"tf":3.3166247903554},"https://dynamis.gg/fru/p2/":{"tf":2.8284271247461903},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":3.7416573867739413},"https://dynamis.gg/fru/p5/":{"tf":3.3166247903554}},"df":7,"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,".":{"docs":{},"df":0,"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"q":{"docs":{},"df":0,"u":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}}}}}}}}},"y":{"docs":{},"df":0,"u":{"docs":{},"df":0,"u":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}},"c":{"docs":{},"df":0,"h":{"docs":{},"df":0,"n":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":2}}}}},"e":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}}},"h":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1},"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"g":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"p":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}}}},"p":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":3.0}},"df":2,"e":{"docs":{},"df":0,"d":{"docs":{},"df":0,"—":{"docs":{},"df":0,"b":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}}}}}}}},"l":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}},"m":{"docs":{},"df":0,"p":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951}},"df":1}}}},"n":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1,"k":{"docs":{},"df":0,"a":{"docs":{},"df":0,"y":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}},"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}},"t":{"docs":{},"df":0,"h":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p1/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p2/":{"tf":4.123105625617661},"https://dynamis.gg/fru/p4/":{"tf":4.0},"https://dynamis.gg/fru/p5/":{"tf":3.0}},"df":6}}}},"x":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}},"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":5,"f":{"docs":{},"df":0,"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}}}},"t":{"docs":{},"df":0,"’":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3}}},"e":{"docs":{},"df":0,"i":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}},"m":{"docs":{},"df":0,"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{},"df":0,"v":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3}}}}},"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"f":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":2}}},"’":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":6}}},"y":{"docs":{},"df":0,"’":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":2}}}},"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}},"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":2,"g":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3},"k":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951}},"df":1}},"r":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":2.0}},"df":5}}},"o":{"docs":{},"df":0,"s":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.0}},"df":1}},"u":{"docs":{},"df":0,"g":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":2}}}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p2/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p3/":{"tf":2.8284271247461903},"https://dynamis.gg/fru/p4/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p5/":{"tf":2.449489742783178}},"df":6}},"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"g":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3,"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}}},"w":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}},"u":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2,"n":{"docs":{},"df":0,"d":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}}}}},"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951}},"df":1}},"d":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772}},"df":1}}},"g":{"docs":{},"df":0,"h":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}},"m":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.0},"https://dynamis.gg/fru/p1/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p2/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p3/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":3.3166247903554},"https://dynamis.gg/fru/p5/":{"tf":2.6457513110645907}},"df":6,"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":2}}}}},"t":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}},"l":{"docs":{},"df":0,";":{"docs":{},"df":0,"d":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}},"o":{"docs":{},"df":0,"g":{"docs":{},"df":0,"e":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3}}}},"o":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}},"p":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":2.0}},"df":4},"r":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":4}},"e":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}},"u":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":2}}},"w":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":4}}},"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":2.0},"https://dynamis.gg/fru/p2/":{"tf":3.3166247903554},"https://dynamis.gg/fru/p4/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p5/":{"tf":3.4641016151377544}},"df":5,"4":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1},"s":{"docs":{},"df":0,"6":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951}},"df":1}},"d":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951}},"df":1}}},"f":{"docs":{},"df":0,"f":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}},"i":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":2.449489742783178}},"df":2}},"n":{"docs":{},"df":0,"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":2.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":5}}}},"v":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":2}}}},"i":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"g":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}}}},"o":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951}},"df":1}},"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}}}},"u":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}},"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":3}}},"w":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":2}},"n":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951}},"df":1},"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1}}},"o":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.8284271247461903},"https://dynamis.gg/fru/p1/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p2/":{"tf":4.242640687119285},"https://dynamis.gg/fru/p3/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p4/":{"tf":3.7416573867739413},"https://dynamis.gg/fru/p5/":{"tf":3.0}},"df":6}},"y":{"docs":{},"df":0,"p":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":3}}}}},"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/":{"tf":1.0},"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":8}}}},"n":{"docs":{},"df":0,"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.449489742783178},"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":2}},"s":{"docs":{},"df":0,"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.0}},"df":1}}}}},"v":{"docs":{},"df":0,"o":{"docs":{},"df":0,"i":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}},"b":{"docs":{},"df":0,"r":{"docs":{},"df":0,"o":{"docs":{},"df":0,"k":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.7320508075688772}},"df":1}}}}}},"d":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.0}},"df":3,"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}}}},"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}}}}},"e":{"docs":{},"df":0,"x":{"docs":{},"df":0,"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"d":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}}}}}}},"f":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"t":{"docs":{},"df":0,"u":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}}},"h":{"docs":{},"df":0,"o":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}}},"i":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}},"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}}},"s":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":2}}},"i":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":2.0},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772}},"df":5}}},"m":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}},"s":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"p":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"g":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}}}}}}}}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"g":{"docs":{},"df":0,"e":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772}},"df":3}}}}},"i":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":2}},"r":{"docs":{},"df":0,"u":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}},"p":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":3.0},"https://dynamis.gg/fru/p2/":{"tf":2.8284271247461903},"https://dynamis.gg/fru/p3/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p5/":{"tf":2.23606797749979}},"df":7,"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}}},"l":{"docs":{},"df":0,"o":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":4}}}},"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.7320508075688772}},"df":1}},"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":3}}}},"s":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":2.8284271247461903},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":6,"u":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":3}},"r":{"docs":{},"df":0,"p":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":3.3166247903554},"https://dynamis.gg/fru/p4/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":5}}}}},"v":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1,"a":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}},"o":{"docs":{},"df":0,"u":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":3}}}}},"e":{"docs":{},"df":0,"i":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/i1/":{"tf":3.0},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":3,"’":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}}},"n":{"docs":{},"df":0,"g":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}}}}}},"r":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":2.23606797749979},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":5},"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951}},"df":1}}},"u":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}},"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}},"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.4142135623730951}},"df":1}}},"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}},"u":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":2.23606797749979}},"df":2}}}}},"o":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":2}}},"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.0},"https://dynamis.gg/fru/i1/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p1/":{"tf":2.0},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":6}},"—":{"docs":{},"df":0,"s":{"docs":{},"df":0,"h":{"docs":{},"df":0,"i":{"docs":{},"df":0,"v":{"docs":{},"df":0,"a":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}}}}}}},"w":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":3.872983346207417},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":3.605551275463989},"https://dynamis.gg/fru/p4/":{"tf":3.4641016151377544}},"df":4}},"l":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}},"n":{"docs":{},"df":0,"d":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":2.8284271247461903}},"df":1,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"s":{"docs":{},"df":0,"—":{"docs":{},"df":0,"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"g":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}}}}}}},"t":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":2}},"r":{"docs":{},"df":0,"d":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"’":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}}}},"n":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":3},"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.4142135623730951}},"df":1}}}}},"s":{"docs":{},"df":0,"n":{"docs":{},"df":0,"’":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}},"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":3}}},"v":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":4.242640687119285},"https://dynamis.gg/fru/p3/":{"tf":2.0},"https://dynamis.gg/fru/p5/":{"tf":2.23606797749979}},"df":4,"p":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}}}},"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}}},"t":{"docs":{},"df":0,"h":{"docs":{},"df":0,"i":{"docs":{},"df":0,"r":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}}}},"y":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":2.8284271247461903},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":4}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"p":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}},"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"h":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":2}}}},"l":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":4}},"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":2.449489742783178},"https://dynamis.gg/fru/p4/":{"tf":2.23606797749979}},"df":2}}},"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"v":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}},"’":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}},"e":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":2}}}}},"i":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.4142135623730951}},"df":1}}},"o":{"docs":{},"df":0,"e":{"docs":{},"df":0,"v":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":2}}}},"’":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}},"i":{"docs":{},"df":0,"d":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":2,"r":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}},"t":{"docs":{},"df":0,"h":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":3}}},"l":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}},"n":{"docs":{},"df":0,"d":{"docs":{},"df":0,"o":{"docs":{},"df":0,"w":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1}}},"g":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":2.6457513110645907},"https://dynamis.gg/fru/p5/":{"tf":3.7416573867739413}},"df":2,"/":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}},"p":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":5}},"t":{"docs":{},"df":0,"h":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":2}},"o":{"docs":{},"df":0,"t":{"docs":{},"df":0,"u":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}},"u":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":2.0},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772},"https://dynamis.gg/fru/p5/":{"tf":1.7320508075688772}},"df":4}}}}}},"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"’":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}},"r":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1},"k":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951}},"df":1}},"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"d":{"docs":{},"df":0,"n":{"docs":{},"df":0,"’":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"p":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":3}}},"y":{"docs":{},"df":0,"r":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1,"'":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1},"c":{"docs":{},"df":0,"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"w":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":2}}}},"f":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"g":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":2}}}}}}}},"y":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951}},"df":1,"e":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1,"l":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1,"o":{"docs":{},"df":0,"w":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":2.0},"https://dynamis.gg/fru/p4/":{"tf":1.7320508075688772}},"df":3}}}}},"o":{"docs":{},"df":0,"s":{"docs":{},"df":0,"h":{"docs":{},"df":0,"i":{"docs":{},"df":0,"p":{"docs":{},"df":0,"’":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}},"u":{"docs":{},"df":0,"’":{"docs":{},"df":0,"v":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":2}}}}},"z":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"o":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":3}}},"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":2}}}}}},"description":{"root":{"docs":{},"df":0,"1":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951}},"df":1},"2":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951}},"df":2},"3":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951}},"df":2},"4":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951}},"df":1},"5":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":1},"a":{"docs":{},"df":0,"p":{"docs":{},"df":0,"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{},"df":0,"i":{"docs":{},"df":0,"x":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}}}}}}}},"b":{"docs":{},"df":0,"e":{"docs":{},"df":0,"t":{"docs":{},"df":0,"w":{"docs":{},"df":0,"e":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}}}}}},"u":{"docs":{},"df":0,"f":{"docs":{},"df":0,"f":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}},"r":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.0}},"df":1}}}}},"c":{"docs":{},"df":0,"r":{"docs":{},"df":0,"y":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951}},"df":1}}}}}}},"d":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}},"e":{"docs":{},"df":0,")":{"docs":{},"df":0,"b":{"docs":{},"df":0,"u":{"docs":{},"df":0,"f":{"docs":{},"df":0,"f":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}}}}}}},"f":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"b":{"docs":{},"df":0,"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}}}}}}},"r":{"docs":{},"df":0,"o":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}},"u":{"docs":{"https://dynamis.gg/fru/":{"tf":1.0}},"df":1}},"u":{"docs":{},"df":0,"t":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/":{"tf":1.0},"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":8}}}}},"g":{"docs":{},"df":0,"u":{"docs":{},"df":0,"i":{"docs":{},"df":0,"d":{"docs":{"https://dynamis.gg/fru/":{"tf":1.0},"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":8}}}},"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"m":{"docs":{},"df":0,"i":{"docs":{},"df":0,"s":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.4142135623730951}},"df":1}}}}}}}}},"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/":{"tf":1.0},"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":8}}}}}},"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}},"p":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}}},"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p2/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p3/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p4/":{"tf":1.4142135623730951},"https://dynamis.gg/fru/p5/":{"tf":1.4142135623730951}},"df":6}}}}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"c":{"docs":{"https://dynamis.gg/fru/":{"tf":1.0}},"df":1}}}}},"w":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/":{"tf":1.0},"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":8}}}}}}}},"o":{"docs":{},"df":0,"o":{"docs":{},"df":0,"m":{"docs":{},"df":0,"m":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}}},"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"k":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.0}},"df":1}}}}}},"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/":{"tf":1.0},"https://dynamis.gg/fru/buffs/":{"tf":1.0},"https://dynamis.gg/fru/i1/":{"tf":1.0},"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":8}}}},"s":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"p":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}}}},"title":{"root":{"docs":{},"df":0,"1":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1},"2":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1},"3":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1},"4":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1},"5":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1},"a":{"docs":{},"df":0,"p":{"docs":{},"df":0,"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{},"df":0,"i":{"docs":{},"df":0,"x":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}}}}}}}},"b":{"docs":{},"df":0,"u":{"docs":{},"df":0,"f":{"docs":{},"df":0,"f":{"docs":{"https://dynamis.gg/fru/buffs/":{"tf":1.0}},"df":1}},"r":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.0}},"df":1}}}}},"c":{"docs":{},"df":0,"r":{"docs":{},"df":0,"y":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}}}}}}},"d":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}},"f":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"b":{"docs":{},"df":0,"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"k":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0}},"df":1}}}}}}}},"r":{"docs":{},"df":0,"o":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}},"u":{"docs":{},"df":0,"t":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://dynamis.gg/fru/":{"tf":1.0}},"df":1}}}}},"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"m":{"docs":{},"df":0,"i":{"docs":{},"df":0,"s":{"docs":{},"df":0,"s":{"docs":{"https://dynamis.gg/fru/i1/":{"tf":1.0}},"df":1}}}}}}}}},"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"l":{"docs":{"https://dynamis.gg/fru/p3/":{"tf":1.0}},"df":1}}}}},"p":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":1}}}}}},"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/p1/":{"tf":1.0},"https://dynamis.gg/fru/p2/":{"tf":1.0},"https://dynamis.gg/fru/p3/":{"tf":1.0},"https://dynamis.gg/fru/p4/":{"tf":1.0},"https://dynamis.gg/fru/p5/":{"tf":1.0}},"df":5}}}}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"w":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://dynamis.gg/fru/":{"tf":1.0}},"df":1}}}}}}}},"o":{"docs":{},"df":0,"o":{"docs":{},"df":0,"m":{"docs":{},"df":0,"m":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://dynamis.gg/fru/p4/":{"tf":1.0}},"df":1}}}}}}},"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"k":{"docs":{},"df":0,"e":{"docs":{"https://dynamis.gg/fru/strats/burnt-strike/":{"tf":1.0}},"df":1}}}}}},"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"m":{"docs":{"https://dynamis.gg/fru/":{"tf":1.0}},"df":1}}}},"s":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"p":{"docs":{"https://dynamis.gg/fru/p2/":{"tf":1.0}},"df":1}}}}}}}},"documentStore":{"save":true,"docs":{"https://dynamis.gg/":{"body":"","description":"","id":"https://dynamis.gg/","title":""},"https://dynamis.gg/fru/":{"body":"","description":"Mechanical guides & other resources for FRU.","id":"https://dynamis.gg/fru/","title":"Futures Rewritten (Ultimate)"},"https://dynamis.gg/fru/buffs/":{"body":"All Phases\n\n\n\n\n\n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n\n\n \n \n Buff\n Description\n Notes\n \n \n \n \n \n \n \n \n \n \n \n Damage Down\n Damage dealt is reduced.\n This is a 90% damage reduction.\n\n \n \n \n \n \n \n \n \n \n Magic Vulnerability Up\n Magic damage taken is increased.\n Magic damage is lethal.\n\n \n \n \n \n \n \n \n \n \n Mark of Mortality\n Branded with a mark of mortality. Damage dealt is reduced. Too many stacks will result in KO.\n This is a 90% damage down, which stacks with a regular Damage Down to produce a 99% damage down.\nTwo or more stacks is instantly lethal.\n\n \n \n \n \n \n \n \n \n \n Physical Vulnerability Up\n Physical damage taken is increased.\n Physical damage is lethal.\n\n \n \n \nPhase 1\n\n\n\n\n\n\n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n\n\n \n \n Buff\n Description\n Notes\n \n \n \n \n \n \n \n \n \n \n \n Bleeding\n Sustaining damage over time.\n This is a very strong bleed from the raidwide.\n\n \n \n \n \n \n \n \n \n \n Fated Burn Mark\n Emblazoned with a fateful burn mark that will cause you to explode with a vengeance when you are KO'd.\n If you die before the debuff falls off, it’s a heavy raidwide with a Damge Down, but not an automatic wipe.\n\n \n \n \n \n \n \n \n \n \n Floating Fetters\n Bound in midair and unable to move.\n You can still take actions.\n\n \n \n \n \n \n \n \n \n \n Powder Mark Trail\n Emblazoned with a gunpowder mark that will cause you and the nearest ally to explode when this effect expires.\n Both players are hit by large AoE tankbusters. The explosions will go off immediately if the bearer dies.\n\n \n \n \n \n \n \n \n \n \n Prey\n Marked as prey.\n You are tethered and will be hit by a mechanic from the tethered boss/clone.\n\n \n \n \nPhase 2\n\n\n\n\n\n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n\n\n \n \n Buff\n Description\n Notes\n \n \n \n \n \n \n \n \n \n \n \n Bleeding\n Sustaining damage over time.\n This is a massive dot as a penalty for standing in a Sinbound Holy puddle.\nIt is so strong that it typically one-shots.\nTechnically, it is two separate debuffs.\nThe first one has indefinite duration, but when it ticks it replaces itself with a 30-second version.\n\n \n \n \n \n \n \n \n \n \n Chains of Everlasting Light\n Bound with chains of everlasting light. Will be subject to a Curse of Everlasting Light when this effect expires.\n You are tethered to two other players, but have no restrictions yet.\n\n \n \n \n \n \n \n \n \n \n Curse of Everlasting Light\n Cursed by everlasting light. Close proximity to the player to whom you are bound will result in unaspected damage to those nearby.\n You are tethered to two other players.\n\n \n \n \n \n \n \n \n \n \n Deep Freeze\n Your body is encased in ice, preventing action and dealing damage over time.\n Unable to move or take actions.\n\n \n \n \n \n \n \n \n \n \n Lightsteeped\n Overflowing with astral energy. Upon accumulating 5 stacks, you will deal unaspected damage to those nearby.\n At 5 stacks, explodes in a raidwide that inflicts an additional stack on everyone. The ensuing chain reaction will almost invariably wipe the party.\n\n \n \n \n \n \n \n \n \n \n \n \n Physical Vulnerability Up\n Physical damage taken is increased.\n Physical damage is lethal. Unlike in other phases, this can be cleansed with Esuna or Warden’s Paean.\n\n \n \n \n \n \n \n \n \n \n Stun\n Unable to execute actions.\n Can’t move or take actions.\n\n \n \n \n \n \n \n \n \n \n The Weight of Light\n Will unleash Powerful Light when this effect expires.\n A gold orb appears above your head. Powerful Light is light party stack AoE that inflicts one stack of Lightsteeped on anyone hit.\n\n \n \n \n \n \n \n \n \n \n Thin Ice\n Having trouble maintaining a solid foothold upon ice-covered ground.\n You will slide quite a long distance in whatever direction you try to move. Almost the entire width of the arena.\n\n \n \n \nPhase 2 Intermission\n\n\n\n\n\n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n\n\n \n \n Buff\n Description\n Notes\n \n \n \n \n \n \n \n \n \n \n \n Bleeding\n Sustaining damage over time.\n This is a massive dot as a penalty for standing in a Sinbound Holy puddle.\nIt is so strong that it typically one-shots.\nTechnically, it is two separate debuffs.\nThe first one has indefinite duration, but when it ticks it replaces itself with a 30-second version.\n\n \n \n \n \n \n \n \n \n \n Invincibility\n Invulnerable to all damage.\n The Ice Veil is immune to all damage while any crystals are tethered to it.\n\n \n \n \n \n \n \n \n \n \n Vulnerability Down\n Damage taken is reduced.\n The crystals receive this buff if they are hit by one of the cleaves.\nThe Ice Veil receives it in place of Invicincibility if all the light crystals are killed and all dark crystals are left alive.\n\n \n \n \nPhase 3\n\n\n\n\n\n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n\n\n \n \n Buff\n Description\n Notes\n \n \n \n \n \n \n \n \n \n \n \n Doom\n Certain death when counter reaches zero.\n Death really is certain.\n\n \n \n \n \n \n \n \n \n \n Fire Resistance Down II\n Fire resistance is significantly reduced.\n Fire damage is lethal.\n\n \n \n \n \n \n \n \n \n \n Return\n Aetherially entwined with the temporal manifold. You will be stunned and drawn back to your aetherial trace when this effect expires.\n When this expires, you will be returned to the snapshotted position and stunned for a few seconds.\n\n \n \n \n \n \n \n \n \n \n Spell-in-Waiting Refrain\n The next spell cast will activate in stages after a delay.\n This buff is purely an indicator that the Oracle’s Dark Water III during Apocalypse will be broken into stages. There’s no other effect.\n\n \n \n \n \n \n \n \n \n \n Spell-in-Waiting: Dark Blizzard III\n Designated target of Dark Blizzard III, which will activate when this effect expires.\n Dark Blizzard III is a donut AoE.\n\n \n \n \n \n \n \n \n \n \n Spell-in-Waiting: Dark Eruption\n Designated target of Dark Eruption, which will activate when this effect expires.\n Dark Eruption is a circle AoE.\n\n \n \n \n \n \n \n \n \n \n Spell-in-Waiting: Dark Fire III\n Designated target of Dark Fire III, which will activate when this effect expires.\n Dark Fire III is a large circle AoE.\n\n \n \n \n \n \n \n \n \n \n Spell-in-Waiting: Dark Water III\n Designated target of Dark Water III, which will activate when this effect expires.\n Dark Water III is a light party stack AoE. Will inflict a stack of Mark of Mortality if not soaked by 4+ players.\n\n \n \n \n \n \n \n \n \n \n Spell-in-Waiting: Return\n Designated target of Return, which will activate when this effect expires.\n When this expires, your position will be snapshotted and a blue marker appears to indicate where it was snapshot.\nWhen the Return buff expires, you will be returned to the snapshotted position.\n\n \n \n \n \n \n \n \n \n \n Spell-in-Waiting: Shadoweye\n Designated target of Shadoweye, which will activate when this effect expires.\n Shadoweye will inflict Doom, which is guaranteed death, on any player who isn’t looking away.\n\n \n \n \n \n \n \n \n \n \n Spell-in-Waiting: Unholy Darkness\n Designated target of Unholy Darkness, which will activate when this effect expires.\n Unholy Darkness is a large party stack. Will inflict Mark of Mortality if not soaked by 5+ players.\n\n \n \n \n \n \n \n \n \n \n Stun\n Unable to execute actions.\n Can’t move or take actions.\n\n \n \n \nPhase 4\n\n\n\n\n\n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n\n\n \n \n Buff\n Description\n Notes\n \n \n \n \n \n \n \n \n \n \n \n Darkness's Design\n Subject to the Oracle of Darkness's design. Damage taken from certain targets is increased.\n Damage from the Usurper of Frost is lethal.\n\n \n \n \n \n \n \n \n \n \n Light's Design\n Subject to the Oracle of Light's design. Damage taken from certain targets is increased.\n Damage from the Oracle of Darkness is lethal.\n\n \n \n \n \n \n \n \n \n \n Lightsteeped\n Overflowing with astral energy. Upon accumulating 5 stacks, you will deal unaspected damage to those nearby.\n At 5 stacks, explodes in a raidwide that inflicts an additional stack on everyone. The ensuing chain reaction will almost invariably wipe the party.\n\n \n \n \n \n \n \n \n \n \n Refulgent Chain\n Bound with chains of light. Your Refulgent Fate will be sealed when this effect expires.\n You are tethered to two other players, but have no restrictions yet.\n\n \n \n \n \n \n \n \n \n \n Refulgent Fate\n Cursed by binding light. If the distance between you and the player to whom you are bound becomes too great or too small, you will deal unaspected damage to those nearby.\n You are tethered to two other players. You must stay at roughly the distance between the two towers.\n\n \n \n \n \n \n \n \n \n \n Return\n Aetherially entwined with the temporal manifold. You will be stunned and drawn back to your aetherial trace when this effect expires.\n When this expires, you will be returned to the snapshotted position and stunned for a few seconds.\n\n \n \n \n \n \n \n \n \n \n Spell-in-Waiting: Dark Aero III\n Designated target of Dark Aero III, which will activate when this effect expires.\n Dark Aero III is a large circle AoE. Any other player hit by the AoE is knocked back a long way.\n\n \n \n \n \n \n \n \n \n \n Spell-in-Waiting: Dark Blizzard III\n Designated target of Dark Blizzard III, which will activate when this effect expires.\n Dark Blizzard III is a donut AoE.\n\n \n \n \n \n \n \n \n \n \n Spell-in-Waiting: Dark Eruption\n Designated target of Dark Eruption, which will activate when this effect expires.\n Dark Eruption is a circle AoE.\n\n \n \n \n \n \n \n \n \n \n Spell-in-Waiting: Dark Water III\n Designated target of Dark Water III, which will activate when this effect expires.\n Dark Water III is a light party stack AoE. Will inflict a stack of Mark of Mortality if not soaked by 4+ players.\n\n \n \n \n \n \n \n \n \n \n Spell-in-Waiting: Quietus\n Designated target of Quietus, which will activate when this effect expires.\n Quietus is a raidwide with no additional effects.\n\n \n \n \n \n \n \n \n \n \n Spell-in-Waiting: Return\n Designated target of Return, which will activate when this effect expires.\n When this expires, your position will be snapshotted and a blue marker appears to indicate where it was snapshot.\nWhen the Return buff expires, you will be returned to the snapshotted position.\n\n \n \n \n \n \n \n \n \n \n Spell-in-Waiting: Unholy Darkness\n Designated target of Unholy Darkness, which will activate when this effect expires.\n Unholy Darkness is a large party stack. Will inflict Mark of Mortality if not soaked by 5+ players.\n\n \n \n \n \n \n \n \n \n \n Stun\n Unable to execute actions.\n Can’t move or take actions.\n\n \n \n \n \n \n \n \n \n \n Wyrmclaw\n Shredded by draconic talons. KO will occur when countdown reaches 0.\n Must be cleansed by touching a dragon head. This will cause an AoE and leave a blue puddle on the ground.\n\n \n \n \n \n \n \n \n \n \n Wyrmfang\n Torn by draconic teeth. KO will occur when countdown reaches 0.\n Must be cleansed by touching a blue puddle left behind by someone cleansing Wyrmclaw.\n\n \n \n \nPhase 5\n\n\n\n\n\n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n\n\n \n \n Buff\n Description\n Notes\n \n \n \n \n \n \n \n \n \n \n \n Dark Resistance Down II\n Dark resistance is significantly reduced.\n Dark damage is lethal.\n\n \n \n \n \n \n \n \n \n \n Down for the Count\n Unable to move or execute actions.\n Given during the transition to phase 5.\n\n \n \n \n \n \n \n \n \n \n Light Resistance Down II\n Light resistance is significantly reduced.\n Light damage is lethal.\n\n \n \n \n","description":"Mechanical guide to the (de)buffs in Futures Rewritten (Ultimate)","id":"https://dynamis.gg/fru/buffs/","title":"Appendix: Buffs"},"https://dynamis.gg/fru/i1/":{"body":"Assuming the Usurper of Frost was successfully brought below 20% in her phase,\nthere’s a short intermission phase before phase 3.\nAfter the Absolute Zero cast, Shiva knocks everyone back from center\nand inflicts \n \n \n \n Deep Freeze\n on everyone, forcing you to wait for a brief scene.\nShiva becomes encased in ice, just like in \nE8N,\nand the arena becomes a bright icy blue.\n16 seconds later, the \n \n \n \n lifts, and the crystals spawn.\n4 Crystals of Light spawn on the cardinals far away from the boss,\nwhile 4 Crystals of Darkness spawn on the intercardinals close to the boss.\nThe crystal covering the Usurper of Frost is called the Ice Veil,\nand it almost immediately begins casting Endless Ice Age, the enrage for the phase.\nYou must destroy the Veil before the cast completes to progress to phase 3.\nThe crystals are all tethered to the Ice Veil, granting it \n \n \n \n Invincibility\n.\nIf you destroy all the adds, the \n \n \n \n will be removed\nand the Ice Veil will fall rapidly.\nGaia will also appear, channeling darkness energy into the crystal in an attempt to free Ryne.\nIt doesn’t seem to be doing much, though…\nCrystal Attacks\nThere isn’t much in the way of mechanics in this intermission.\nPeriodically, each of the Crystals of Light\nwill target a large, circular \nAoE at the nearest player,\nwhile each fo the Crystals of Darkness will target the nearest player\nwith a narrow cone.\nOddly, there’s no castbar for the big circles,\nbut the narrow cones are called Sinbound Blizzard.\nYou must be careful about aiming the cones, because if they hit a crystal,\nthat crystal will receive \n \n \n \n Vulnerability Down\n for the remainder of the phase.\nThe \n \n \n \n Vulnerability Down\n lowers the damage done to a Crystal of Darkness or\nthe Ice Veil by 80%, but makes a Crystal of Light invulnerable.\nNote: Due to a graphical glitch,\nsometimes the cone \nomens do not render correctly.\nThey’re still there, and they can still hurt you.\nWith the second wave of AoEs, the Crystals of Light will target the nearest players\nwith passable tethers.\nAfter the third wave, the targeted players will be hit by a series of three\nHiemal Ray, small circular AoEs leaving behind puddles that inflict a\n\nDoT.\nThe Eternal Ice Fragment\nIf you destroy all the crystals and the Ice Veil,\nthen the crystal holding Shiva shatters and the transition to phase 3 begins.\nAn interactable Eternal Ice Fragment appears on the ground\njust in front of Shiva, but it shatters before anyone can interact with it.\nIf you remember your lore, one of Gaia’s key memories you saved during \nE12N\nwas of Ryne and Gaia making the fragment into a necklace.\nIts destruction seems portentious…\nAnd in actual fact, while you can proceed to the end of phase 4\nwithotu the Eternal Ice Fragment,\nyou will be unable to enter phase 5 and clear the fight.\nGaia’s voice line near the end of the phase, “Is my darkness not enough?!”\nis the clue to the alternate solution to the phase that’s required to clear.\nInstead of killing the Crystals of Darkness, they must all be left alive.\nIf all four survive while the Crystals of Light die,\nthey will begin channeling dark energy into Gaia and the Ice Veil.\nNote that using caster LB3 will instantly defeat the Crystals of Darkness,\nso it can’t be used if you want to clear the fight.\nThat said, LB3 is still a great prog tool, because the Ice Veil\nabsolutely melts[1] if all the crystals are dead.\nThe Ice Veil will lose its \n \n \n \n Invincibility\n\nand gain a \n \n \n \n Vulnerability Down\n in its place, reducing incoming damage by 50%\nTo make up for it, Gaia’s channeling will complete successfully,\nand near the end of the Endless Ice Age cast,\nGaia will do her enormous hammer slam from \nE12N\nand remove a full half of the Ice Veil’s health bar.\nIf you complete the phase in this way, then instead of shattering,\nthe Eternal Ice Fragment will be absorbed into Shiva\nand you will be on the path to clearing the fight.\nAcknowledgments\nSpecial thanks for this section go to Silent Bramble and Nova,\nwith usual thanks to PoV uploaders.\n\n\nhehehe ↩\n\n\n","description":"Mechanical guide to the crystal intermission between phases 2 and 3 of Futures Rewritten (Ultimate).","id":"https://dynamis.gg/fru/i1/","title":"Intermission: Crystals"},"https://dynamis.gg/fru/p1/":{"body":"The fight begins with Fatebreaker, the boss from \nE8S.\nThe mechanics will be quite familiar if you’ve done E11S, although there are no light attacks.\nTo clear the phase, Fatebreaker must be defeated completely.\nThis phase is largely uptime, with a single downtime mechanic.\nUnless otherwise noted, any attack other than a spread, stack, raidwide, or tankbuster inflicts\n\n \n \n 2m\n \n Damage Down\n, and all spreads and stacks inflict \n \n \n 2\n \n Magic Vulnerability Up\n.\nSequence 1: Cyclonic Break\nFatebreaker immediately jumps into a mechanic sequence\nwith a Cyclonic Break cast.\nDuring this cast, he will be surrounded by either fire or lightning.\nThis will determine whether you need to stack in pairs or\nspread during the mechanic.\nThe attack executes a narrow (22.5°) conal spread targeting each player, without an\n\nomen.\nThese inflict \n \n \n 2\n \n Physical Vulnerability Up\n, so any player hit by two or more will die.\nThe location of these cones is saved and will be used for the rest of the mechanic.\n2 seconds after the first cones, a second set of cones go out on the same location.\nThese must be dodged.\nAt the same time, players will be hit by a fire or lightning attack:\n\n\nIf it is fire, then each DPS will be hit\nby Sinsmoke, a \npair stack \nAoE.\nFor each dead DPS, the attack will hit a random support instead,\ndoubling up if fewer than four players are alive.\n\n\nIf it is lightning, then all players will be hit by Sinsmite, a\nspread AoE.\n\n\nAfter the second set of cones and stack/spread, two more sets of cones go out, one after the other.\nEach is rotated clockwise from the previous by 1/16th of a circle\n(22.5°, i.e. one cone’s width).\nLike the second set, these must be dodged.\nPowder Mark Trail\nAs Cyclonic Break resolves,\nFatebreaker casts Power Mark Trail,\na single-target tankbuster that inflicts both \n \n \n 16\n \n Powder Mark Trail\n and\n\n \n \n 14\n \n Physical Vulnerability Up\n.\nThe \n \n \n \n will explode if the tank dies or at the start of the next\nmechanic.\nwhile the \n \n \n \n will cause subsequent auto-attacks to be lethal.\nSequence 2: Unbroken Sky\nFatebreaker begins casting Unbroken sky,\nand once again is surrounded by fire or lightning.\nAs before, this signals the upcoming spread or stack.\nOnce the cast completes, Fatebreaker goes untargetable and disappears,\nand the arena is be covered in a deep fog.\nIf you’ve played \nE11S,\nyou will recognize this from Prismatic Deception.\nEight Fatebreaker clones—Fatebreaker's Image—will\nappear just outside the arena, one in each \nprincipal direction.\nDue to the fog, they can only be seen if you are nearby.\nRight after they appear, the \n \n \n \n from earlier will expire,\ncausing large \nAoE tankbusters to hit both the player originally hit by\nPowder Mark Trail and the player nearest to them.\nThree of the clones will raise their gunblades to point straight up and begin casting\nBlasting Zone,\nwhile the rest will keep theirs facing downwards and at an angle before disappearing.\nFatebreaker reappears just before the casts complete, and begins charging a new\nCyclonic Break. The fire or lightning element need not be the same as before.\nWhen the Blasting Zone completes,\nthe three clones will cleave in front of them in a line.\nAt the same time, players will be hit by an attack depending on the element\ncharged during the Unbroken Sky cast:\n\nSinbound Fire III, an \nLP stack AoE.\nSinbound Thunder III, a spread AoE.\n\nWhen Fatebreaker finishes casting,\nthe second Cyclonic Break is exactly the same as the first,\nexcept that the element is random and may be different from before.\nTurn of the Heavens\nDuring the execution of Cyclonic Break, two more clones will appear:\none just north of Fatebreaker, and one at the west side of the arena.\nThe one next to Fatebreaker casts Turn of the Heavens\nwith either fire or lightning,\nwhile the one on the edge will cast Burnt Strike.\nAs the cast completes:\n\nFour Halo of Flame and four Halo of Levin appear\nnear the outside of the arena at cardinals and intercardinals. They are always positioned with\nFlame halos on the west or east side, and Levin halos on the other.\nThe halos begin casting Brightfire.\nTwo clones appear at random intercardinals, tethered to two random players,\nand begin casting Bound of Faith.\nThe tethered players also receive \n \n \n \n Prey\n and \n \n \n 15\n \n Fated Burn Mark\n.\nOne more clone appears at the north end of the arena,\ncasting Burnt Strike.\n\nAfter the new adds begin casting, the first Burnt Strike goes off,\ncleaving in a line from west to east.\nThe cleave repeats immediately, but is substantially wider the second time.\nA few seconds later, the second Burnt Strike goes off, cleaving from north to south.\nThe follow-up strike will hit all players with a knockback east or west, away from the center.\nThese knockbacks cannot be resisted.\nShortly afterwards, all the halos explode, dealing lethal damage in a circle.\nThe halos that do not match the element of the Turn of the Heavens cast only explode\ndirectly underneath themselves.\nThe halos that do match will explode inside the larger circle denoted on the floor.\nAt the same time, the two tethered players are lifted into the air with\n\n \n \n 3\n \n Floating Fetters\n, then charged by the adds and hit with Sinsmoke.\nUnlike earlier, this Sinsmoke is an \nLP stack that inflicts\n\n \n \n 2m\n \n Mark of Mortality\n if it hits fewer than 4 players.\nIf the tethered player died, a random player will be targeted instead.\nBurnished Glory\nFatebreaker reappears shortly after Sinsmoke,\nand is immediately targetable.\nThe sequence wraps up with Burnished Glory,\na raidwide that inflicts a heavy \n \n \n 15\n \n Bleeding\n.\nSequence 3: Fall of Faith\nThe third sequence begins with a Fall of Faith cast.\nFatebreaker will glow with fire or lightning energy,\nand mark a player with a tether and \n \n \n \n Prey\n.\nThe tether will glow red or blue depending on the element being charged.\nOver the course of the cast, three clones will appear at the NW, N, and NE edges of the arena,\nin that order.\nEach will begin casting its own Fall of Faith with its own tether and\n\n \n \n \n, for a total of four on four different targets.\nWhen the casts complete, similar to the end of the previous sequence,\nthe boss or clone will lift their target into the air with \n \n \n 3\n \n Floating Fetters\n and charge\nat them.\nThe attack is either Sinblaze or Sinsmite,\ndepending on the element, but with completely new mechanics:\n\nSinblaze hits the targeted player as well as producing a 90° cone originating from\nthe target, aimed towards the nearest player.\nThe entire attack is an \nLP stack\nso to satisfy the stack, there must be at least three players inside the cone,\nplus the main target.\nIf there are fewer than four players total hit by the attack,\nit will inflict \n \n \n 2m\n \n Mark of Mortality\n.\nSinsmite hits the targeted player\nand produces three 120° cones originating from them, aimed towards the three nearest players.\nBecause these are so wide, positioning is critical.\n\nBoth Sinblaze and Sinsmite inflict \n \n \n 4\n \n Magic Vulnerability Up\n,\nwhich lasts until after the next attack in the sequence.\nThus, a player hit by two consecutive attacks will die.\nFatebreaker completes the sequence with another Burnished Glory\nand another Powder Mark Trail.\nNote that the \nDoT from the Burnished Glory will make the tankbuster\nrequire more mitigation/healing than the first time.\nSequence 4: Burnt Strike\nFatebreaker casts Burnt Strike, glowing with fire or lightning.\nAs he does so, three towers appear along the east or west edge of the arena.\nThe total number of players required for the towers is always 6,\nbut the distribution is random: it could be 1/1/4, 1/2/3, or 2/2/2 in any order.\nThe Burnt Strike is a north-south line cleave, followed by:\n\nFor fire, all players are knocked back east or west away from the center.\nFor lightning, a second, wider line cleave.\n\nRight after the follow-up attack, the towers will go off and, at the same time,\nthe \n \n \n \n Powder Mark Trail\n detonates on its target and the newest player\nIf a tower is missed, it explodes in a heavy raidwide\nwith \n \n \n 2m\n \n.\nEnrage\nFatebreaker now casts Burnished Glory for a third and final time,\nwith a long castbar.\nIf the cast succeeds, the party wipes.\nTo proceed to the next phase, Fatebreaker must be killed before the cast completes.\nAcknowledgments\nThanks to various players in the NAUR discord for answering my questions and running tests,\nparticularly Cia, Bonafide Bovine, Unit, HopeP,\nand Ewaen Enjinia.\nThanks also to everyone who has progged this fight early and uploaded PoVs for my reference.\n","description":"Mechanical guide to phase 1 of Futures Rewritten (Ultimate).","id":"https://dynamis.gg/fru/p1/","title":"Phase 1: Fatebreaker"},"https://dynamis.gg/fru/p2/":{"body":"As soon as Fatebreaker dies, the arena transitions to Shiva’s arena from\n\nE8S, and Shiva herself appears.\nAlthough she looks the same, Ryne is possessed by Mitron\nand is called the Usurper of Frost.\nBut everyone still calls her Shiva.\nThis phase is the closest that FRU has to a trio phase, with two long downtime mechanics.\nUnlike a traditional trio phase, however, there is a little bit of uptime mechanic sprinkled in.\nTo complete the phase, she must be brought down below 20% health before the end of the enrage.\nAlso, unlike in the original fight, the edge of the arena is not a cliff\nbut stays as the traditional Ultimate deathwall.\nAs before, unless otherwise noted, any attack\nother than a spread, stack, raidwide, or tankbuster inflicts \n \n \n 2m\n \n Damage Down\n,\nand all spreads and stacks inflict \n \n \n 2\n \n Magic Vulnerability Up\n\nto prevent players from taking multiple hits.\nIntro\nShiva kicks things off with Quadruple Slap,\na tankbuster that only actually has two hits.\nIt’s a typical one-two buster with room for a tank swap.\nIt inflicts a cleansable \n \n \n \n 15\n \n Physical Vulnerability Up\n,\nforcing a swap, cleanse, or invuln.[1]\nAfter one follow-up auto—which can also be lethal, thanks to the vuln—Shiva\nteleports to south of center, faces north, and begins casting Mirror Image.\nThis cast has no associated attack, but summons a light-form clone,\nthe Oracle's Reflection, directly in the center of the arena.\nThe Usurper of Frost herself remains in ice form.\nThe two of them will bounce around a lot during the next mechanic.\nSequence 1: Diamond Dust\nAoE Hell\nOnce the Reflection appears, Shiva casts Diamond Dust,\na raidwide that kicks off the real mechanic.\nNote that the raidwide is slightly delayed from the end of the cast.\nDon’t mitigate too early.\nShiva herself disappears, kicking off the long downtime mechanic.\nThree different things happen in rapid succession:\n\nIt wouldn’t be a Shiva fight without the classic circular AoEs\naround the oustide of the arena.\nThe Oracle's Reflection begins casting\neither Axe Kick or Scythe Kick.\nFour players–all DPS or all supports–are\ntargeted by markers with a circular yellow omen.\n\nAll of these mechanics, and more, need to be solved simultaneously.\n\n\n\nOmens for the classic circle AoEs—the true\nDiamond Dust—appear in the \nprincipal directions in three waves.\nThe first wave has two circles, appearing opposite one another.\nThe second wave spreads out from the first wave:\nIf the first wave was on a pair of cardinals,\nthen the second wave will be on the four intercardinals.\nConversely, if the first wave was on intercardinals,\nthen the second wave will be on the four cardinals.\nThe third wave will hit the two remaining cardinals or intercardinals,\nat 90° from the first wave.\nAll three waves must be completely dodged.\n\n\nThe Oracle's Reflection’s cast will be either\na point-blank (Axe Kick) or a donut (Scythe Kick).\nThese AoEs are very big:\n\n\nThe point-blank Axe Kick goes all the way out to the outer\nline[2] on the floor.\n\n\nThe donut Scythe Kick extends\nto well within the Reflection’s hitbox.\nThe safe area is only as wide as the small four-pointed star within the inner circle.\n\n\nAt the same time as the point-blank or donut,\nthe Reflection also shoots out four The House of Light cones\nat the four nearest players,\nThese cones, combined with the four marker AoEs, create an 8-way spread.\n\n\nThe four circular markers go off moments after the kick,\nhitting their targets with Frigid Stone\nat the same time as the first Diamond Dust circles go off.\nThese drop a second set of AoEs, 8-way lines,\nwith the omens appearing a few seconds after the Frigid Stones hit.\nThese 8-way lines are similar to the ones during Icelit Dragonsong\nin phase 2 of \nE8S.\n\n\nThe Oracle's Reflection moves out towards a principal direction\nand begins casting Sinbound Holy,\nwhile the Usurper of Frost reappears in the center of the arena.\nYou will likely want to pay attention to the Reflection’s location,\nas it’s important later.\nWithout any warning, the Usurper performs Heavenly Strike,\na knockback raidwide, and disappears.\nThis is the point where the second set of Diamond Dust AoEs go off.\nYou must get knocked back into a spot that’s safe from both the line AoEs\nand Diamond Dust,\nwith the final circles going off almost simultaneous with the lines.\n\n\nAfter all of this, it isn’t even over.\nThin Ice\nRight after the lines go off, Sinbound Holy targets both healers\nwith four \nLP stacks each, in quick succession.\nEach hit leaves behind a puddle that inflicts \n \n \n \n Bleeding\n,\nforcing the party to keep moving.\nAs players run away from Sinbound Holy,\nthe Usurper of Frost moves to the edge of the arena,\nin a random \nprincipal direction.\nAbout 4 seconds after the last puddle drops, without any other warning,\nshe uses Shining Armor.\nThis is a gaze attack that inflicts \n \n \n 2m\n \n\nand \n \n \n 8\n \n Stun\n.\nThe stun will make impossible to pass the next part of the mechanic,\nso you can’t look at Shiva no matter how hot she is.\nAdditionally, the arena will become \n \n \n \n icy.\nMoving will now send a player sliding most of the way across the arena.\nTwo bosses will also swap appearances.\nThe Usurper of Frost changes to light form,\nand will remain so for the rest of the phase,\nat the same time as the Oracle's Reflection changes to ice form.\nStillness & Silence\nThe Usurper will disappear while the Reflection begins casting\neither Twin Stillness or Twin Silence.\nWhich attack she is using is also telegraphed by her voice line (and accompanying caption):\neither \"In stillness freeze!\" or \"Sink into silence!\"\nIf she uses Stillness, she will first cleave a massive 270° in front of her,\nleaving only a small safe area behind.\nShe will then cleave 90° her, hitting exactly the small area that was just safe.\nIf she uses Silence, she does the exact opposite,\nfirst with a small cleave behind then a very large cleave in front.\nBoth cleaves are one-shots.\nThe snapshot on the first attack is right at the end of the first cast bar,\nwith the second coming earlier than you might expect.\nIn practice, the long slide required to get behind her,\nversus the short slide to get in front of her,\nmean that you have to move slightly earlier for Stillness.\nThe sequence finally wraps up as the Usurper of Frost reappears, targetable,\nin the center of the arena.\nSequence 2: Mirror, Mirror\nHallowed Ray\nImmediately after reappearing, the Usurper begins casting Hallowed Ray.\nThis is a \nfull-party stack line \nAoE on a random player.\nThe only thing of note is that the attack direction snapshots quite early,\nso it’s actually possible for the targeted player to dodge it entirely.\nThis is not consistent, however, so it can’t be used to avoid the mechanic.\nMirror, Mirror\nHer next cast is Mirror, Mirror.\nThis move summons three Frozen Mirrors around the edge of the arena at\n\nprincipal directions.\nThere will be two red mirrors and one blue mirror.\nThe red mirrors will always be 90° apart,\nbut the blue mirror can be anywhere, including in between them.\nThe Usurper begins casting Scythe Kick which is the same as before:\na large donut with a very small hole,\nand four protean cones at the nearest four players.\nAt exactly the same time, however, the blue mirror will also use the exact same move.\nSince Scythe Kick on its own is a four-way spread,\ntwo copies of it make for an eight-way spread.\nRight afterwards, the two red mirrors cast Reflected Scythe Kick.\nUnsurprisingly, this is the exact same move.\nBut it must be solved so that none of the players clip each other.\nEach of the mirrors disappears shortly after\nBanish III\nShiva’s last cast in this segment is Banish III,\nwhich she begins casting right as the Reflected Scythe Kicks\nDuring the cast, she’ll have a ring of light above her head,\nwith either a single orb or four orbs orbiting on it.\nIf there’s only one orb, the attack is a \npair stack targeted on DPS.\nIf there’s four, it’s a spread targeted on DPS.\nUnlike in \nE8S, there are no indicators over individual players’ heads.\nSequence 3: Light Rampant\nThe infamous mechanic from \nE8S is back, although it’s arguably not even as bad.\nNaturally enough,\nit kicks off with a teleport to center and the Light Rampant castbar.\nThere’s a raidwide on this one, so make sure mits and shields are up.\nThis mechanic makes use of the \n \n \n \n Lightsteeped\n debuff, given out by various attacks\nthrough the mechanic:\nSourceTotal Stacks\nLight Rampant6\nFirst wave towers6\nPowerful Light stacks8\nSecond wave tower4\nHouse of Light spread8\n\nThis is a total of 32 stacks,\nwhich is exactly enough to give \n \n \n \n to every player.\nThis is very convenient, because \n \n \n \n causes a wipe.\nEveryone must get exactly four stacks.\nThe initial raidwide doles out several markers and debuffs.\nIt is believed that these are given out completely at random, with no role-based patterns.\n\n\nTwo players receive a pink marker with a circular \nAoE \nomen.\n\n\nThe remaining six players each receive \n \n \n 10\n \n Chains of Everlasting Light\n,\nvisibly displaying as tethers connecting them to two other players.\nThese tethers are not yet active.\n\nTwo of these players receive \n \n \n 16\n \n The Weight of Light\n,\nindicated by large golden orbs above their heads.\n\n\n\nSix stacks of \n \n \n 36\n \n are distributed.\nThe players with markers each receive one stack,\nand the remaining four are distributed randomly amongst all eight players.\nSo a player with a marker can receive 1 or 2 stacks,\nwhile a player with a tether can receive 0 or 1.\n\n\nWhile the debuffs are mostly random, the tethers are not.\nThe two players with golden orbs are always tethered together.\nAdditionally, provided the players stand roughly equally spaced,\nthe tethers will not spawn crossed.[3]\nFirst Wave Towers\nA moment after the cast, Shiva disappears and six towers appear.\nThe orientation is always the same: a perfect hexagon with points to the north and south.\nThe markers begin going off first\nwith a series of four Luminous Hammer attacks each.\nThese inflict \n \n \n 1\n \n Magic Vulnerability Up\n,\nbut more importantly they drop lethal puddles on the ground like Sinbound Holy.\nDon’t stand in bad.[4]\nThe towers go off simultaneously with the third set of puddles,\ninflicting \n \n \n 36\n \n\nA missed tower is a heavy raidwide with a \n \n \n 2m\n \n.\nAlthough the towers do not inflict a \n \n \n \n themselves,\nthey are magic damage,\nso players taking a tower cannot also be hit by a Luminous Hammer.\nAt the same time as the towers go off, the \n \n \n \n expire,\nbecoming \n \n \n 9\n \n Curse of Everlasting Light\n.\nThis is indicated by the orbs in the middle of the tethers growing more brightly.\nUnlike in the original Light Rampant, for these tethers there is no maximum distance,\nbut if any two tethered players get too close together before the debuffs expire,\nthey will explode and cause a wipe.\nOrbs\nThe six silver orbs that descended on the towers, Holy Lights,\nhover in place above the ground.\nThree of them, in an equilateral triangle,\nbegin casting Burst and display large circular \nomens.\nThe other three follow suit shortly after.\nThis is very similar to the fists during the phase 4 transition of \nTOP,\nif you are familiar with that fight.\nAs the second wave of omens appears,\nthe \n \n \n \n denotate in a small circular \nAoE.\nThis is Powerful Light,\na \nLP stack that inflicts \n \n \n 36\n \n.\nIf fewer than 4 players are in the stack, it additionally inflicts \n \n \n 2m\n \n Mark of Mortality\n.\nA 4-stack tower also appears in the center of the arena at the same time.\nAfter the Powerful Light—but not right after, so don’t move too soon!—the first\nwave of orbs explodes.\nThe puddles begin disappearing in the sequence they were dropped,\nand the second wave of orbs explodes as Shiva reappears in the center.\nShe remains untargetable as she begins casting Banish III.\nThe telegraph and effects are identical to the first time she used it.\nSecond Wave Tower\n4 players must soak the tower to prevent the \n \n \n 2m\n \n Damage Down\n raidwide\nand receive a stack of \n \n \n 36\n \n.\nCare must be taken that nobody takes on too many stacks.\nBanish III resolves a few seconds later.\nShiva wraps the mechanic up by casting House of Light,\nbecoming targetable at the start of the cast.\nHouse of Light is an 8-way cone spread.\nThis inflicts a final stack of \n \n \n 36\n \n\non every player.\nIf executed correctly, everyone should now have 4 stacks.\nThey will fall off harmlessly during the transition to the intermission.\nEnrage\nThe phase ends with Shiva casting Absolute Zero, the enrage.\nIf the party does not bring her below 20% HP before it completes,\nit deals infinite damage and wipes the party.\nIf she is brought below 20%, however, it is only a heavy raidwide.\nAs the transition to the intermission begins, she knocks every back from the center,\nso don’t stand too far out and get pushed into the wall.\nAcknowledgments\nThanks in particular go out to Mikah Tayuun, Aleretha Nyana,\nEsey Faye, Nicky, Seba, and felty fan\nfor helping me with mechanics in this phase.\nAs always, thanks also to everyone else in the NAUR discord who helped,\nas well as anyone who’s uploaded PoVs and guides.\n\n\nPersonally, I suggest not passing up this rare opportunity\nto yell at the bard, instead of a tank or healer,\nwhen the main tank unexpectedly dies to the second hit. ↩\n\n\nSometimes the lines are circles. ↩\n\n\nIt was initially believed that they could never spawn in with two tethers crossed,\nhowever, this was shown to be untrue.\nOur best theory on the actual mechanics of the tethers is that,\nafter two players are randomly chosen as the marker players,\none player is randomly chosen as the starting player for the tethers.\nThis player is tethered to the closest player (without a marker),\nwho is then tethered to the next closest player,\nand so on, until everyone either has a marker or a tether,\nand then one more tether is added to close the loop.\nThe orbs go out to two random tethered players. ↩\n\n\nFor black mages: It’s okay, it’s a downtime phase again. ↩\n\n\n","description":"Mechanical guide to phase 2 of Futures Rewritten (Ultimate).","id":"https://dynamis.gg/fru/p2/","title":"Phase 2: Usurper of Frost"},"https://dynamis.gg/fru/p3/":{"body":"UNDER CONSTRUCTION MAY BE INACURAT AND INKOMPLETE\nAfter the Ice Veil is broken and the intermission is completed,\nenjoy a long break through the lead-in of The Extreme\nas Gaia is possessed by Loghrif’s memories\nand takes up her role as the Oracle of Darkness.\nAs you might expect, this phase reprises mechanics from phase 2 of \nE12S.\nIt’s a straightforward full-uptime phase where, again,\nyou need to get the boss below 20% before enrage to proceed to the next phase.\nIntro\nAfter the 37 seconds or so of downtime for the transition,\nthe Oracle of Darkness—or just Gaia, as everyone calls\nher—becomes targetable.\nShe kicks things off with Hell's Judgment,\nwhich inflicts damage on everyone equal to their HP-1, ignoring migitation and shields.\nThe usual effect of this is to set everyone to 1,\nbut there’s a brief gap between the moment when damage is computed and when it’s applied.\nIf your current HP changes in this time, you won’t go to exactly 1.\nPay careful attention to the cooldowns of Max HP-increasing abilities,\nas it’s possible to die if they fall off after the snapshot.\nSequence 1: Ultimate Relativity\nThe first sequence is Ultimate Relativity,\nwith its classically over-the-top cast animation.\nThe cast is a raidwide in addition to starting the mechanic off,\nbut unlike the {{cast(n=(“Relativity”))}} casts from E12S,\nit seems like it is simply a normal raidwide rather than shared damage.[1]\nThe message “The laws of time are in chaos!” appears on the screen,\nalthough it’s purely for flavour.\nThe arena floor changes from dark blue to a bright teal colour for the duration of the mechanic,\nbut this is a purely cosmetic effect.\nSpells-in-Waiting\nWhat’s actually in chaos is everyone’s debuff bars, as everyone receives three spells-in-waiting.\nFrom left to right on the debuff bar, they are as follows:\n\n\nEvery player receives a 10-, 20-, or 30-second \n \n \n \n\nor \n \n \n \n:\n\nTwo supports and one DPS\neach receive \n \n \n 30\n \n Spell-in-Waiting: Dark Fire III\n.\nOne support and one DPS each receive \n \n \n 20\n \n Spell-in-Waiting: Dark Fire III\n.\nTwo DPS and one support each receive \n \n \n 10\n \n Spell-in-Waiting: Dark Fire III\n.\nI lied a little bit.\nEither the support with \n \n \n 10\n \n\nor the DPS with \n \n \n 30\n \n\nactually receives \n \n \n 20\n \n Spell-in-Waiting: Dark Blizzard III\n instead.\n\nHowever, for the rest of the debuff breakdown,\nI’m going to pretend the \n \n \n \n doesn’t exist,\nand all players receive \n \n \n \n.\nIt simplifies the explanations.\n\n\nEvery player receives a 16- or 26-second \n \n \n \n.\n\nThe three players with \n \n \n 30\n \n receive\n\n \n \n 26\n \n Spell-in-Waiting: Return\n,\nThe other five players receive \n \n \n 16\n \n Spell-in-Waiting: Return\n.\n\n\n\nEvery player receives a 43-second \n \n \n \n,\n\n \n \n \n, or \n \n \n \n:\n\nThe three players with \n \n \n 30\n \n receive\n\n \n \n 43\n \n Spell-in-Waiting: Shadoweye\n.\nThe DPS with \n \n \n 20\n \n receives\n\n \n \n 43\n \n Spell-in-Waiting: Dark Water III\n.\nThe remaining four players all receive \n \n \n 43\n \n Spell-in-Waiting: Dark Eruption\n.\n\n\n\nIt perhaps comes as a bit of a surprise how tightly role-based the assignments are,\ngiven that this is an ultimate.\nThankfully, though, it means that everything can be summarized in a single small table:\nRole2×1×1×\nSupport\n \n \n 30\n \n\n \n \n 26\n \n\n \n \n 43\n \n\n \n \n 20\n \n\n \n \n 16\n \n\n \n \n 43\n \n(\n \n \n 10\n \n/\n \n \n 20\n \n)\n \n \n 16\n \n\n \n \n 43\n \n\nDPS\n \n \n 10\n \n\n \n \n 16\n \n\n \n \n 43\n \n\n \n \n 20\n \n\n \n \n 16\n \n\n \n \n 43\n \n(\n \n \n 20\n \n/\n \n \n 30\n \n)\n \n \n 26\n \n\n \n \n 43\n \n\n\nWhen \n \n \n \n Spell-in-Waiting: Return\n expires,\nthe position of its bearer will be recorded with a blue marker,\nand the bearer will receive \n \n \n \n Return\n.\nThe duration of the \n \n \n \n Return\n debuff will be either 24 or 14 seconds,\nso that the \n \n \n \n expires 40 seconds after the start of the mechanic.\nHourglasses\nIn addition to the debuffs, Ultimate Relativity summons\neight Delight's Hourglass, one on each \nprincipal direction.\nBecause of their three-lobed appearance, and the various colours they had in E12S,\nthey’re often called “traffic lights” in the community.[2]\nThey are all green in this fight, however, so the anology doesn’t work so well.\nRight after the Hourglasses appear, Gaia casts Speed.\nAs she does so, three yellow lines\nand two purple lines—with bright orbs in the middle—connect\nher to some of the Hourglasses.\nAlthough the orientation is random, the pattern is always the same:\nthe three yellow lines make a Y shape,\nwhile the two purple lines are horizontal relative to the Y.\nNote that Gaia herself does not change facing during this cast.\nThe effect of Speed is\nto set up the order in which the Hourglasses use their one attack,\nSinbound Meltdown.\nThe yellow-marked Hourglasses make up the first wave,\nthe unmarked ones the second wave,\nand the purple ones the third wave.\nThe three waves happen approximately 16, 26, and 36 seconds after the start of the mechanic,\nwith the first two corresponding to the expiry of the \n \n \n \n Spell-in-Waiting: Return\n debuffs.\nAs the Hourglasses cast Sinbound Meltdown,\nthere is an advance warning with either a clockwise yellow indicator,\nor a counterclockwise blue indicator,\nrandomly selected for each Hourglass.\nThis indicates the direction the attack will rotate.\nThe attack itself is a laser\ntargeted on the nearest player to the Hourglass in question.\nTwo seconds later, the second laser fires, rotated a bit in the direction indicated.\nEight more follow, one second apart, creating a total arc of roughly 120° across ten shots.[3]\nOverall Timeline\nTo come…\nAt the end of the sequence,\nGaia casts Shockwave Pulsar, a heavy raidwide,\nfollowed by Black Halo, a 2-stack tankbuster.\nSequence 2: Sextuple Apocalypse\nTo come…\nEnrage\nGaia casts Shockwave Pulsar a second time\nbefore diving into Memory's End, her enrage cast.\nThere is a very brief opportunity to reposition her a little bit in between the casts,\nwhich can technically affect the initial position of the phase 4 boss,\nalthough in practice it’s unlikely you can move her far enough to make a difference.\nGet her below 20% HP before the end of the castbar to turn it into “only” a heavy raidwide,\nand clear the phase.\nIn E12S, the enrage cast was notable for traveling relatively slowly out from the center,\nallowing players to put distance between them and the Oracle of Darkness\nin order to get an extra fraction of a second.\nThat niche strat unfortunately isn’t applicable here,\nas whether or not you advance to the next phase is determined when the cast goes off.\nAcknowledgements\nThanks to Silent Bramble, Evansith,\nwhoever worked out the debuff assignment pattern for Ultimate Relativity,\nand all the usual suspects.\n\n\nIf anyone can actually confirm this, it would be appreciated,\nas currently all I have is one person who said they “Don’t think it is.” ↩\n\n\nAlso, absolutely no one looks at these things and thinks “hourglass!”\nSeriously, what good is a three-chambered hourglass? ↩\n\n\nExact angle measurements would be appreciated, if anyone has them. ↩\n\n\n","description":"Mechanical guide to phase 3 of Futures Rewritten (Ultimate).","id":"https://dynamis.gg/fru/p3/","title":"Phase 3: Oracle of Darkness"},"https://dynamis.gg/fru/p4/":{"body":"UNDER CONSTRUCTION MAY BE INACURAT AND INKOMPLETE\nAfter getting the Oracle of Darkness below 20% HP,\nand surviving Memory's End,\nthe Usurper of Frost will reappear at either the north or south side of the arena.\nShe will always spawn on the opposite side from where Gaia was,\nand is immediately targetable.\nThis phase is a duo phase, with the Oracle of Darkness reappearing\nshortly after the phase begins.\nIn order to complete the phase, both bosses must be defeated before the end of the enrage castbars.\nMaterialization & Fragment of Fate\nIf the Fragment of Eternity was saved during the crystal intermission,\nShiva’s first cast is Materialization.[1]\nMaterialization causes a Fragment of Fate,\na crystal containing one of Gaia’s memories,\nto appear at the northern apex of the arena.\nThe Fragment of Fate has an HP bar\nand periodically emits a raidwide called Edge of Oblivion.\nIf it is hit by any of the targeted or avoidable attacks in the phase, it will be destroyed;\notherwise it will survive the phase.\nIf it does not survive the phase, or is never summoned in the first place,\nthen the party will get the bad-ending phase 5.\nTo advance to the true phase 5 and clear the fight,\nthe Fragment must survive the phase.\nPlayers must take care to ensure that no attacks ever hit it, apart from unavoidable raidwides.\nSummoning Hraesvelgr\nAfter summoning the crystal, the Usurper of Frost summons Hraesvelgr to her,\njust like in phase 2 of \nE8S.\nThere’s no cutscene, and she remains targetable the entire time.\nRight when she does so, the party’s positions are snapshotted.\nWithout any warning, the snapshotted positions are hit\nby a series of 10 consecutive Akh Rhai \nAoEs,\nthat fire in rapid succession.\nThey hit the same positions repeatedly, so they only need to be dodged once.\nDuring the Akh Rhai, she will also make autoattacks on the top two enmity targets.\nAnd at around the sixth Akh Rhai,\nthe Fragment of Fate emits a Edge of Oblivion.\nThe Oracle of Darkness appears and becomes targetable around the ninth AoE.\nHP Balancing\nOnce the Oracle of Darkness appears, both bosses are targetable\nexcept during the one downtime mechanic of the phase.\nThe party must be careful to balance their HP to within 5% of each other.\nIf their HP is ever more than 5% apart,\nthen the two Morn Afah casts later will become lethal.\nAfter the second Morn Afah, there is no longer a need to balance HP.\nThe party can freely kill the bosses in either order.\nThere is also no need to keep the boss HP balanced in between the Morn Afah casts,\nas long as they are balanced when the casts go off.\nA tether will appear between the two bosses during the cast to visually indicate an imbalance.\nSequence 1: Darklit Dragonsong\nThe first of two mechanic sequences is Darklit Dragonsong,\ncast simultaneously by both bosses.\nIt’s mostly another variation of Light Rampant,\nwith Gaia repeating several mechanics seen already in phase 3.\nDuring the castbar, two light party stack markers appear on random players.\nThese are Spell-in-Waiting stacks and do not resolve immediately.\nThe cast itself is a very heavy raidwide originating from the Usurper of Frost,\nso mitigation targeted on the Oracle of Darkness will have no effect.\nAs it resolves:\n\nThe two players with stack markers receive \n \n \n 19\n \n Spell-in-Waiting: Dark Water III\n.\nEveryone receives \n \n \n 12\n \n Lightsteeped\n.\nFour players, exactly one of whom has \n \n \n \n,\nare tethered together with \n \n \n 7\n \n Refulgent Chain\n.\nJust like in phase 2, the tethers form a loop, but unlike phase 2,\nthe tethers can spawn in any configuration.\nTwo towers appear, north and south of center.\n\nAbout 4 seconds before the towers go off, the \n \n \n \n Refulgent Chain\n expire\nand become \n \n \n 14\n \n Refulgent Fate\n.\nUnlike in phase 2, but like in \nE8S,\nthese tethers will explode if the tethered players get either too close or too far apart.\nThe towers are the perfect distance to be safely soaked by tethered players.\nShiva casts The Path of Light, resolving at the same time as towers,\nhitting the four closest players with cones.\nAs in phase 2, both the towers and cones inflict \n \n \n \n,\nso one player can’t be hit by both.[2]\nAs the towers and cones resolve, Gaia begins casting Spirit Taker.\nWhen it resolves, she leaps and hits a random player with a small circular \nAoE.\nAnyone else within the circle is knocked back into the wall.\nShiva follows this up with Hallowed Wings,\na half-room cleave of either the east or west side, telegraphed by a glowing wing.\nThe \n \n \n \n resolve just before this cleave goes off.\nFinally, Gaia uses Somber Dance,\nonly a few seconds after the Hallowed Wings.\nAs before, this is a leaping one-two tankbuster on the farthest and then nearest players.\nThe tank swap must be done with positioning, not Provoke.\nAkh Morn\nThe sequence wraps up with Akh Morn, followed by Morn Afah.\nRight before, there’s another Edge of Oblivion,\nfollowed by the bosses recentering—Shiva slightly west of center,\nand Gaia slightly east.\nThey cast Akh Morn simultaneously.\nAkh Morn is a four-hit \nLP stack,\nwith Shiva hitting her main target with columns of light,\nand Gaia hitting hers with columns of dark.\nThese inflict \n \n \n 4\n \n Light's Design\n and \n \n \n 4\n \n Darkness's Design\n, respectively,\nforcing players to remain in the same stack for the entire mechanic.\nIt will be a bad day if both bosses are targeting the same player when the attack goes off.\nNotably, the damage from Akh Morn pierces invulnerability\nbut is still subject to mitigation.\nThis allows a tank with proper mitigation to survive a hit solo,\nbut not with an invuln.\nMorn Afah\nRight after Akh Morn, the roommates simultaneously cast Morn Afah.\nThis is a \nfull-party stack \nAoE\ntargeted on Shiva‘s top-enmity target,\nbut if the bosses’ HPs are more than 5% apart when the cast goes off,\nit’s an instakill for anyone hit.\nIt is not a raidwide even if the HP is imbalanced,\nso anyone not in the radius will always survive.\nLike Akh Morn, it pierces invulnerability but respects other mitigations.\nAs the attack comes from the Usurper of Frost,\ntargeted mitigation on the Oracle of Darkness has no effect.\nTo give a visual clue that HP is imbalanced, during the cast bar,\na tether can appear between the two bosses.\nIf Gaia’s HP is too high, it will be dark-coloured;\nif Shiva’s HP is too high, it will be light-coloured.\nSequence 2: Crystallize Time\nGaia teleports dead center,\nwith Shiva just south of her,\nand the two cast Crystallize Time,\ntheir second big mechanic.\nThe mechanic is a combination of Relativity and, from \nE8S,\nWyrm's Lament.\nAfter the initial raidwide, predictably, everyone’s debuff bars are again thrown into chaos.\nAdditionally, six Sorrow's Hourglasses spawn\nat the centers of each of the lines on the floor.[3]\nThe raidwide originates from the Oracle of Darkness,\nso targeted mitigation on the Usurper of Frost has no effect on it.\nBoth bosses will go untargetable a few seconds after the cast, for the entire mechanic.\nA few seconds later, the Fragment of Fate, if still alive,\nwill use an Edge of Oblivion.\nThere are a lot of parts to this mechanic, so I will lay them out separately.\nDebuffs\nDebuffs are entirely random except as noted. From left to right, they are as follows:\n\n\nEveryone receives a primary Spell-in-Waiting:\n\nOne player receives \n \n \n 12\n \n Spell-in-Waiting: Dark Water III\n.\nOne player receives \n \n \n 14\n \n Spell-in-Waiting: Dark Eruption\n.\nTwo players receive \n \n \n 14\n \n Spell-in-Waiting: Dark Aero III\n.\nThree players receive \n \n \n 14\n \n Spell-in-Waiting: Dark Blizzard III\n.\nOne player receives \n \n \n 17\n \n Spell-in-Waiting: Unholy Darkness\n.\n\n\n\nEveryone receives a \n \n \n \n\nor \n \n \n \n debuff.\n\nTwo of the three players with \n \n \n \n receive\n\n \n \n 17\n \n Wyrmclaw\n.\nThe two players with \n \n \n \n receive\n\n \n \n 40\n \n Wyrmclaw\n.\nThe remaining players receive \n \n \n 40\n \n Wyrmfang\n.\n\n\n\nEveryone receives \n \n \n 33\n \n Spell-in-Waiting: Return\n.\n\n\nThree players receive \n \n \n 31\n \n Spell-in-Waiting: Quietus\n.\nSince all they do is cause raidwides, it is entirely irrelevant who receives them.\n\n\nOr in summary, leaving out the \n \n \n 31\n \n:\n2×2×1×1×1×1×\n\n \n \n 14\n \n\n \n \n 17\n \n\n \n \n 33\n \n\n \n \n 14\n \n\n \n \n 40\n \n\n \n \n 33\n \n\n \n \n 14\n \n\n \n \n 40\n \n\n \n \n 33\n \n\n \n \n 12\n \n\n \n \n 40\n \n\n \n \n 33\n \n\n \n \n 14\n \n\n \n \n 40\n \n\n \n \n 33\n \n\n \n \n 17\n \n\n \n \n 40\n \n\n \n \n 33\n \n\n\nHourglasses\nGaia casts Speed as in phase 3.\nThis time, the yellow tethers always hit the north and south Hourglasses.\nThe purple tethers will hit either the NW and SE hourglasses, or NE and SW.\nIn other words, all three Hourglasses go off in opposite pairs,\nwith north and south going off first.\nThe cast from the Hourglasses in this mechanic is Maelstrom,\na circular \nAoE that covers the entire circle on the floor.\nThere is a very brief \nomen, hardly enough to dodge.\nThe explosions happen concurrently with the Spell-in-Waiting debuffs resolving,\ntowards the start of the mechanic.\nThe hourglasses are completely inert after they explode.\nDrachen Wanderers\nTwo Drachen Wanderers—large, ghostly wyrm heads—also\nappear just north of the northernmost Hourglass.\nThe Wanderers begin a slow journey around the arena,\none clockwise, one counterclockwise.\nIf a player with \n \n \n \n makes contact with a Wanderer,\nit will cleanse the \n \n \n \n\nand explode in a circular AoE called Longing of the Lost.\nThe size is similar to Maelstrom.\nThis can break the Fragment of Fate.\nThe first time a \n \n \n \n is cleansed\non a given Wanderer, it shrinks.\nThe second time, it disappears entirely.\nIf either Wanderer survives to make a complete lap of the arena,\nit will fly off to the sky and wipe the party.\nAdditionally, cleansing \n \n \n \n leaves behind a small blue beacon.\nThe beacon can be used once to cleanse a \n \n \n \n.\nIn order to resolve this part of the mechanic completely, therefore,\nboth Wanderers must be touched twice each\nby players with \n \n \n \n,\nand the resulting beacons must each be touched\nby a player with \n \n \n \n.\nExalines and Knockbacks\nAround the time of the second Maelstrom explosions,\nShiva will teleport to either the east or west edge of the arena\nand cast Tidal Light.\nThis attack begins a large \nexaline that covers the entire width of the arena,\nand is about as thick as 1/4 of the arena’s diameter.\nThe exaline travels across the arena away from Shiva.\nIt is slow enough to dodge by stepping into the previous explosion before the next.\nIf you look closely, Shiva has a blue circle under her during this attack—the\nsame blue circle, in fact, as players get from \n \n \n \n Spell-in-Waiting: Return\n.\nThis is a visual hint that Shiva, too,\nwill have her position rewound later in the mechanic.\nRemember which cardinal she appeared at.\nTowards the end of the first set of exalines,\nShiva teleports to either the north or south edge of the arena,\nand repeats Tidal Light, producing a second exaline identical as the first.\nAs the second exaline travels across the arena, the final debuffs expire.\nFirst, the three \n \n \n \n explode in three relatively small raidwides\nthat don’t even add up to a big one.\nThen, the \n \n \n \n expire,\nsnapshotting everyone’s positions and granting \n \n \n 7\n \n Return\n to everyone.\nGaia begins another Spirit Taker, so the party must spread.\nAnd finally, Shiva teleports back to the center and casts Hallowed Wings.\nBefore her cast completes, however, the \n \n \n \n debuffs expire,\ninflicting \n \n \n 9\n \n Stun\n and teleporting everyone back to their snapshotted positions.\nShiva, too, is teleported—back to where she first cast Tidal Light.\nThis will always, therefore, be the east or west cardinal.\nUnlike the earlier cast of the same name,\nthis Hallowed Wings is a massive \nwild charge knockback.\nAll players are hit, regardless of position,\nand are knocked away from Shiva’s cardinal about half the width of the arena.\nThe damage dealt by the attack is based on proximity to Shiva’s cardinal,\nwith the closest player receiving the most damage,\nthe second-closest receiving the second-most, etc.\nThe person furthest away receives teh lowest amount of damage.\nNote, however, that this attack deals fixed damage based on position even if a player is dead;\nit is not a shared-damage attack.\nThe four players in front receive a \n \n \n 6\n \n Magic Vulnerability Up\n.\nThen, while everyone is still stunned,\nShiva is teleported to the cardinal where she cast the second exaline,\nand repeats the attack.\nKnockback immunity (besides Inner Release)\nwill not last long enough to protect against the second knockback.\nThe damage on the second hit will be quadrupled\nfor the players with \n \n \n \n.\nIf the player fifth in line has a \n \n \n \n,\nthe damage is equal to being first in line without \n \n \n \n.\nIt’s not quite tankbuster levels of damage, but it’s still enough to give a non-tank a bad time.\nI’ll put the exact numbers in an appendix sometime.\nThe players are released from stun during the second knockback,\nand both bosses teleport to mid and become targetable again,\nmarking the end of the mechanic.\nTimeline\nThe timeline of the entire mechanic is as follows:\n\nt = 0Buffs go out\nt + 3 sDrachen Wanderers appearShiva becomes untargetable\nt + 4 sGaia becomes untargetable\nt + 5 sEdge of Oblivion raidwide\nt + 10 sMalestrom omens from yellow-tethered Hourglasses\nt + 12 s\n \n \n \n stack and yellow-tethered Maelstroms go off\nt + 14 s\n \n \n \n circle, \n \n \n \n donut, and \n \n \n \n knockback go offSafe to cleanse \n \n \n \n without breaking Fragment\nt + 15 sMaelstrom omens appear from non-tethered Hourglasses\nt + 16 sShiva teleports to east or west\nt + 17 s\n \n \n \n stack and non-tethered Maelstroms go offEast/west exaline omen appears\n \n \n 17\n \n kills if not cleansed by now\nt + 20 sMaelstrom omens from purple-tethered HourglassesEast/west exalines begin, firing approx. every 2 seconds\nt + 22 sPurple-tethered Maelstroms go offShiva teleports to north or south\nt + 24 sNorth/south exaline omen appears\nt + 27 sNorth/south exalines beginEast/west exalines end\nt + 31 s\n \n \n \n raidwides go off\nt + 33 s\n \n \n \n snapshots player positionsNorth/south exalines end\nt + 37 sSpirit Taker spread\nt + 40 sPlayers stunned and returned to snapshot positions\n \n \n 40\n \n and \n \n \n 40\n \n kill if not cleansed by nowDrachen Wanderers wipe party if not destroyed by now\nt + 44 sFirst Hallowed Wings knockback\nt + 48 sSecond Hallowed Wings knockback\nt + 52 sBosses become targetable.Sequence complete\n\nEnrage\nThe bosses wrap up by repeating the Akh Morn–Morn Afah sequence\nfrom earlier,\nfollowed by the enrage sequence.\nOnly after the second Morn Afah can either of the bosses be killed;\nthey will block at 1 HP if killed beforehand.\nShiva’s enrage cast is Ice Age,\nwhile Gaia’s is once again Memory's End.\nThey go off at the same time, and either one is enough to wipe the party.\nIf a boss is killed, however, their attack does not go off.\nBoth bosses must be killed to advance to phase 5…\nwith hope that the Fragment of Fate survived…\nAcknowledgments\nSpecial callouts for this section go to felty fan, syl, Nova,\nand the ever-reliable Silent Bramble.\nRegular callouts go to anyone who helped me in NAUR\nand anyone who uploaded PoVs,\nespecially Lucrezia and Kindred.\n\n\nNobody has actually confirmed for me if Materialization is skipped entirely if the necklace\nisn’t saved, or if it just doesn’t spawn the fragment. Please let me know. ↩\n\n\nOddly, the durations of the debuff are different depending on which source they came from,\nbut it doesn’t matter because there’s no more stacks. ↩\n\n\nHow many times do we have to tell you: sometimes the lines are circles. ↩\n\n\n","description":"Mechanical guide to phase 4 of Futures Rewritten (Ultimate).","id":"https://dynamis.gg/fru/p4/","title":"Phase 4: Roommates"},"https://dynamis.gg/fru/p5/":{"body":"After completing phase 4 with both\nthe Usurper of Frost and the Oracle of Darkness dying,\nthe two will become balls of light and darkness and merge together.\nIf the Fragment of Fate did not survive phase 4 intact—or\nif it never spawned because the Eternal Ice Fragment wasn’t saved\nin the crystal intermission—then the transition to the bad ending will not be a cutscene\nand players will retain control of their characters.\nThe phase 5 arena will appear, and the Guardian of Eden appears\nat the north side of the arena.\nIt immediately casts Paradise Lost, wiping the party.\nIf the Fragment of Fate did survive phase 4,\nthen the transition is a cutscene in which Ryne and Gaia’s memories fight Mitron for control.\nThe result is Ryne and Gaia’s merged form, Pandora,[1]\nthe final boss of Futures Rewritten.\nPlayers will be knocked back to south of center and given \n \n \n \n Down for the Count\n\nfor the minute-long (yes, really) cutscene.\nThe arena transitions to the phase 1 arena from \nE12S,\nwith Ryne and Gaia’s memories showing in the background,\nand Return to Oblivion kicks in.\nThe \n \n \n \n fades as the final fight begins.\nNote that throughout this phase, Pandora attacks with\nlight on her left side and\ndark on her right side.\nThis orientation is based on her wings and never changes.\nSequence 1: Fulgent Blade\nPandora kicks things off with Fulgent Blade,\na raidwide that causes six lines of light and darkness to appear on the ground.\nThe pattern of the lines is always the same,\nalthough the positioning can vary so it might look different sometimes.\nThe six lines are always offset 45° from one another,\nmaking a sort of 3/4 circle around the middle of the arena.\nThese are all \nexalines that detonate two at a time,\nmoving outwards from their lines of origin.\nStarting from one side of the 3/4-circle,\nthe outermost two lines on one side will detonate,\nthen the middle two,\nthen finally the two on the other side.\nEach pair will be arranged so that the lines from the light and dark sides cross.\nBefore each line explodes, an \nomen appears showing the upcoming explosion,\nwith many arrows indicating that the line \nAoEs are going to move.\nThe first two exalines go off, and then they repeat in the directions indicated,\nperpendicular to the original line they came from.\nThere are no omens for the subsequent explosions.\nThe detonations go as follows:\nFirst WaveSecond WaveThird WavePandora\n1.Omens appear\n2.1st explosions\n3.2nd explosionsOmens appear\n4.3rd explosions1st explosions\n5.4th explosions2nd explosionsOmens appearLock direction\n6.5th explosions3rd explosions1st explosionsAkh Morn …\n7.6th explosions4th explosions2st explosionsAkh Morn …\n8.7th explosions5th explosions3rd explosionsAkh Morn …\n8.8th explosions6th explosions4th explosionsAkh Morn …\n8.7th explosions5th explosionsAkh Morn\n\nEach exaline will have a total of 8 waves of explosions,\nalthough only the first few are typically relevant.\nBeing hit by an exaline will likely not kill a topped player,\nbut it will inflict both \n \n \n 2m\n \n Damage Down\n and\neither \n \n \n 15\n \n Light Resistance Down II\n or \n \n \n 15\n \n Dark Resistance Down II\n,\ngiving vulnerability to the same element of the line that hit.\nThis is a bit hard to visualize without an image,\nso I will try to come back and add one,\nbut for now text will have to do.\ntl;dr: It’s three waves of exalines at funny angles.\nAkh Morn\nAt about the same time as the fifth set of explosions from the last wave of exalines—or\nthe ninth set of explosions overall—Pandora\nwill start casting Akh Morn.\nThis time, Akh Morn is a simple \nLP stack,\nwith no penalty for understacking.\nThe only catch is the targeting condition:\nOne random player on her left side is targeted by a light explosion,\nand one random player on her right is targeted by a dark explosion.\nIf no player is on the correct side, it targets a random player on the other side instead.\nHer position locks in at the start of the cast, so players need to position themselves afterwards.\nSequence 2: Paradise Regained\nJust before the last (irrelevant) exalines denotate,\nPandora centers, faces north, and starts casting Paradise Regained.\nThis kicks off the most complex of phase 5’s three sequences.\nWhen the cast completes, three 2-stack towers begin appearing, one by one,\nin an equilateral triangle around the center of the arena.\nThe towers always appear S, NW, and NE, but in a random order.\nThey will detonate in the order they appear.\nAs the second tower appears, Pandora begins casting Wings Dark and Light,\nand either her left wing will start glowing with light,\nor her right wing will start glowing with darkness.\nOne player will get attached to her by a light or dark tether,\nmatching the glowing wing.\nAbout 2/3 of the way through the cast,\nthe third tower appears, and Pandora’s other wing starts glowing.\nHer wing and tether attacks will follow the order that the wings glowed,\neither light then dark, or dark then light.\nThe mechanic goes off in three waves: the first tower, wing, and tether;\nthen the second tower, wing, and tether; and finally the last tower.\n\n\nThe towers explode in a painful raidwide with \n \n \n 2m\n \n\nif not soaked properly.\nThey inflict \n \n \n 7\n \n Magic Vulnerability Up\n, which lasts the duration of the mechanic,\nso whoever soaks the tower cannot soak another one, nor get hit by the tether.\n\n\nThe wing attack is a massive 225°[2] tankbuster cleave\nthat hits the entire quarter of the arena in front of Pandora,\nas well as the entire side of the corresponding wing.\nThe safe zone is therefore anywhere beside or behind her\nand on the right or left side, depending on the wing/element.\nBut immediately before she executes the cleave, she turns to face the main tank,\n(that is, the player with top enmity).\nSo the safe zone is actually relative to this player.\nAnyone other than the top enmity player hit by this attack\nwill receive a \n \n \n 2m\n \n, so cheesing it is not an option. [3]\nDespite having a visual element, the cleave is physical and inflicts \n \n \n 4\n \n Physical Vulnerability Up\n.\nThe \n \n \n \n makes the follow-up cleave lethal,\nbut not the other attacks in the sequence.\nThe target lock-in is typical for a tankbuster,\nwith the first target getting locked in early in the cast,\nand the second locking in roughly when the castbar completes.\n\n\nThe tether always has the same element as the cleave,\nand targets the farthest or nearest player other than the main tank,\ndepending on the element.\nThe tether moves to whoever is farthest or nearest automatically,\njust acting as a visual indication of who will be hit.\nIt cannot be passed otherwise.\nThe actual attack is a small circular tankbuster\nthat inflicts \n \n \n 4\n \n.\nThus, like the wing cleave, the same player cannot take it twice without facing lethal damage,\nnor can they take a tower on the same or next wave.\nIt is, however, possible for a player hit by the first tether to safely soak the last tower.\n\n\nNote that the attacks don’t come out at quite the same time:\nthe tower hits first, then the wing, then the tether, in rapid succession.\nIt is possible to move too early and get hit twice.\nSequence 3 Polarizing Strikes\nThe final mechanical sequence of this phase is Polarising Strikes,\nwhich Pandora begins casting after a single autoattack.\nThis autoattack gives her a chance to reorient towards the main tank\nbefore the next castbar locks her facing for the rest of the sequence.\nThe cast goes off as two line \nAoEs, one light and one dark.\nThe targeting is the same as with Akh Morn earlier:\nlight targets a random player on Pandora’s left side,\nwhile dark targets a random player on her right side.\nIf no players are on the correct side, a random player on the other side is targeted instead.\nThe lines are each \nLP stacks,\nwith the additional twist that the player in front—that is, closest to Pandora—is\naffected by \n \n \n 16\n \n Light Resistance Down II\n or \n \n \n 16\n \n Dark Resistance Down II\n,\nfor the same element they were hit by.\nTherefore, that player will receive lethal damage\nif hit by the same element again, for the remainder of the sequence.\nAfter the main line AoE, the line’s effect remains on the ground.\nAfter about 2 seconds, it explodes, dealing a follow-up blow to anyone caught in it.\nThis follow-up inflicts \n \n \n 2m\n \n, so get out of the way.\nNOTE: The actual AoE is slightly wider than the visual effects of the line make it seem.\nGive the line plenty of room when dodging.\nThis attack repeats three more times, for a total of four.\nThe subsequent casts are entitled Polarised Paths, but the effects are identical.[4]\nPandora’s Box\nIt couldn’t be a Pandora without a Box, would it?\nBut the contents of Pandora's Box really aren’t that interesting.\nIt’s just a tank LB3 check, although the visuals are stunning.\nPop the LB around the ‘d’ in the castbar, and with extra mits on top, and you should be all good.\nLoop\nFrom this point, the fight loops.\nPandora repeats the first three mechanics, Fulgent Blade,\nParadise Regained, and Polarizing Strikes.\nThe only difference is that the mechanics come faster the second time.\nNotably, Pandora will not autoattack before using Polarizing Strikes,\nso there is only a very narrow window to change her facing after Paradise Regained.\nAfter this, she uses Fulgent Blade for a third time,\nand this third instance is identical to the first two.\nEnrage\nFinally, frustrated with her lack of progress, Pandora begins the enrage cast,\nParadise Lost.\nFrom here on, simply a DPS check to free the lesbians and earn your totems.\nBut there is one last twist.\nAs the castbar reaches about halfway full, Ryne will lend her strength to the party,\nfilling the limit gauge by about 1 1/2 bars.\nAssuming you haven’t used a limit break since Pandora's Box,\nthis should completely fill the gauge.\nYou now have a free melee LB3, but act quick,\nbecause the window of opportunity is very tight.\nEven a few seconds of delay and the LB will not land before the enrage cast goes off.\nEnjoy the spectacular enrage sequence, with rainbows literally shooting off the lesbians\nas you race for the finish.\nIf you don’t make it… sorry, that’s rough.\nThere’s a brief easter egg cutscene, at least?\nIf you do make it, however, enjoy the final cutscene of the fight\nand your chance to curse YoshiP’s cowardice.\nThe background post-victory will make all the gposers jealous.\nAnd then go get one of the sickets weapons in the game,\nturn on that sweet “Genesis of Legends” title,\nand complain loudly about the lack of a framing kit.\nYou’ve earned it.\nAcknowledgments\nSpecial thanks on this page go to Shas'o Mahana, Tenkay,\nand Level Checker, plus all the usual thanks.\n\n\nInterestingly, in Japanese she’s called\nPandora Mitron (パンドラ・ミトロン),\nwhich comes off quite differently, ね?\nThe name is a reference to the Lunatic Pandora from FF8. ↩\n\n\nMany raidplans show it as a 240° (two-thirds of a circle) cleave,\nbased on misreading of earlier footage.\nCloser examination seems to indicate that 225° is the correct size. ↩\n\n\nI’ve heard some folks say it doesn’t inflict \n \n \n \n as well,\nbut I’m going by the story I’ve heard with the most supporting info.\nIf anyone has footage that definitively answers if the cleave does/doesn’t inflict\n\n \n \n \n, please let me know. ↩\n\n\nOddly, in Japanese, all four casts have the same name. I’m not sure about other languages.\nDon’t be confused by that, if you play in another language.\nAll four attacks are always the same. ↩\n\n\n","description":"Mechanical guide to phase 5 of Futures Rewritten (Ultimate).","id":"https://dynamis.gg/fru/p5/","title":"Phase 5: Pandora"},"https://dynamis.gg/fru/strats/":{"body":"","description":"","id":"https://dynamis.gg/fru/strats/","title":""},"https://dynamis.gg/fru/strats/burnt-strike/":{"body":"UNDER CONSTRUCTION\n\n\n\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n\n \n \n \n \n \n \n \n \n \n \n\nMT: \n Paladin\n Warrior\n Dark Knight\n Gunbreaker\n\nOT: \n Paladin\n Warrior\n Dark Knight\n Gunbreaker\n\nH1: \n White Mage\n Scholar\n Astrologian\n Sage\n\nH2: \n White Mage\n Scholar\n Astrologian\n Sage\n\nM1: \n Monk\n Dragoon\n Ninja\n Samurai\n Reaper\n Viper\n\nM2: \n Monk\n Dragoon\n Ninja\n Samurai\n Reaper\n Viper\n\nR1: \n Bard\n Machinist\n Dancer\n\nR2: \n Black Mage\n Summoner\n Red Mage\n Pictomancer\n\n\n","description":"","id":"https://dynamis.gg/fru/strats/burnt-strike/","title":"Burnt Strike"}},"docInfo":{"https://dynamis.gg/":{"body":0,"description":0,"title":0},"https://dynamis.gg/fru/":{"body":0,"description":4,"title":3},"https://dynamis.gg/fru/buffs/":{"body":950,"description":6,"title":2},"https://dynamis.gg/fru/i1/":{"body":392,"description":11,"title":2},"https://dynamis.gg/fru/p1/":{"body":849,"description":7,"title":3},"https://dynamis.gg/fru/p2/":{"body":1403,"description":7,"title":4},"https://dynamis.gg/fru/p3/":{"body":668,"description":7,"title":4},"https://dynamis.gg/fru/p4/":{"body":1548,"description":7,"title":3},"https://dynamis.gg/fru/p5/":{"body":1121,"description":7,"title":3},"https://dynamis.gg/fru/strats/":{"body":0,"description":0,"title":0},"https://dynamis.gg/fru/strats/burnt-strike/":{"body":51,"description":0,"title":2}},"length":11},"lang":"English"} \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..96807dc --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,39 @@ + + + + https://dynamis.gg/ + + + https://dynamis.gg/about/ + + + https://dynamis.gg/fru/ + + + https://dynamis.gg/fru/buffs/ + + + https://dynamis.gg/fru/i1/ + + + https://dynamis.gg/fru/p1/ + + + https://dynamis.gg/fru/p2/ + + + https://dynamis.gg/fru/p3/ + + + https://dynamis.gg/fru/p4/ + + + https://dynamis.gg/fru/p5/ + + + https://dynamis.gg/fru/page/1/ + + + https://dynamis.gg/fru/strats/burnt-strike/ + + diff --git a/sw.js b/sw.js new file mode 100644 index 0000000..d9cb4c7 --- /dev/null +++ b/sw.js @@ -0,0 +1,191 @@ +class Pwa { + + constructor(self) { + this.scope = self; + const Version = new URL(location).searchParams.get("v"); + this.CACHE_VERSION = Version; + //this.BASE_CACHE_FILES=['/js/theme.min.js','/js/theme_light.min.js','/abridge.css','/js/abridge.min.js','/','/404.html','/offline/','/manifest.json']; + this.BASE_CACHE_FILES = ['/','/404.html','/about/','/abridge.css','/android-chrome-192x192.png','/android-chrome-512x512.png','/apple-touch-icon.png','/archive/','/atom.xml','/banner.png','/blog/','/blog/page/1/','/browserconfig.xml','/contact/','/elasticlunr.min.js','/es/','/es/about/','/es/archive/','/es/atom.xml','/es/blog/','/es/blog/page/1/','/es/contact/','/es/page/1/','/es/privacy/','/es/tags/','/es/tags/features/','/es/tags/features/atom.xml','/es/tags/shortcodes/','/es/tags/shortcodes/atom.xml','/es/tags/video/','/es/tags/video/atom.xml','/es/video-streaming-sites/overview-embed-streamable/','/favicon-16x16.png','/favicon-32x32.png','/favicon.ico','/favicon.svg','/fonts/KaTeX_AMS-Regular.woff2','/fonts/KaTeX_Caligraphic-Bold.woff2','/fonts/KaTeX_Caligraphic-Regular.woff2','/fonts/KaTeX_Fraktur-Bold.woff2','/fonts/KaTeX_Fraktur-Regular.woff2','/fonts/KaTeX_Main-Bold.woff2','/fonts/KaTeX_Main-BoldItalic.woff2','/fonts/KaTeX_Main-Italic.woff2','/fonts/KaTeX_Main-Regular.woff2','/fonts/KaTeX_Math-BoldItalic.woff2','/fonts/KaTeX_Math-Italic.woff2','/fonts/KaTeX_SansSerif-Bold.woff2','/fonts/KaTeX_SansSerif-Italic.woff2','/fonts/KaTeX_SansSerif-Regular.woff2','/fonts/KaTeX_Script-Regular.woff2','/fonts/KaTeX_Size1-Regular.woff2','/fonts/KaTeX_Size2-Regular.woff2','/fonts/KaTeX_Size3-Regular.woff2','/fonts/KaTeX_Size4-Regular.woff2','/fonts/KaTeX_Typewriter-Regular.woff2','/fonts/Roboto-Bold.woff2','/fonts/Roboto-Italic.woff2','/fonts/Roboto-Mono-Italic.woff2','/fonts/Roboto-Mono.woff2','/fonts/Roboto.woff2','/fr/','/fr/about/','/fr/archive/','/fr/atom.xml','/fr/blog/','/fr/blog/page/1/','/fr/contact/','/fr/offline/','/fr/overview-code-blocks/','/fr/overview-images/','/fr/overview-images/corro.svg','/fr/overview-images/ferris-gesture.png','/fr/overview-images/ferris-gesture.svg','/fr/overview-images/ferris-happy.svg','/fr/overview-images/ferris.svg','/fr/overview-images/img/ferris-gesture.svg','/fr/overview-images/img/ferris.svg','/fr/overview-markdown-and-style/','/fr/overview-math/','/fr/overview-rich-content/','/fr/overview-rich-content/over9000-400.avif','/fr/overview-rich-content/over9000-640.avif','/fr/overview-rich-content/over9000-640.webp','/fr/overview-rich-content/over9000-960.avif','/fr/overview-rich-content/over9000.mp3','/fr/overview-rich-content/over9000.ogg','/fr/overview-rich-content/over9000_av1.mp4','/fr/overview-rich-content/over9000_vp9.webm','/fr/overview-showdata/','/fr/page/1/','/fr/page/2/','/fr/page/3/','/fr/privacy/','/fr/tags/','/fr/tags/audio/','/fr/tags/audio/atom.xml','/fr/tags/data/','/fr/tags/data/atom.xml','/fr/tags/features/','/fr/tags/features/atom.xml','/fr/tags/images/','/fr/tags/images/atom.xml','/fr/tags/markdown/','/fr/tags/markdown/atom.xml','/fr/tags/mathematics/','/fr/tags/mathematics/atom.xml','/fr/tags/shortcodes/','/fr/tags/shortcodes/atom.xml','/fr/tags/video/','/fr/tags/video/atom.xml','/fr/video-streaming-sites/overview-embed-streamable/','/fr/video-streaming-sites/overview-embed-vimeo/','/fr/video-streaming-sites/overview-embed-youtube/','/images/ferris-gesture.svg','/images/ferris.svg','/js/abridge.min.js','/js/abridge_nopwa.min.js','/js/abridge_nosearch.min.js','/js/abridge_nosearch_nopwa.min.js','/js/codecopy.js','/js/elasticlunr.min.js','/js/email.js','/js/katex-auto-render.min.js','/js/katex.min.js','/js/katexbundle.min.js','/js/katexoptions.js','/js/lunr.da.js','/js/lunr.da.min.js','/js/lunr.de.js','/js/lunr.de.min.js','/js/lunr.du.js','/js/lunr.du.min.js','/js/lunr.es.js','/js/lunr.es.min.js','/js/lunr.fi.js','/js/lunr.fi.min.js','/js/lunr.fr.js','/js/lunr.fr.min.js','/js/lunr.hu.js','/js/lunr.hu.min.js','/js/lunr.it.js','/js/lunr.it.min.js','/js/lunr.jp.js','/js/lunr.jp.min.js','/js/lunr.no.js','/js/lunr.no.min.js','/js/lunr.pt.js','/js/lunr.pt.min.js','/js/lunr.ro.js','/js/lunr.ro.min.js','/js/lunr.ru.js','/js/lunr.ru.min.js','/js/lunr.stemmer.support.js','/js/lunr.stemmer.support.min.js','/js/lunr.sv.js','/js/lunr.sv.min.js','/js/lunr.tr.js','/js/lunr.tr.min.js','/js/lunr.zh.js','/js/lunr.zh.min.js','/js/mathtex-script-type.min.js','/js/pagefind.search.js','/js/prestyle.js','/js/search.js','/js/search_elasticlunr.min.js','/js/search_tinysearch.min.js','/js/searchjava.js','/js/searchjavaugly.js','/js/sw_load.js','/js/sw_load.min.js','/js/theme.js','/js/theme.min.js','/js/theme_button.js','/js/theme_light.js','/js/theme_light.min.js','/js/tinysearch.js','/katex.min.css','/m1024.png','/m128.png','/m192.png','/m384.png','/m48.png','/m512.png','/m72.png','/m96.png','/manifest.json','/manifest.min.json','/mstile-150x150.png','/nojs.css','/offline/','/overview-abridge/','/overview-abridge/lighthouse.png','/overview-code-blocks/','/overview-images/','/overview-images/corro.svg','/overview-images/ferris-gesture.png','/overview-images/ferris-gesture.svg','/overview-images/ferris-happy.svg','/overview-images/ferris.svg','/overview-images/img/ferris-gesture.svg','/overview-images/img/ferris.svg','/overview-markdown-and-style/','/overview-math/','/overview-rich-content/','/overview-rich-content/over9000-400.avif','/overview-rich-content/over9000-640.avif','/overview-rich-content/over9000-640.webp','/overview-rich-content/over9000-960.avif','/overview-rich-content/over9000.mp3','/overview-rich-content/over9000.ogg','/overview-rich-content/over9000_av1.mp4','/overview-rich-content/over9000_vp9.webm','/overview-showdata/','/page/1/','/page/2/','/page/3/','/page/4/','/privacy/','/pt/','/pt/about/','/pt/contact/','/pt/page/1/','/pt/privacy/','/robots.txt','/safari-pinned-tab.svg','/search_index.en.json','/search_index.es.json','/search_index.fr.json','/search_index.pt.json','/sitemap.xml','/tags/','/tags/audio/','/tags/audio/atom.xml','/tags/config/','/tags/config/atom.xml','/tags/data/','/tags/data/atom.xml','/tags/features/','/tags/features/atom.xml','/tags/images/','/tags/images/atom.xml','/tags/markdown/','/tags/markdown/atom.xml','/tags/mathematics/','/tags/mathematics/atom.xml','/tags/shortcodes/','/tags/shortcodes/atom.xml','/tags/video/','/tags/video/atom.xml','/tinysearch_engine_bg.wasm','/video-streaming-sites/overview-embed-streamable/','/video-streaming-sites/overview-embed-vimeo/','/video-streaming-sites/overview-embed-youtube/']; + this.host = `${self.location.protocol}//${self.location.host}`; + console.info(`Host: ${this.host}`); + this.OFFLINE_PAGE = '/offline/'; + this.NOT_FOUND_PAGE = '/404.html'; + this.CACHE_NAME = `content-v${this.CACHE_VERSION}`; + // 3600=1hour, 28800=8hours, 86400=1day, 604800=1week, 1209600=2weeks + this.NORM_TTL = 0; + this.LONG_TTL = 0; + // keep the ttl on these lower: + this.TTL_NORM = ["sw.min.js", "sw_load.min.js"]; + // rarely change, may be a good idea to periodically refresh, incase I change these and forget to increment service worker version: + this.TTL_LONG = ["jpg", "jpeg", "png", "gif", "webp", "avif", "ico", "svg", "xsl", "txt"]; + // never change, cache forever unless service worker version is incremented: + this.TTL_EXEMPT = ["js", "css", "otf", "eot", "ttf", "woff", "woff2", "mp4", "webm", "mp3", "ogg"]; + // skip these extensions so they expire same time as html: st,wasm,json(search), xml(sitemap,atom,rss) + } + + canCache(url) { + if (url.startsWith("http://localhost")) { + return false; + } + const result = url.toString().startsWith(this.host); + return result; + } + + getFileExtension(url) { + const extension = url.split('.').reverse()[0].split('?')[0]; + return (extension.endsWith('/')) ? '/' : extension; + } + getFileName(url) { + const filename = url.substring(url.lastIndexOf('/') + 1).split('?')[0]; + return (filename.endsWith('/')) ? '/' : filename; + } + + getTTL(url) { + if (typeof url === 'string') { + const extension = this.getFileExtension(url); + const filename = this.getFileName(url); + + if (this.TTL_NORM.indexOf(filename) > -1) { + console.info(url + ' contains a TTL_NORM filename'); + return this.NORM_TTL; + } + if (this.TTL_LONG.indexOf(extension) > -1) { + console.info(url + ' contains a TTL_LONG extension'); + return this.LONG_TTL; + } + if (this.TTL_EXEMPT.indexOf(extension) > -1) { + console.info(url + ' contains a TTL_EXEMPT extension'); + return null; + } + console.info(url + ' TTL_NORM'); + return this.NORM_TTL; + } + return null; + } + + async installServiceWorker() { + try { + await caches.open(this.CACHE_NAME).then((cache) => { + return cache.addAll(this.BASE_CACHE_FILES); + }, err => console.error(`Error with ${this.CACHE_NAME}`, err)); + return this.scope.skipWaiting(); + } + catch (err) { + return console.error("Error with installation: ", err); + } + } + + cleanupLegacyCache() { + + const currentCaches = [this.CACHE_NAME]; + + return new Promise( + (resolve, reject) => { + caches.keys() + .then((keys) => keys.filter((key) => !~currentCaches.indexOf(key))) + .then((legacy) => { + if (legacy.length) { + Promise.all(legacy.map((legacyKey) => caches.delete(legacyKey)) + ).then(() => resolve()).catch((err) => { + console.error("Error in legacy cleanup: ", err); + reject(err); + }); + } else { + resolve(); + } + }).catch((err) => { + console.error("Error in legacy cleanup: ", err); + reject(err); + }); + }); + } + + async preCacheUrl(url) { + const cache = await caches.open(this.CACHE_NAME); + const response = await cache.match(url); + if (!response) { + return fetch(url).then(resp => cache.put(url, resp.clone())); + } + return null; + } + + register() { + this.scope.addEventListener('install', event => { + event.waitUntil( + Promise.all([ + this.installServiceWorker(), + this.scope.skipWaiting(), + ])); + console.info('SW Installed'); + }); + + this.scope.addEventListener('activate', event => { + event.waitUntil(Promise.all( + [this.cleanupLegacyCache(), + this.scope.clients.claim(), + this.scope.skipWaiting()]).catch((err) => { + console.error("Activation error: ", err); + event.skipWaiting(); + })); + }); + + this.scope.addEventListener('fetch', event => { + event.respondWith( + caches.open(this.CACHE_NAME).then(async cache => { + // check if this is NOT a resource we allow cacheing (some other domain), if so fetch it instead of cache. + if (!this.canCache(event.request.url)) { + return fetch(event.request); + } + // check the cache for the requested resource + const response = await cache.match(event.request); + if (response) { + const headers = response.headers.entries(); + let date = null; + for (let pair of headers) { + if (pair[0] === 'date') { + date = new Date(pair[1]); + break; + } + } + // date is not working, so ignore TTL and just serve the cached resource. + if (!date) { + return response; + } + const age = parseInt(((new Date().getTime() - date.getTime()) / 1000).toString()); + const ttl = this.getTTL(event.request.url); + if (ttl === null || (ttl && age < ttl)) { + // return the resource if it is not beyond the TTL + return response; + } + } + // if we made it here then we either did not have the cache, or the TTL was expired. + return fetch(event.request.clone()).then(resp => { + if (resp.status < 400) { + if (this.canCache(event.request.url)) { + cache.put(event.request, resp.clone()); + } + return resp; + } + else { + return cache.match(this.NOT_FOUND_PAGE); + } + }).catch(err => { + // if we made it here then we were unable to fetch the resource. + // maybe we were only fetching because of expired TTL, so use the cache regardless of TTL: + if (typeof event.request.url === 'string') { + console.info("url: "+event.request.url) + } + if (response) { + return response; + } + // if we made it here then we were unable to fetch the resource and do not have it cached. + console.error(`Error fetching ${event.request.url} resulted in offline`, err); + return cache.match(this.OFFLINE_PAGE); + }) + })); + }); + } +} + +const pwa = new Pwa(self); +pwa.register(); diff --git a/sw.min.js b/sw.min.js new file mode 100644 index 0000000..16b26b9 --- /dev/null +++ b/sw.min.js @@ -0,0 +1 @@ +class Pwa{constructor(e){this.scope=e;var s=new URL(location).searchParams.get("v");this.CACHE_VERSION=s,this.BASE_CACHE_FILES=["/","/404.html","/about/","/abridge.css","/android-chrome-192x192.png","/android-chrome-512x512.png","/apple-touch-icon.png","/archive/","/atom.xml","/banner.png","/blog/","/blog/page/1/","/browserconfig.xml","/contact/","/elasticlunr.min.js","/es/","/es/about/","/es/archive/","/es/atom.xml","/es/blog/","/es/blog/page/1/","/es/contact/","/es/page/1/","/es/privacy/","/es/tags/","/es/tags/features/","/es/tags/features/atom.xml","/es/tags/shortcodes/","/es/tags/shortcodes/atom.xml","/es/tags/video/","/es/tags/video/atom.xml","/es/video-streaming-sites/overview-embed-streamable/","/favicon-16x16.png","/favicon-32x32.png","/favicon.ico","/favicon.svg","/fonts/KaTeX_AMS-Regular.woff2","/fonts/KaTeX_Caligraphic-Bold.woff2","/fonts/KaTeX_Caligraphic-Regular.woff2","/fonts/KaTeX_Fraktur-Bold.woff2","/fonts/KaTeX_Fraktur-Regular.woff2","/fonts/KaTeX_Main-Bold.woff2","/fonts/KaTeX_Main-BoldItalic.woff2","/fonts/KaTeX_Main-Italic.woff2","/fonts/KaTeX_Main-Regular.woff2","/fonts/KaTeX_Math-BoldItalic.woff2","/fonts/KaTeX_Math-Italic.woff2","/fonts/KaTeX_SansSerif-Bold.woff2","/fonts/KaTeX_SansSerif-Italic.woff2","/fonts/KaTeX_SansSerif-Regular.woff2","/fonts/KaTeX_Script-Regular.woff2","/fonts/KaTeX_Size1-Regular.woff2","/fonts/KaTeX_Size2-Regular.woff2","/fonts/KaTeX_Size3-Regular.woff2","/fonts/KaTeX_Size4-Regular.woff2","/fonts/KaTeX_Typewriter-Regular.woff2","/fonts/Roboto-Bold.woff2","/fonts/Roboto-Italic.woff2","/fonts/Roboto-Mono-Italic.woff2","/fonts/Roboto-Mono.woff2","/fonts/Roboto.woff2","/fr/","/fr/about/","/fr/archive/","/fr/atom.xml","/fr/blog/","/fr/blog/page/1/","/fr/contact/","/fr/offline/","/fr/overview-code-blocks/","/fr/overview-images/","/fr/overview-images/corro.svg","/fr/overview-images/ferris-gesture.png","/fr/overview-images/ferris-gesture.svg","/fr/overview-images/ferris-happy.svg","/fr/overview-images/ferris.svg","/fr/overview-images/img/ferris-gesture.svg","/fr/overview-images/img/ferris.svg","/fr/overview-markdown-and-style/","/fr/overview-math/","/fr/overview-rich-content/","/fr/overview-rich-content/over9000-400.avif","/fr/overview-rich-content/over9000-640.avif","/fr/overview-rich-content/over9000-640.webp","/fr/overview-rich-content/over9000-960.avif","/fr/overview-rich-content/over9000.mp3","/fr/overview-rich-content/over9000.ogg","/fr/overview-rich-content/over9000_av1.mp4","/fr/overview-rich-content/over9000_vp9.webm","/fr/overview-showdata/","/fr/page/1/","/fr/page/2/","/fr/page/3/","/fr/privacy/","/fr/tags/","/fr/tags/audio/","/fr/tags/audio/atom.xml","/fr/tags/data/","/fr/tags/data/atom.xml","/fr/tags/features/","/fr/tags/features/atom.xml","/fr/tags/images/","/fr/tags/images/atom.xml","/fr/tags/markdown/","/fr/tags/markdown/atom.xml","/fr/tags/mathematics/","/fr/tags/mathematics/atom.xml","/fr/tags/shortcodes/","/fr/tags/shortcodes/atom.xml","/fr/tags/video/","/fr/tags/video/atom.xml","/fr/video-streaming-sites/overview-embed-streamable/","/fr/video-streaming-sites/overview-embed-vimeo/","/fr/video-streaming-sites/overview-embed-youtube/","/images/ferris-gesture.svg","/images/ferris.svg","/js/abridge.min.js","/js/abridge_nopwa.min.js","/js/abridge_nosearch.min.js","/js/abridge_nosearch_nopwa.min.js","/js/codecopy.js","/js/elasticlunr.min.js","/js/email.js","/js/katex-auto-render.min.js","/js/katex.min.js","/js/katexbundle.min.js","/js/katexoptions.js","/js/lunr.da.js","/js/lunr.da.min.js","/js/lunr.de.js","/js/lunr.de.min.js","/js/lunr.du.js","/js/lunr.du.min.js","/js/lunr.es.js","/js/lunr.es.min.js","/js/lunr.fi.js","/js/lunr.fi.min.js","/js/lunr.fr.js","/js/lunr.fr.min.js","/js/lunr.hu.js","/js/lunr.hu.min.js","/js/lunr.it.js","/js/lunr.it.min.js","/js/lunr.jp.js","/js/lunr.jp.min.js","/js/lunr.no.js","/js/lunr.no.min.js","/js/lunr.pt.js","/js/lunr.pt.min.js","/js/lunr.ro.js","/js/lunr.ro.min.js","/js/lunr.ru.js","/js/lunr.ru.min.js","/js/lunr.stemmer.support.js","/js/lunr.stemmer.support.min.js","/js/lunr.sv.js","/js/lunr.sv.min.js","/js/lunr.tr.js","/js/lunr.tr.min.js","/js/lunr.zh.js","/js/lunr.zh.min.js","/js/mathtex-script-type.min.js","/js/pagefind.search.js","/js/prestyle.js","/js/search.js","/js/search_elasticlunr.min.js","/js/search_tinysearch.min.js","/js/searchjava.js","/js/searchjavaugly.js","/js/sw_load.js","/js/sw_load.min.js","/js/theme.js","/js/theme.min.js","/js/theme_button.js","/js/theme_light.js","/js/theme_light.min.js","/js/tinysearch.js","/katex.min.css","/m1024.png","/m128.png","/m192.png","/m384.png","/m48.png","/m512.png","/m72.png","/m96.png","/manifest.json","/manifest.min.json","/mstile-150x150.png","/nojs.css","/offline/","/overview-abridge/","/overview-abridge/lighthouse.png","/overview-code-blocks/","/overview-images/","/overview-images/corro.svg","/overview-images/ferris-gesture.png","/overview-images/ferris-gesture.svg","/overview-images/ferris-happy.svg","/overview-images/ferris.svg","/overview-images/img/ferris-gesture.svg","/overview-images/img/ferris.svg","/overview-markdown-and-style/","/overview-math/","/overview-rich-content/","/overview-rich-content/over9000-400.avif","/overview-rich-content/over9000-640.avif","/overview-rich-content/over9000-640.webp","/overview-rich-content/over9000-960.avif","/overview-rich-content/over9000.mp3","/overview-rich-content/over9000.ogg","/overview-rich-content/over9000_av1.mp4","/overview-rich-content/over9000_vp9.webm","/overview-showdata/","/page/1/","/page/2/","/page/3/","/page/4/","/privacy/","/pt/","/pt/about/","/pt/contact/","/pt/page/1/","/pt/privacy/","/robots.txt","/safari-pinned-tab.svg","/search_index.en.json","/search_index.es.json","/search_index.fr.json","/search_index.pt.json","/sitemap.xml","/tags/","/tags/audio/","/tags/audio/atom.xml","/tags/config/","/tags/config/atom.xml","/tags/data/","/tags/data/atom.xml","/tags/features/","/tags/features/atom.xml","/tags/images/","/tags/images/atom.xml","/tags/markdown/","/tags/markdown/atom.xml","/tags/mathematics/","/tags/mathematics/atom.xml","/tags/shortcodes/","/tags/shortcodes/atom.xml","/tags/video/","/tags/video/atom.xml","/tinysearch_engine_bg.wasm","/video-streaming-sites/overview-embed-streamable/","/video-streaming-sites/overview-embed-vimeo/","/video-streaming-sites/overview-embed-youtube/"],this.host=e.location.protocol+"//"+e.location.host,this.OFFLINE_PAGE="/offline/",this.NOT_FOUND_PAGE="/404.html",this.CACHE_NAME="content-v"+this.CACHE_VERSION,this.NORM_TTL=0,this.LONG_TTL=0,this.TTL_NORM=["sw.min.js","sw_load.min.js"],this.TTL_LONG=["jpg","jpeg","png","gif","webp","avif","ico","svg","xsl","txt"],this.TTL_EXEMPT=["js","css","otf","eot","ttf","woff","woff2","mp4","webm","mp3","ogg"]}canCache(e){return!e.startsWith("http://localhost")&&e.toString().startsWith(this.host)}getFileExtension(e){e=e.split(".").reverse()[0].split("?")[0];return e.endsWith("/")?"/":e}getFileName(e){e=e.substring(1+e.lastIndexOf("/")).split("?")[0];return e.endsWith("/")?"/":e}getTTL(e){var s;return"string"==typeof e?(s=this.getFileExtension(e),e=this.getFileName(e),~this.TTL_NORM.indexOf(e)?this.NORM_TTL:~this.TTL_LONG.indexOf(s)?this.LONG_TTL:~this.TTL_EXEMPT.indexOf(s)?null:this.NORM_TTL):null}async installServiceWorker(){try{return await caches.open(this.CACHE_NAME).then(e=>e.addAll(this.BASE_CACHE_FILES),e=>{}),this.scope.skipWaiting()}catch(e){}}cleanupLegacyCache(){let r=[this.CACHE_NAME];return new Promise((s,t)=>{caches.keys().then(e=>e.filter(e=>!~r.indexOf(e))).then(e=>{e.length?Promise.all(e.map(e=>caches.delete(e))).then(()=>s()).catch(e=>{t(e)}):s()}).catch(e=>{t(e)})})}async preCacheUrl(s){let t=await caches.open(this.CACHE_NAME);return await t.match(s)?null:fetch(s).then(e=>t.put(s,e.clone()))}register(){this.scope.addEventListener("install",e=>{e.waitUntil(Promise.all([this.installServiceWorker(),this.scope.skipWaiting()]))}),this.scope.addEventListener("activate",s=>{s.waitUntil(Promise.all([this.cleanupLegacyCache(),this.scope.clients.claim(),this.scope.skipWaiting()]).catch(e=>{s.skipWaiting()}))}),this.scope.addEventListener("fetch",o=>{o.respondWith(caches.open(this.CACHE_NAME).then(async s=>{if(!this.canCache(o.request.url))return fetch(o.request);let t=await s.match(o.request);if(t){var r;let e=null;for(r of t.headers.entries())if("date"===r[0]){e=new Date(r[1]);break}if(!e)return t;var i=parseInt(""+((new Date).getTime()-e.getTime())/1e3),a=this.getTTL(o.request.url);if(null===a||a&&ie.status<400?(this.canCache(o.request.url)&&s.put(o.request,e.clone()),e):s.match(this.NOT_FOUND_PAGE)).catch(e=>(o.request.url,t||s.match(this.OFFLINE_PAGE)))}))})}}let pwa=new Pwa(self);pwa.register(); \ No newline at end of file diff --git a/tinysearch_engine_bg.wasm b/tinysearch_engine_bg.wasm new file mode 100644 index 0000000..6524c13 Binary files /dev/null and b/tinysearch_engine_bg.wasm differ