diff --git a/asset-manifest.json b/asset-manifest.json
index f266a1a..702d50d 100644
--- a/asset-manifest.json
+++ b/asset-manifest.json
@@ -1,8 +1,8 @@
{
"files": {
- "main.css": "/static/css/main.774a7c31.chunk.css",
- "main.js": "/static/js/main.de74fa0f.chunk.js",
- "main.js.map": "/static/js/main.de74fa0f.chunk.js.map",
+ "main.css": "/static/css/main.ad03a1ba.chunk.css",
+ "main.js": "/static/js/main.e9249814.chunk.js",
+ "main.js.map": "/static/js/main.e9249814.chunk.js.map",
"runtime-main.js": "/static/js/runtime-main.d953606e.js",
"runtime-main.js.map": "/static/js/runtime-main.d953606e.js.map",
"static/js/2.f504080a.chunk.js": "/static/js/2.f504080a.chunk.js",
@@ -10,14 +10,14 @@
"static/js/3.a30a2335.chunk.js": "/static/js/3.a30a2335.chunk.js",
"static/js/3.a30a2335.chunk.js.map": "/static/js/3.a30a2335.chunk.js.map",
"index.html": "/index.html",
- "static/css/main.774a7c31.chunk.css.map": "/static/css/main.774a7c31.chunk.css.map",
+ "static/css/main.ad03a1ba.chunk.css.map": "/static/css/main.ad03a1ba.chunk.css.map",
"static/js/2.f504080a.chunk.js.LICENSE.txt": "/static/js/2.f504080a.chunk.js.LICENSE.txt",
"static/media/style.css": "/static/media/skilltree_div_overlay.6d142e79.png"
},
"entrypoints": [
"static/js/runtime-main.d953606e.js",
"static/js/2.f504080a.chunk.js",
- "static/css/main.774a7c31.chunk.css",
- "static/js/main.de74fa0f.chunk.js"
+ "static/css/main.ad03a1ba.chunk.css",
+ "static/js/main.e9249814.chunk.js"
]
}
\ No newline at end of file
diff --git a/index.html b/index.html
index 768308b..1593059 100644
--- a/index.html
+++ b/index.html
@@ -1 +1 @@
-
NGS Planner
\ No newline at end of file
+NGS Planner
\ No newline at end of file
diff --git a/static/css/main.774a7c31.chunk.css b/static/css/main.774a7c31.chunk.css
deleted file mode 100644
index e75ae2a..0000000
--- a/static/css/main.774a7c31.chunk.css
+++ /dev/null
@@ -1,2 +0,0 @@
-body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,"Courier New",monospace}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,here it is. html,hgroup,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,the file to use and tweak as fits you best. If you"re more of the copy-and-paste type, or just want an in-page preview of what you"ll be getting,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}table{border-collapse:collapse}*{border:0;margin:0;padding:0;box-sizing:border-box;outline:0}.noSelect{-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}@font-face{font-family:"ngs";src:url(/static/media/4.b3395666.woff) format("woff")}@font-face{font-family:"ngs2";src:url(/static/media/3.c923286b.woff) format("woff")}@font-face{font-family:"ngs3";src:url(/static/media/2.32e8ae4f.woff) format("woff")}@font-face{font-family:"ngs4";src:url(/static/media/1.3f72ad8c.woff) format("woff")}@font-face{font-family:"Segoe UI Symbol";src:url(/static/media/seguisym.e8cb9d09.ttf) format("truetype")}a,a:active,a:hover,a:visited{color:#fff;text-decoration:none}a:active,a:hover{background-color:rgba(113,169,189,.33)}hr{border-bottom:1px solid hsla(0,0%,50.2%,.5)}img{vertical-align:middle}html{min-height:-webkit-fill-available}body{background-image:url(https://pbs.twimg.com/media/E8tfm23VUAQTAAu?format=jpg&name=4096x4096);background-color:#484848;background-repeat:no-repeat;background-position:50%;background-attachment:fixed;background-size:cover;color:#fff;font-family:ngs,Arial,sans-serif;font-size:16px;font-weight:400;text-align:center;text-shadow:-1px -1px 0 rgba(0,0,0,.66),1px -1px 0 rgba(0,0,0,.66),-1px 1px 0 rgba(0,0,0,.66),1px 1px 0 rgba(0,0,0,.66);min-height:100vh;min-height:-webkit-fill-available}table{border-spacing:0}table td{vertical-align:top}ul{list-style-type:none;-webkit-padding-start:0;padding-inline-start:0}em{font-style:normal}header a{color:#fff;text-decoration:none}header a:hover{background:linear-gradient(45deg,rgba(76,113,126,.66),rgba(113,169,189,.66));text-decoration:none}.main,header{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,450px));-webkit-justify-content:center;justify-content:center;grid-gap:10px;gap:10px}.main{margin:0 10px}header{background-color:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:left;margin:0;padding:0 10px;line-height:50px;height:50px}.headerWrapper{grid-area:1/span 3;display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr) minmax(0,auto);-webkit-align-items:stretch;align-items:stretch}header a{display:block;height:50px}.logo{font-family:"ngs2";margin-right:auto;font-size:24px;white-space:nowrap;justify-self:start}.logo span{font-size:16px;text-transform:uppercase}.logo span:after{content:".com"}.logo img{height:40px}.logo a{padding:0 45px 0 15px}.navigation{text-align:left;justify-self:start}.navigation a{padding:0 15px}.navigation li{display:inline-block;border-color:hsla(0,0%,100%,.13);border-left:1px hsla(0,0%,100%,.13);border-style:solid;font-size:17px;font-family:"ngs2"}.navigation li:last-child{border-right-width:1px}.rightNav{text-align:right;justify-self:end}.rightNav a{padding:0 15px}.rightNav img{height:40px;margin-bottom:5px;-webkit-clip-path:circle(44%);clip-path:circle(44%)}.dotMenu,.navigation .miniNav{display:inline-block;font-size:24px;font-weight:900;letter-spacing:2px}.miniNav{display:none;text-align:right}@media screen and (max-width:860px){.logo a{padding:0 10px}.logo{font-size:22px}.logo span{font-size:14px}.logo span:after{content:""}.loginNav,.navigation>ul{display:none}.miniNav{display:inline;display:initial}}.box{color:#fff;background-clip:padding-box;background-color:rgba(24,36,48,.66);margin:10px 0 0;text-align:left;padding-bottom:10px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.box h3,dt{font-size:12pt;font-weight:400;padding:0 5px;margin:5px}.box h3,.box tr,dt{border-bottom:1px solid hsla(0,0%,50.2%,.5)}.box tr{background-repeat:no-repeat;background-position:0 100%}.box tr:last-child{border-bottom:0}.box td{padding:0 5px;white-space:nowrap}.box td:first-child{color:#97e2fc}.box td:last-child{text-align:right}.basicInfo{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr) minmax(0,1fr);grid-template-areas:"author author player" "build build character" "class class2 classlv" "subclass subclass2 subclasslv";margin:10px 10px 0;padding:0 5px}.statsInfo{background-color:rgba(0,0,0,.33);margin:5px 10px 0;padding:0 5px 5px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,auto) minmax(0,.66fr) minmax(0,1fr);grid-template-areas:"bp bp2 bpGraph bpGraph" "hp hp2 hpGraph hpGraph" "pp pp2 ppGraph ppGraph" "atk atk2 atkGraph atkGraph" "def def2 defGraph defGraph" "wepUp wepUp2 wepUp2 wepUp3" "res res2 res2 res3" "dmgRes dmgRes2 dmgRes2 dmgRes2"}.basicInfo>div,.statsInfo>div{border-bottom:1px solid hsla(0,0%,50.2%,.5);line-height:25px;position:relative;padding-bottom:-1px}.basicInfo>div:nth-child(-n+4),.statsInfo>div:nth-child(-n+8){color:#97e2fc}.statsInfo>div:nth-child(n+9):nth-child(-n+13){text-align:right}.barGraph{margin:8px 0 8px auto;background:linear-gradient(90deg,#65beef,#f5ee3c);width:75%}.barGraph,.barOverlay{display:block;height:8px}.barOverlay{border:2px solid #000}.boxTitleBar{background-color:rgba(124,144,148,.66);text-align:left;display:-webkit-flex;display:flex;-webkit-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-justify-content:space-between;justify-content:space-between}.boxTitleBar,.boxTitleBar h1{color:#fff;font-weight:400;font-size:18px}.boxTitleBar h1{margin-right:10px;padding:13px 13px 7px}.boxTitleBar h1:before{font-family:"Segoe UI Symbol";content:" \25C6";margin-right:10px}.viewedEquipName{color:#fff;font-weight:400;font-size:18px;margin:10px 10px 0;text-align:left}.viewedEquipName img{margin-right:5px;vertical-align:top}.saveControls{margin-top:10px;padding:0 10px;text-align:right}.infoBuffs{margin:0 auto;width:90%}.infoBuffs:last-child{margin-bottom:10px}.infobuffs li{margin:5px 0}.infoBuffs li:hover{background:linear-gradient(45deg,rgba(76,113,126,.66),rgba(113,169,189,.66))}.infoBuffs li ul{width:100%}.infoBuffs li ul li{width:100%;padding-left:20px}.infoBuffs li ul li:hover{background:transparent}.box p{padding:10px 10px 0}.equipPalette{margin:10px 10px 0;display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;-webkit-flex-flow:row wrap;flex-flow:row wrap;white-space:nowrap}.equipPaletteSlotWrapper{background-color:hsla(0,0%,50.2%,.5);cursor:pointer!important;padding:10px}.equipPaletteSlotWrapper span{margin:0 10px 0 0;color:#ffcf04;font-size:14pt;font-family:ngs2,Arial,sans-serif}.equipPaletteSlotWrapper img{height:48px;border:1px;border-style:solid;background:radial-gradient(#c4c4c4,grey);border-color:grey}.equipPaletteSlot{text-align:center;-webkit-flex:1 1;flex:1 1}.equipPaletteSlot:first-child{padding-right:10px}.equipPaletteSlot:hover img{outline:2px solid rgba(54,255,255,.66)}.equipPalette h3{color:#97e2fc;font-size:16px;font-weight:400;white-space:nowrap}.equipDetails{display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;-webkit-flex-flow:row wrap;flex-flow:row wrap;margin:10px 10px 0 0;text-align:left}.equipAugs{-webkit-flex:1 1 auto;flex:1 1 auto}.equipAugs li{background-color:hsla(0,0%,50.2%,.5);color:#fff;margin:0 0 5px 10px;padding:12px 10px 7px;cursor:pointer!important}.equipAugs li:hover{background:linear-gradient(45deg,rgba(76,113,126,.66),rgba(113,169,189,.66));outline:2px solid #1ce3e3}.equipAugsExpand{margin:0 10px 0 0;display:inline}.tooltip{cursor:help}.tooltip span{visibility:hidden;width:200px;background-color:rgba(38,53,63,.9);padding:5px;position:absolute;white-space:normal;left:1em}.tooltip span,.xTooltip{color:#fff;font-size:10pt;text-align:left}.xTooltip{margin:0 10px 0 0;display:inline;cursor:help!important}[class*=BaseToolTop]{min-width:200px}.tooltip:hover span{visibility:visible}.pr{-webkit-flex:1 1 auto;flex:1 1 auto;margin:10px 10px 0 0;text-align:left}.pr li{margin:0 10px 2px;padding:5px}.pr li span{color:#fff}.aug:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABUUlEQVQ4y5WTMUvDcBDF75s4ufoF3KSL2EVKDYKhoEMdBEGig61NF4fYKoW2oLi7Obk46FwDLm5uLh0q/1VwcDj/79Jrr6FLhse797t7CQ2UOOWq18SLCwqdKvHzj+sddXllda2Q0EGX+OFbwF3tkjFb6XGe41Y5cf8jC96thrvnswdgzu+1Q3zzlgXvqkFwKqzvvT+dweyNdojvP7PgHeqETcmJd2XJlHUM0w65p18J8Iv6lczNeiLZCgw73NgOpe+88HWPT4YMtkzY2VswevxafMB+45bBlgk7ewtGg8lf9pG8B62OzEHclWwFJjt/YzvUcCMJcKgcR5LL7WjO2lMWz5l26ND1JMBVpTgUVmqHIpk9szfaoQNXlwC32oi3Zr8Vc36vHYrGO9kbWuuM2UofkOe4VU7d0TbvnW0W/jOhc+279JJWaq9pxXlxQTl0/wEsC5CUKM/JmAAAAABJRU5ErkJggg==);margin-right:5px;vertical-align:middle}.itemWeaponWrapper{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:16px}.rifle:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAD6SURBVDhPnZM7CsJAFEXvBIJYioJ2NroMe0FwD9oIbsK4CUv3YKEIli4jNnYGFEvRFGNuPuNLHL8HhkzC3JP3Hozqz7WuNQDXxU+EIXA8AGq40voUAIuBQnemsR4rtHpetCbpUTulMlCtAw7/fL3AhMlu6UVrGu9fwQyzTvpuwqTS7sQSIr/bMAJZ8tnfxhKGZWU2hCDf97cSIyD/SHKChPyhT5KcgJPPhsdKGCDvJEZQDLMdYpPINkUFyUEZLkIJ4c+yKtRoo/Xej/dWZGUSVtZsW4f4oNiWJKvgpcA2EynJZuPwVvFiPPM8Ez4Z5GKG2f+v8y26zgFwB0yEk2rlUPX0AAAAAElFTkSuQmCC);margin-right:5px;vertical-align:middle}.meat:before{content:url(data:image/png;base64,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ZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6aXB0Y0V4dD0iaHR0cDovL2lwdGMub3JnL3N0ZC9JcHRjNHhtcEV4dC8yMDA4LTAyLTI5LyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOnBsdXM9Imh0dHA6Ly9ucy51c2VwbHVzLm9yZy9sZGYveG1wLzEuMC8iCiAgICB4bWxuczpHSU1QPSJodHRwOi8vd3d3LmdpbXAub3JnL3htcC8iCiAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6Z2ltcDpiNDE3ZjVhMy00Y2JlLTQzYjUtYjYxZS1hOThlNTE3ODNkMGMiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ZTg5M2NjYzktMGNmNy00MzYxLTgyYWEtOTNlYjE2NDA5N2ExIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZDFjZDkxMGYtNjk2Zi00NjYzLWE0ZTItYTM3NzQ2ZmRjMzg0IgogICBHSU1QOkFQST0iMi4wIgogICBHSU1QOlBsYXRmb3JtPSJXaW5kb3dzIgogICBHSU1QOlRpbWVTdGFtcD0iMTYyNjYyMTc4MDEyNzIyMCIKICAgR0lNUDpWZXJzaW9uPSIyLjEwLjE4IgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiPgogICA8aXB0Y0V4dDpMb2NhdGlvbkNyZWF0ZWQ+CiAgICA8cmRmOkJhZy8+CiAgIDwvaXB0Y0V4dDpMb2NhdGlvbkNyZWF0ZWQ+CiAgIDxpcHRjRXh0OkxvY2F0aW9uU2hvd24+CiAgICA8cmRmOkJhZy8+CiAgIDwvaXB0Y0V4dDpMb2NhdGlvblNob3duPgogICA8aXB0Y0V4dDpBcnR3b3JrT3JPYmplY3Q+CiAgICA8cmRmOkJhZy8+CiAgIDwvaXB0Y0V4dDpBcnR3b3JrT3JPYmplY3Q+CiAgIDxpcHRjRXh0OlJlZ2lzdHJ5SWQ+CiAgICA8cmRmOkJhZy8+CiAgIDwvaXB0Y0V4dDpSZWdpc3RyeUlkPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo4M2ExMzIyMi03ZDQ4LTQ4ZWQtOGE1OS02MjBkN2ZhMTQwZDciCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjEtMDctMTlUMDA6MjM6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogICA8cGx1czpJbWFnZVN1cHBsaWVyPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6SW1hZ2VTdXBwbGllcj4KICAgPHBsdXM6SW1hZ2VDcmVhdG9yPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6SW1hZ2VDcmVhdG9yPgogICA8cGx1czpDb3B5cmlnaHRPd25lcj4KICAgIDxyZGY6U2VxLz4KICAgPC9wbHVzOkNvcHlyaWdodE93bmVyPgogICA8cGx1czpMaWNlbnNvcj4KICAgIDxyZGY6U2VxLz4KICAgPC9wbHVzOkxpY2Vuc29yPgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+tNuHggAAAAZiS0dEAAkAwgCcn8FETwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+UHEg8XAMyyoD4AAADKSURBVDjLY/x0JvI/AwWAhYGBgeHDvSdkaRZQkmFgQhaQCzvMIBd2GM7vX/2IoX/1I8IugGlGBhDND+H8wlA5rAYwoQsUhsphaEZm4zTg0SpbhkerbBkYGBixauhf/Yjh7aff+F2AbjOq3EMGw5QTGGHCRIxmdIOQDUFyASnJ4T+mAYWh8jhDGj2QC0PlsYdBYag8w/nZFjgNQteMNRqF+VkxFCHSASNGYmPC51R0m7EFMgtuA+SxsmFpBgYYP52J/E9JZmKBMcgFAO7rVSrc3CAxAAAAAElFTkSuQmCC)}.vege:before{content:url(data:image/png;base64,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5QsZlxXOW5zVcpU178lfGMxpKymu0xxGDEuIIwERMqoooQwLEVo1UkwkaT/q4R9y/AlyyeQqgZFjARWokBw/+B/87tbMT064ScEo0Pli2x8jQGAXaNRs+/vYthsngP8ZuNJa/kodmPkkvdbSwkdA3zZwcd3S5D3gcgcYfNIlQ3IkP00hnwfez+ibssDALdC95vbW3MfpA5CmrpZvgINDYLRA2ese7+5q7+3fM83+fgCpZ3K9hS3fUQAAD1VpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDQuNC4wLUV4aXYyIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOmlwdGNFeHQ9Imh0dHA6Ly9pcHRjLm9yZy9zdGQvSXB0YzR4bXBFeHQvMjAwOC0wMi0yOS8iCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpwbHVzPSJodHRwOi8vbnMudXNlcGx1cy5vcmcvbGRmL3htcC8xLjAvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElEPSJnaW1wOmRvY2lkOmdpbXA6OWFiZWMwMWQtYWMyNS00Nzg0LWI1N2ItYmJhYzlkNTZjNGZjIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjhiZjg3MzM1LTdhZjItNGEyYi1hMzc1LWI4MThmNTBlMGYwOSIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmQ5MzM1YTYyLWRhOGMtNDU5Ny1iZjkxLTdlZmRkY2ZjNTEyNyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iV2luZG93cyIKICAgR0lNUDpUaW1lU3RhbXA9IjE2MjY2MjE2ODY1MDI1MjgiCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4xOCIKICAgZGM6Rm9ybWF0PSJpbWFnZS9wbmciCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIj4KICAgPGlwdGNFeHQ6TG9jYXRpb25DcmVhdGVkPgogICAgPHJkZjpCYWcvPgogICA8L2lwdGNFeHQ6TG9jYXRpb25DcmVhdGVkPgogICA8aXB0Y0V4dDpMb2NhdGlvblNob3duPgogICAgPHJkZjpCYWcvPgogICA8L2lwdGNFeHQ6TG9jYXRpb25TaG93bj4KICAgPGlwdGNFeHQ6QXJ0d29ya09yT2JqZWN0PgogICAgPHJkZjpCYWcvPgogICA8L2lwdGNFeHQ6QXJ0d29ya09yT2JqZWN0PgogICA8aXB0Y0V4dDpSZWdpc3RyeUlkPgogICAgPHJkZjpCYWcvPgogICA8L2lwdGNFeHQ6UmVnaXN0cnlJZD4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6YzEzOTU4N2MtNjgyMi00NTZiLWExNmYtMDMzYzhhNDViNTExIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIxLTA3LTE5VDAwOjIxOjI2Ii8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICAgPHBsdXM6SW1hZ2VTdXBwbGllcj4KICAgIDxyZGY6U2VxLz4KICAgPC9wbHVzOkltYWdlU3VwcGxpZXI+CiAgIDxwbHVzOkltYWdlQ3JlYXRvcj4KICAgIDxyZGY6U2VxLz4KICAgPC9wbHVzOkltYWdlQ3JlYXRvcj4KICAgPHBsdXM6Q29weXJpZ2h0T3duZXI+CiAgICA8cmRmOlNlcS8+CiAgIDwvcGx1czpDb3B5cmlnaHRPd25lcj4KICAgPHBsdXM6TGljZW5zb3I+CiAgICA8cmRmOlNlcS8+CiAgIDwvcGx1czpMaWNlbnNvcj4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgWg++sAAAAGYktHRAAJAMIAnJ/BRE8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQflBxIPFRoD5jvGAAABqElEQVQ4y6WTO0hbYRiGn3MMCUKq0SB0CFGDF8QLtFSso4Nbt5Kgi4OLFxDMqIvWQdDBDEIvS22hW+jgkEFCsZCCESKKkiiiYuIxEQ2Sq2m9HQdJzNGjhfhNPz/f9/zv9/L+QsLXLfOM0gDE9qSChg0WE2L+hcMZYskfxxuIY7Z5MNs8OJyh/yvIDjucQdobS1FCgwDYreanAXBrxZI//qDpKYiQ8HXLsT2JlPiCEr2WaOwfwUga73qUn78O2A4lc812a6UCYrCY7hR0Di6SzlxhLNViMemZGGih5101ntUTxj5vEIlmVJXkTDw8zhBLnrMrpXB7j3B7I/R+WGY/nGbhYwdtTcbcOvnGinfylPv5Aqe8qi9j8qufkdk15sbf0lxjUHhyD6Dc7/fKMa8byqko0+HyhBn7ssGn0VaKdUWKhxQ5yIckUhe4/oQZ6qpDFASc7hA7B0n63tc8DrgPmV+UOL+QGbTVoikSmP6+SWujUd1ENci1LDP1LYBOKzLe38zZ30t8axJ2a6VakB5Csgmd+bFFZ9tLZoZbeFOlUQ9SoZ9Jkz0UWjf3DangiiIGYwAAAABJRU5ErkJggg==)}.fruit:before{content:url(data:image/png;base64,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I0BgF2jUbPv72LYbJ4D/GbjSWv5KHZj5JL3W0sJHQN82cHHd0uQ94HIHGHzSJUNyJD9NIZ8H3s/om7LAwC3Qveb21tzH6QOQpq6Wb4CDQ2C0QNnrHu/uau/t3zPN/n4AqWdyvYUt31EAAA9VaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1FeGl2MiI+CiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxuczppcHRjRXh0PSJodHRwOi8vaXB0Yy5vcmcvc3RkL0lwdGM0eG1wRXh0LzIwMDgtMDItMjkvIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6cGx1cz0iaHR0cDovL25zLnVzZXBsdXMub3JnL2xkZi94bXAvMS4wLyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIKICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOjY2OGIxMzEyLWY4OTgtNGMyNi04YWI1LTVmMTRiNTlkMmQyOSIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2MGZjNzE0NC1iNzU1LTRhMDMtOWQ4NS00NTg1YjIwNGUwZjgiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4YWNiYTNlZS03MTMwLTQ5NTgtOTQ1Zi1jZGIxODc3ZGViYjIiCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IldpbmRvd3MiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjI2NjIxNzM3NTM5MzUyIgogICBHSU1QOlZlcnNpb249IjIuMTAuMTgiCiAgIGRjOkZvcm1hdD0iaW1hZ2UvcG5nIgogICB4bXA6Q3JlYXRvclRvb2w9IkdJTVAgMi4xMCI+CiAgIDxpcHRjRXh0OkxvY2F0aW9uQ3JlYXRlZD4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OkxvY2F0aW9uQ3JlYXRlZD4KICAgPGlwdGNFeHQ6TG9jYXRpb25TaG93bj4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OkxvY2F0aW9uU2hvd24+CiAgIDxpcHRjRXh0OkFydHdvcmtPck9iamVjdD4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OkFydHdvcmtPck9iamVjdD4KICAgPGlwdGNFeHQ6UmVnaXN0cnlJZD4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OlJlZ2lzdHJ5SWQ+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjJiYjA3OGE3LTY2ZWEtNGIwYy05OTcyLTdhYzhmZjRjZTY2YiIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMS0wNy0xOVQwMDoyMjoxNyIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgIDxwbHVzOkltYWdlU3VwcGxpZXI+CiAgICA8cmRmOlNlcS8+CiAgIDwvcGx1czpJbWFnZVN1cHBsaWVyPgogICA8cGx1czpJbWFnZUNyZWF0b3I+CiAgICA8cmRmOlNlcS8+CiAgIDwvcGx1czpJbWFnZUNyZWF0b3I+CiAgIDxwbHVzOkNvcHlyaWdodE93bmVyPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6Q29weXJpZ2h0T3duZXI+CiAgIDxwbHVzOkxpY2Vuc29yPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6TGljZW5zb3I+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5J8fKPAAAABmJLR0QACQDCAJyfwURPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5QcSDxYRvxmxjQAAAWFJREFUOMulkz1IQmEUhp9+TAgUszDFkArUycFqighCamxoMKxormiKtmirpSJqaCpoKJQIaulnssG7NAhBUxJW9CN6CYpbptbN25ANcjNS3+k7h+88vOf7zqmQwj6FMlQN8Hx1X1KxobWJyr8u2LwCNq/wJ6SSMlUQkH7PYtRpqNdruBPTxQOOTh9xO3QM91rYOHwoHuAPxhnymBnts7AviEhJ+f+AaCzFbSJFj9uIqa4GT7uRwEm88DcCfMgKc1tX7AsiqUwWp60WJTch/Z0mJlcvWNm9pc2hZ2HMjrVBm+9gfvuazeMYz68ymY8s59FXlnZuAFg/uOflTSaZ/kQ4f2JqLaJuYS+UUNkLBL9tn12+5OXDEam4OXDbdXlxh1OvBgx0N6oKfR4zAIvjDrpcBmq1VXS5DCxPONWPODPSgqIo7IXEHNDE9GAzANYGLf5Z16/uKqSwTylnmap/DqXqC4unc3fRZfqSAAAAAElFTkSuQmCC)}.seafood:before{content:url(data:image/png;base64,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Hu/uau/t3zPN/n4AqWdyvYUt31EAAA9VaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1FeGl2MiI+CiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxuczppcHRjRXh0PSJodHRwOi8vaXB0Yy5vcmcvc3RkL0lwdGM0eG1wRXh0LzIwMDgtMDItMjkvIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6cGx1cz0iaHR0cDovL25zLnVzZXBsdXMub3JnL2xkZi94bXAvMS4wLyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIKICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOjA1YzJhYmIwLWI0YjYtNGMxYi1hNWVhLTRhYjk2OTNkNDljZSIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4NjY4Mzk3ZC1mN2FhLTQxOGMtOTI0MC1mMjhlZjBkNzhjNTciCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDplYTg2YjAzNS01Yzk2LTQ4MTEtYjQyMC1mYzk1ZjQxYjBjZGQiCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IldpbmRvd3MiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjI2NjIxNzYzNzc5ODY5IgogICBHSU1QOlZlcnNpb249IjIuMTAuMTgiCiAgIGRjOkZvcm1hdD0iaW1hZ2UvcG5nIgogICB4bXA6Q3JlYXRvclRvb2w9IkdJTVAgMi4xMCI+CiAgIDxpcHRjRXh0OkxvY2F0aW9uQ3JlYXRlZD4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OkxvY2F0aW9uQ3JlYXRlZD4KICAgPGlwdGNFeHQ6TG9jYXRpb25TaG93bj4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OkxvY2F0aW9uU2hvd24+CiAgIDxpcHRjRXh0OkFydHdvcmtPck9iamVjdD4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OkFydHdvcmtPck9iamVjdD4KICAgPGlwdGNFeHQ6UmVnaXN0cnlJZD4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OlJlZ2lzdHJ5SWQ+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjdlMDgxMDNiLTZhODUtNGE1MS1hNjMzLThkYTc5YjhmNDNjOSIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMS0wNy0xOVQwMDoyMjo0MyIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgIDxwbHVzOkltYWdlU3VwcGxpZXI+CiAgICA8cmRmOlNlcS8+CiAgIDwvcGx1czpJbWFnZVN1cHBsaWVyPgogICA8cGx1czpJbWFnZUNyZWF0b3I+CiAgICA8cmRmOlNlcS8+CiAgIDwvcGx1czpJbWFnZUNyZWF0b3I+CiAgIDxwbHVzOkNvcHlyaWdodE93bmVyPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6Q29weXJpZ2h0T3duZXI+CiAgIDxwbHVzOkxpY2Vuc29yPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6TGljZW5zb3I+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4CvUVGAAAABmJLR0QACQDCAJyfwURPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5QcSDxYreRVoPwAAAQ5JREFUOMtj/HQm8j8DBYCFgYGB4cO9J3gVqUQfZbiz1BpDXEBJhoGJkA1yYYcZ/v79z/D3H3aHEjRgVYMeQ16wHINixBGG/tUPsXsBn+3IoH/1I4bCUHnCLnjy+geG5sJQeYZHq2wxXIHhgp+//zEUTb0F1SSHYiPMUGQxDAPYWZkYVjXoMTAwMDD8+w9xNja/YzVAJfoow6/f/3AqLgyVZzhx7QP2MJAPP4xXMyQQHzJYaPGTFo2YhqB6Ce6F//8RYZAVIIPTgAlrHqFEJ9wFj1bZMjAwMODVzMDAwFAQIoc7EB+tskWJfwstfgZLbYifj1/9yHDi2kcUy7BGI7KkXNhhuCZ0ORhgpDQ7AwDpy2ah1T5IuQAAAABJRU5ErkJggg==)}.fruit:before,.gb:before,.meat:before,.seafood:before,.vege:before{margin-right:5px;vertical-align:middle}.gb:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAADvSURBVDhPY/zf5vefQVKEgYGVlYEk8Ps3A8PzNwyM/+cn/Wd48ZaBsXIjQ4O9CkM9EBMFONkZGCSEGZjANn//CRZrOHiHoRGIiQIgPUC9TFAuHJBkCBBgGAACIENAgLFpB0HD4Aag+x1kyP86D4IughuAHoC+amJgFxAyBMULyIaYzD7GcCbViqAhmIFIwBB0gD0QsRgCCxN0wPh/Sfp/hlsPoVxUgM3ZKIaoyWN3AQyAXAICyJpA3kEGeA0AAZBmdE0HHryDsogwAARAhiC7ovEQwltM4FwFyhhEAFjAgl0A0gPUS352/gW0+MUbBgCI3HpQtnXeGgAAAABJRU5ErkJggg==)}.itemWrapper,.itemWrapperActive{background-color:hsla(0,0%,62.7%,.33);margin:5px 10px;padding:10px 10px 6px;display:grid;grid-template-columns:minmax(56px,auto) minmax(0,1fr) minmax(0,auto) minmax(16px,auto);grid-template-rows:minmax(0,auto) minmax(0,1fr);grid-template-areas:"img itemname itemname rarity" "img properties controls controls";grid-gap:5px 0;gap:5px 0;border-bottom:4px solid transparent}.itemWrapperActive{background-color:rgba(255,192,0,.25);border-bottom:4px solid #ffd602}.itemImgWrapper{grid-area:img}.itemImgWrapper>img{background:radial-gradient(#c4c4c4,grey);width:48px;box-sizing:content-box;border:4px solid grey}.itemNameWrapper{font-size:16px;background-color:rgba(0,0,0,.33);grid-area:itemname;margin:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:3px 3px 0}.r1 .itemRarityWrapper{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAOVBMVEUAAABQvedQvedQvedQvecAAABQvedQvedQvedQvec1fZhQvedQvedQvedQvec0e5ZAlrdQvef///+jkh9rAAAAD3RSTlMADDM/QFlmZ4CYmr/LzPPOx8IIAAAAYElEQVQYV1XN2w6AIAwD0AGiXNRR/v9jDWML0qf1pMmIZsKhh6XWvQdgn1Rgm4TG3P6Tyr2zThJGBsiRVAySbRSki0zQTmRg3Rt4hWyQZ3cvUGIswOsEzvXtErjXt4foAzgvBxTH5FwDAAAAAElFTkSuQmCC)}.r2 .itemRarityWrapper{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAQlBMVEUAAABQvedQvecAAABQvedQvecAAABQvedQvedQvecZO0gaPUpQvecnW29QvedQvedQvedQvec0e5ZAlrdQvef///8ek38bAAAAEnRSTlMADDM0P0BZZmeAgoOYrL/LzPPlYKp8AAAAaUlEQVQYV1WNQRKAIAzEiiiKIkpZ//9VsVBG9tRkwkBUNy/t0MU48gyMSQT+id257LBduEfmBDwAroLL6cXk74UIX5teCBejojHRl5dl5UmLqYmgIlQ2KfPp3Mk5GRFr/w2biKv/hpvoBfVxCJJGPmEZAAAAAElFTkSuQmCC)}.r3 .itemRarityWrapper{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAQlBMVEUAAABQvedQvecAAABQvedQvecAAABQvedQvedQvecZO0gaPUpQvecnW29QvedQvedQvedQvec0e5ZAlrdQvef///8ek38bAAAAEnRSTlMADDM0P0BZZmeAgoOYrL/LzPPlYKp8AAAAZ0lEQVQY01WNWxKAMAgDqdYqPqrSeP+rqiAdmy+yswCRJQ7UJue2R6BVMvBX+lmeLH0F6dIkLQxADMgzspLybihgc6rBdoIdsB/1Fe+dG90HVger9XAW2VLapJxBwVi/YVKw1284iG71YAiS+eplSAAAAABJRU5ErkJggg==)}.r4 .itemRarityWrapper{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAQlBMVEUAAAB/4GF/4GEAAAB/4GF/4GEAAAB/4GF/4GF/4GEoRh4pSB9/4GE9bC9/4GF/4GF/4GF/4GFTkj9lsk1/4GH////yLQKtAAAAEnRSTlMADDM0P0BZZmeAgoOYrL/LzPPlYKp8AAAAbElEQVQYV1WNWxaFIAwDq3hVfKCGsP+tii3gNV+dOWkrYhl+ZagJ4csD+a0E8r/iFsSI1TUxpgSkNCp4kjCBPHo1r/DWyfAExtlUUVgkArpSuWc53BexVbEZd9dz3e2IV6diat84qzjaN54iN+4KCHvDQndWAAAAAElFTkSuQmCC)}.itemPropertiesWrapper{color:#fff;grid-area:properties;margin:0 10px;align-self:center}.itemPropertiesWrapper>span{white-space:nowrap;margin-right:10px}.itemControlsWrapper{grid-area:controls;justify-self:end;white-space:nowrap}.itemControlsWrapper>span:nth-child(odd){background-color:rgba(113,169,189,.33);cursor:pointer;min-width:26px}.itemControlsWrapper>span:nth-child(odd):hover{background-color:rgba(113,169,189,.33);cursor:pointer;background:linear-gradient(45deg,rgba(76,113,126,.66),rgba(113,169,189,.66));outline:2px solid #1ce3e3}.itemControlsWrapper>span:nth-child(2){background-color:rgba(0,0,0,.33);min-width:26px}.itemControlsWrapper>span{display:inline-block;padding:5px 0;text-align:center;margin:0 0 0 5px}.r1 img,.r2 img,.r3 img{background:radial-gradient(#4096b7,#347b96)!important;border-color:#4096b7!important}.r4 img{background:radial-gradient(#65b24d,#53923f)!important;border-color:#65b24d!important}.itemlist li span{background-repeat:no-repeat;background-position:0}.atk:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAvVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB9fX1+fn6AgICBgYEAAAAAAAAWFhZnZ2dqampra2uGhoaNjY2Tk5OUlJSVlZWWlpaXl5eYmJiZmZmampqcnJyhoaGjo6PGxsbHx8fLy8vOzs7Pz8/Y2Njd3d3e3t7h4eHi4uLk5OTm5ubn5+fo6Ojp6enq6urr6+v7ZHpCAAAAHHRSTlMASlRgYWJjZLGyt9Ld4+jq8PP09fn8/f39/f3+lwazPAAAAOFJREFUGFc9zutWwjAMAOCAQ8StgNIMtQUEcSuXObywAe3y/o9Fm3HMj5zk60lS0D5UDzh6KnSgiRqTskWpaYiYyJk0CpI7YmqC5RjdIUujQW1vNs5Ytgr6asOWvZ5a6QPcKxOenSmsT0H86Xaty4vz7fT/KZe9PbMkSTJ4mrazn/gQxzHgX6k/zkVra13+IqCjL0e24C+4kpynlfU1nV7YyK4QunLPI2NcB9vLLgznla9+ZoPH2bcvqvkQsKJ6d6FSiANddjVVYX29mCztUYijXU7e67AecdSRUgrhU2fk2ytPFy/r/7ajTAAAAABJRU5ErkJggg==);margin-right:5px;vertical-align:middle}.fixa{color:#ff8750}.fixa:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEUAAADquWjEMCyeJiOoTjarKSGuMSayOymzRC7NbjvQdj7TgEPYk0vbmU7boVOydEe4JBu8lFS9LB6/NyPFTizFhEnHVzHHikzKkU/MZDfMmlTELizHOTHos2jrumrELy3HOjHFLy3LRDfOTjvQWUDjnV7komHmqmTrumrvMyjzQC73TTP/d0j/hlL/k1v/oWT/vXz/xoP/zYgn/o31AAAAIXRSTlNASUqfn5+fn5+fn5+fn5+goKCgoKCgoKCgoKDk5ubm5+eowTOFAAAAqUlEQVQYVzWM2xKCMAwF1zsqonhHBUVAoFik/P/HmQ7TfTizJ5OEUVJVVYgQiiQj4r7vbxAEcBONKY25wsaYDVyNKfl0F/A7wYdL96E42XvHqWALa1dFpLL6wU+QXNnxsm2hbYdcyiDSGrQeMrIr5y98Bcmz1Ckc3dOjrbnnqsXLyZoFHBrhAIsm463UHPZK7WGu1JtHXdcz2O1gJvpi/EzTdGLvJyL38R9MbxJ3mFkqSgAAAABJRU5ErkJggg==);margin-right:5px;vertical-align:middle}.pot{color:#ff0}.pot:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAACCklEQVQ4T62U3UtUQRjGn1nMRIPSvbAQwWXXQGcw1nMSVyGIkC6TEjFD0GCpbvxnkkoWMohMxMIuQyII/MBmlWQmQXdRkvCD1IIM02UnmOOe3Tmr0sW+V4dn3vmdeZ9nGIICFSkQBy5ILXaqXGhc7sLumDD+w8faYNFyQyN1o5qRBX3tUPBvGk3J6U2E2pe0lhi/jGCk0hxguxKkfswDErcV/BtGo5z6C3YnrjXxxgJtOesBXQRhbz2ghXaFinW3UU4dgHXOQ4yGtZb5pi3FWdjOJZCGcRPEh68pq3VPN8npQ7CuBYiRK6CRoiMtBdb1BWKkATRyRmvxyTLY3Z9MEACVeF2FfXUBrFtCvKKgzQ4kU3ImBXZPQgxTlJCfCN397vqcG7+bmnhZB9rkO/ZmyNk0WM9i7lr+iTKr4kUt6NUTQJ/TYL3Lp4MSQxXYV+Vg95MQQ0FQ2zyU5ADrS0I8D6KE7CLUt5M/Go81KsvedozlPrDoCkSsBtR2JpacgEVXIWIBUDvtmM39sKNznvg/tiqcW80aO+cDe7AG8azaif/hGsRgNWijA9H1uwbk+qQH9KFZoWzFTGm+COyRTgbiaRVoOGXOuhcAuTHjAU00KZSaIPw4ALn1S29ODBQjGD5vgv4EQNpmPaD3R2bktD5+t4X+J99chQ/Uw6otNWDkJs+L/9h7879iwd6jf+o4tBMIsxJsAAAAAElFTkSuQmCC);margin-right:5px;vertical-align:middle}.clear{clear:both}.itemlistcontainer{overflow-y:scroll;overflow-x:hidden;margin:10px 5px 0 0;padding:2px}.itemWrapper:hover,.treeList li:hover{background-color:rgba(113,169,189,.33)}.itemWrapper:hover,.itemWrapperActive:hover,.treeList li:hover{outline:2px solid rgba(54,255,255,.66)}.boxmenu{font-size:12pt;margin:0 10px;display:-webkit-flex;display:flex;-webkit-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-justify-content:flex-start;justify-content:flex-start}.boxmenu li{background-color:rgba(115,120,125,.66);color:#fff;display:inline-block;margin:10px 5px 0 0;padding:5px;text-align:center;-webkit-flex-basis:27px;flex-basis:27px;white-space:nowrap;cursor:pointer!important}.boxmenu img{vertical-align:middle}.boxMenuClassIcon{max-height:16px}.pageControlDetails{background-color:rgba(25,30,35,.66)!important;margin:10px 5px 0 auto!important}.pageControlDetails:hover{background:linear-gradient(45deg,rgba(76,113,126,.66),rgba(113,169,189,.66));outline:2px solid #1ce3e3}.selected{background:linear-gradient(135deg,#60461b,#b0a34e);border-bottom:4px solid #ffd602}.unselected:hover{background:linear-gradient(45deg,rgba(76,113,126,.66),rgba(113,169,189,.66));border-bottom:0;padding-bottom:9px;outline:2px solid #1ce3e3}li.selected:hover{background:linear-gradient(135deg,#60461b,#b0a34e);outline:2px solid #1ce3e3}.itemBar{-webkit-justify-content:center;justify-content:center;display:-webkit-flex;display:flex;-webkit-flex-flow:row nowrap;flex-flow:row nowrap;margin:10px 10px 0;padding:0 2px}.itemBarFilter,.itemBarSort{-webkit-flex:1 1 100px;flex:1 1 100px;margin-right:10px}input{background-color:#101317;color:#fff;font-family:ngs,sans-serif;font-size:11pt;height:28px;padding:0 5px;text-shadow:-1px -1px 0 rgba(0,0,0,.66),1px -1px 0 rgba(0,0,0,.66),-1px 1px 0 rgba(0,0,0,.66),1px 1px 0 rgba(0,0,0,.66)}input:hover{outline:2px solid #30cdef}select{background-color:hsla(0,0%,50.2%,.5);color:#fff;font-family:ngs,sans-serif;font-size:11pt;height:28px;padding:5px 10px;text-shadow:-1px -1px 0 rgba(0,0,0,.66),1px -1px 0 rgba(0,0,0,.66),-1px 1px 0 rgba(0,0,0,.66),1px 1px 0 rgba(0,0,0,.66)}input.itemBarForm,select.itemBarForm{width:100%}option{background-color:grey}.boxExit{padding:4px 9px 8px;margin:4px}.boxExit:hover{background-color:#a80000;outline:2px solid red}.boxExit:after{content:" \2573";font-size:9pt}.exit{color:#fff}.customScrollbar::-webkit-scrollbar{width:4px;height:4px}.adminScrollbar::-webkit-scrollbar{width:16px;height:16px}.adminScrollbar::-webkit-scrollbar-track,.customScrollbar::-webkit-scrollbar-track{background:hsla(0,0%,50.2%,.8)}.adminScrollbar::-webkit-scrollbar-thumb,.customScrollbar::-webkit-scrollbar-thumb{background-color:hsla(0,0%,96.1%,.66)}.customScrollbar::-webkit-scrollbar-button{background-color:hsla(0,0%,63.5%,.8);height:4px;width:4px}adminScrollbar::-webkit-scrollbar-button{background-color:hsla(0,0%,63.5%,.8);height:16px;width:16px}.adminScrollbar::-webkit-scrollbar-corner,.customScrollbar::-webkit-scrollbar-corner{background-color:transparent}.containerX,.containerY{margin:10px;min-width:0}.treeListContainer{overflow-y:auto;margin:10px 10px 0}.treeSelectBox{outline:1px solid #36ffff;max-width:220px;position:absolute;left:-210px;top:-10px}.treeList{padding:0 2px 2px}.treeList li{background-color:hsla(0,0%,50.2%,.33);color:#fff;margin:5px 0 0;padding:10px;background-repeat:no-repeat;background-position:100%;background-origin:content-box;line-height:20px}li.treeListMain:after,li.treeListSub:after{margin-left:10px}li.treeListMain:after{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQCAYAAAAiYZ4HAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV9TpSJVETuIOGSoThZERXSTKhbBQmkrtOpgcukXNGlIUlwcBdeCgx+LVQcXZ10dXAVB8APEzc1J0UVK/F9SaBHjwXE/3t173L0DhHqZqWbHOKBqlpGMRcVMdlUMvCKAfgygF7MSM/V4ajENz/F1Dx9f7yI8y/vcn6NHyZkM8InEc0w3LOIN4ulNS+e8TxxiRUkhPiceM+iCxI9cl11+41xwWOCZISOdnCcOEYuFNpbbmBUNlXiKOKyoGuULGZcVzluc1XKVNe/JXxjMaSsprtMcRgxLiCMBETKqKKEMCxFaNVJMJGk/6uEfcvwJcsnkKoGRYwEVqJAcP/gf/O7WzE9OuEnBKND5YtsfI0BgF2jUbPv72LYbJ4D/GbjSWv5KHZj5JL3W0sJHQN82cHHd0uQ94HIHGHzSJUNyJD9NIZ8H3s/om7LAwC3Qveb21tzH6QOQpq6Wb4CDQ2C0QNnrHu/uau/t3zPN/n4AqWdyvY3+FZYAAAAGYktHRAArAJYAvQMcrhkAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQflBxEVNzPl4mzCAAAA7UlEQVQoz32SsZHCMBBF/9+hAy7iqgA6INYVcEOOqIEcQseoDruLA+fM5WS0oCUQkiXZsNFaetqnb5vLzRZ1tUevJGAOwnpP6gVrVL+/gMU89PU+o6E7eV3MMVn3x2BLBnMQ/t1GN8DlxuJq0juftLYhVQN0eR3eNUxw77xKbHK9bchdQ94fgykyXG626WG9F45jDvDKCiU2AHA9h9f5Di4yrGyYnh+q4d55pf7/6idLDgOAuI5pGlnmqGHXMYS2P6rWBKoOnsOuZQjtWjKapjJEGABmcdJrQa1RXM/Dd8nh0c+Xm6bgwlCbsr6oJ6B8mLNdGgfzAAAAAElFTkSuQmCC)}li.treeListSub:after{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAANCAYAAACdKY9CAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV9TpSJVETuIOGSoThZERXSTKhbBQmkrtOpgcukXNGlIUlwcBdeCgx+LVQcXZ10dXAVB8APEzc1J0UVK/F9SaBHjwXE/3t173L0DhHqZqWbHOKBqlpGMRcVMdlUMvCKAfgygF7MSM/V4ajENz/F1Dx9f7yI8y/vcn6NHyZkM8InEc0w3LOIN4ulNS+e8TxxiRUkhPiceM+iCxI9cl11+41xwWOCZISOdnCcOEYuFNpbbmBUNlXiKOKyoGuULGZcVzluc1XKVNe/JXxjMaSsprtMcRgxLiCMBETKqKKEMCxFaNVJMJGk/6uEfcvwJcsnkKoGRYwEVqJAcP/gf/O7WzE9OuEnBKND5YtsfI0BgF2jUbPv72LYbJ4D/GbjSWv5KHZj5JL3W0sJHQN82cHHd0uQ94HIHGHzSJUNyJD9NIZ8H3s/om7LAwC3Qveb21tzH6QOQpq6Wb4CDQ2C0QNnrHu/uau/t3zPN/n4AqWdyvY3+FZYAAAAGYktHRAArAJYAvQMcrhkAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQflBxEVNyRmMekFAAAA2UlEQVQoz22RPRKCMBCF39IzcBVKZ+QAnsAL0KgX8KdG8QBgk5KRoTcX8CapaEUOsBZKcBO2TL637+WFksUKcgjr3YYBoC1v9DuyEzg0knTJYRwhjCMk6ZLdexod1rsth3GEuRlePdrq62Yd2rKizhgP7oyxsBdJ13cCMzpjMIp13dA/E2Sng8g59G/ouiFdNzS8euGWHfdM5ePJAKDyC8GtZCoO2XHPIpLr5G62kabN86LsNMHqXFAg40jAhcU/WGvy3zDCXq3qXBBYplJ5IWv1t12tyIUB4APiRF3lhGKZKgAAAABJRU5ErkJggg==)}.treeList li img{vertical-align:middle;margin-right:5px}.skillTreeBox{margin:0;min-width:181px;min-height:auto;outline:1px solid #36ffff}.skillTreeBox .boxTitleBar,.treeSelectBox .boxTitleBar{background:linear-gradient(45deg,rgba(47,153,193,.66),rgba(46,94,137,.66) 30%,rgba(46,94,137,.66) 70%,#2f99c1)}.skillTreeContainer{overflow-x:auto;overflow-y:scroll;margin:10px 5px 0 10px;padding:2px;max-height:calc(90vh - 150px);min-width:0}.skillTreeGrid{display:grid;grid-template-columns:repeat(6,181px);grid-template-areas:"a1 b1 c1 d1 e1 f1" "a2 b2 c2 d2 e2 f2" "a3 b3 c3 d3 e3 f3" "a4 b4 c4 d4 e4 f4" "a5 b5 c5 d5 e5 f5" "a6 b6 c6 d6 e6 f6"}.skillTreeGrid>div{background-color:hsla(0,0%,50.2%,.33);color:#fff;padding:6px;text-align:center;height:148px;position:relative;margin:0 10px 96px 0}div.skillActive,div.skillMaxed{background-color:rgba(18,103,87,.5)}.skillTreeGrid>div:hover{outline:2px solid rgba(54,255,255,.66);background-color:rgba(113,169,189,.33)}.skillTreeGrid>div.skillActive:hover,.skillTreeGrid>div.skillMaxed:hover{outline:2px solid rgba(54,255,255,.66);background-color:rgba(18,103,87,.5)}div.skillLocked{background-color:rgba(64,64,64,.33)}div.skillLocked em.skillName,div.skillLocked img,div.skillLocked span.skillAllocated{opacity:.33}.skillIcon{margin:0 auto;max-width:48px}.skillAllocated{display:block;line-height:40px}div.skillActive .skillAllocated{color:#ff0}div.skillMaxed .skillAllocated{color:#ff8750}.skillTreeReqUnlock{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAAWCAYAAACYPi8fAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV9TpSJVETuIOGSoThZERXSTKhbBQmkrtOpgcukXNGlIUlwcBdeCgx+LVQcXZ10dXAVB8APEzc1J0UVK/F9SaBHjwXE/3t173L0DhHqZqWbHOKBqlpGMRcVMdlUMvCKAfgygF7MSM/V4ajENz/F1Dx9f7yI8y/vcn6NHyZkM8InEc0w3LOIN4ulNS+e8TxxiRUkhPiceM+iCxI9cl11+41xwWOCZISOdnCcOEYuFNpbbmBUNlXiKOKyoGuULGZcVzluc1XKVNe/JXxjMaSsprtMcRgxLiCMBETKqKKEMCxFaNVJMJGk/6uEfcvwJcsnkKoGRYwEVqJAcP/gf/O7WzE9OuEnBKND5YtsfI0BgF2jUbPv72LYbJ4D/GbjSWv5KHZj5JL3W0sJHQN82cHHd0uQ94HIHGHzSJUNyJD9NIZ8H3s/om7LAwC3Qveb21tzH6QOQpq6Wb4CDQ2C0QNnrHu/uau/t3zPN/n4AqWdyvY3+FZYAAAAGYktHRAAJAMIAnJ/BRE8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQflBxIMMxgscGeXAAAA9UlEQVRYw+2YPQrCQBCFv92kEREsrYMn8DjW8QqxsLaIVzB1DuIBPEFIJ1j4i4pNsmshir+gYGEymXJhBx7vzZu3q/QksggsF6Dtj0SBTsYBGqElFrj7iyaqUQPXuTuz630xgSfjANT7i4++oL3WPfDZEjNfy5B6HA+J42E5pP7IbBIFz1Jv1nE6Hjk5AE7HI1tsZZqbzUy5zO3Tna9cjZXIeCFn/NbRX830lf3eCCygX9i/sTJnvBTJzfghxg+ryFpF1svqWu3JpykO59iaT1Ps5lB84Drqf9Ss2x0Um/F27/v3uUnnAqW+O1bmVgH/81JSPxtPhr5FE3BSPJQAAAAASUVORK5CYII=)}.skillTreeReqLock,.skillTreeReqUnlock{position:absolute;height:22px;width:175px;background-repeat:no-repeat;background-position:50%;top:-34px;left:-2px;display:block;opacity:.8}.skillTreeReqLock{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAAWCAYAAACYPi8fAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV9TpSJVETuIOGSoThZERXSTKhbBQmkrtOpgcukXNGlIUlwcBdeCgx+LVQcXZ10dXAVB8APEzc1J0UVK/F9SaBHjwXE/3t173L0DhHqZqWbHOKBqlpGMRcVMdlUMvCKAfgygF7MSM/V4ajENz/F1Dx9f7yI8y/vcn6NHyZkM8InEc0w3LOIN4ulNS+e8TxxiRUkhPiceM+iCxI9cl11+41xwWOCZISOdnCcOEYuFNpbbmBUNlXiKOKyoGuULGZcVzluc1XKVNe/JXxjMaSsprtMcRgxLiCMBETKqKKEMCxFaNVJMJGk/6uEfcvwJcsnkKoGRYwEVqJAcP/gf/O7WzE9OuEnBKND5YtsfI0BgF2jUbPv72LYbJ4D/GbjSWv5KHZj5JL3W0sJHQN82cHHd0uQ94HIHGHzSJUNyJD9NIZ8H3s/om7LAwC3Qveb21tzH6QOQpq6Wb4CDQ2C0QNnrHu/uau/t3zPN/n4AqWdyvY3+FZYAAAAGYktHRAAJAMIAnJ/BRE8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQflBxIMMwbWf1r0AAAAkklEQVRYw+2WsQ0DIAwEnygreAY8gqeh8GSMwwh4BnaAVJFSBClKB/b1IJ1e/3IqpSw45AkArTVX0iKCB5wS4i47/o3eO1JK24c550j8japCVc9OfJesmUXHQzzED1/1z0XfddrMwMxYa0Xi14kTEYgoOn715fYPc867xMcYP31Waz1bnJlj3EI8xC9adRFxJ/4CqhQh8FwrWTEAAAAASUVORK5CYII=)}.skillName{background-color:rgba(32,32,32,.33);display:block;padding:10px;height:48px;text-align:left}.skillButtons{position:absolute;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:171px;height:148px;left:0;top:0;cursor:pointer!important}.skillButtons>span:hover{background-image:url(/static/media/skilltree_div_overlay.6d142e79.png);background-repeat:no-repeat}.skillLeftButton{background-position:0}.skillRightButton{background-position:100%}.skillPoints{background-color:rgba(64,64,64,.5);margin:10px 10px 0;padding:16px 0 10px;color:#fff;font-size:14pt;display:grid;grid-template-columns:repeat(auto-fill,292px);-webkit-justify-content:center;justify-content:center;grid-gap:10px;gap:10px}.skillPoints,.skillPoints div:first-child{text-align:center}.skillPoints div span{display:inline-block;width:146px;text-align:center}.skillConfirm{-webkit-justify-content:center;justify-content:center;display:-webkit-flex;display:flex;-webkit-flex-flow:row wrap;flex-flow:row wrap}.skillConfirm span{-webkit-flex:1 1 auto;flex:1 1 auto;background-color:rgba(113,169,189,.33);display:inline-block;text-align:center;line-height:48px;color:#fff;font-size:13pt;margin:10px 6px 0;max-width:292px}.editBox:hover,.editClass:hover{background:linear-gradient(45deg,rgba(76,113,126,.66),rgba(113,169,189,.66));cursor:pointer;outline:2px solid #30cdef}.editBoxActive:hover{cursor:pointer}input#editBoxInput{position:absolute;left:0;text-align:right;background-color:#101317;color:#fff;cursor:pointer;font-family:ngs,sans-serif;font-size:16px;outline:2px solid #ff0;padding:0 5px;text-shadow:-1px -1px 0 rgba(0,0,0,.66),1px -1px 0 rgba(0,0,0,.66),-1px 1px 0 rgba(0,0,0,.66),1px 1px 0 rgba(0,0,0,.66);width:100%}.editClass{display:inline-block;width:100%}.popup{display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}.popup2{z-index:5;position:absolute;background-color:hsla(0,0%,50.2%,.9);max-width:250px;min-width:100px;padding:20px;box-shadow:0 10px 16px 0 rgba(0,0,0,.5),0 6px 20px 0 rgba(0,0,0,.5)!important}.popup button{margin:5px;width:48px;font-size:12px;overflow:wrap;background-color:rgba(64,64,96,.9);color:#d2d2d2}button{cursor:pointer;padding:0 3px;border:1px solid #000;background-color:hsla(0,0%,50.2%,.5);color:#fff;font-family:ngs,sans-serif;font-size:16px;font-weight:400;text-align:center;text-shadow:-1px 1px 0 #000,1px 1px 0 #000,1px -1px 0 #000,-1px -1px 0 #000}.table-responsive{color:#dcdcdc}.table-responsive table{background-color:rgba(20,29,40,.66)}.table{border:1px solid #000;border-spacing:1px}.table-padding{padding:4px}.ReactModal__Body--open,.ReactModal__Html--open{overflow:hidden}.modalOverlay{grid-template-rows:10px minmax(10px,1fr) 10px}.modalOverlay,.modalOverlaySplash{position:fixed;top:0;left:0;right:0;bottom:0;background:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.8));display:grid;justify-items:stretch;-webkit-align-items:center;align-items:center;grid-template-columns:minmax(10px,1fr) minmax(200px,auto) minmax(10px,1fr);min-height:100vh;min-height:-webkit-fill-available}.modalOverlaySplash{grid-template-rows:10px minmax(10px,1fr) minmax(10px,auto)}.modalOverlaySplash>footer{grid-column:1/span 3;grid-row:3;padding-bottom:4vh;background:linear-gradient(transparent,rgba(0,0,0,.7))}.modalOverlaySplash>footer a:hover{background-color:transparent}span.github,span.twitter{font-size:24px;margin-right:15px;opacity:.75}span.github:hover,span.twitter:hover{opacity:1}span.github:before,span.twitter:before{vertical-align:middle;margin-right:10px}span.github:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NDkxMSwgMjAxMy8xMC8yOS0xMTo0NzoxNiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RERCMUIwOUY4NkNFMTFFM0FBNTJFRTMzNTJEMUJDNDYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RERCMUIwOUU4NkNFMTFFM0FBNTJFRTMzNTJEMUJDNDYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkU1MTc4QTJBOTlBMDExRTI5QTE1QkMxMDQ2QTg5MDREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkU1MTc4QTJCOTlBMDExRTI5QTE1QkMxMDQ2QTg5MDREIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+jUqS1wAAApVJREFUeNq0l89rE1EQx3e3gVJoSPzZeNEWPKgHoa0HBak0iHiy/4C3WvDmoZ56qJ7txVsPQu8qlqqHIhRKJZceesmhioQEfxTEtsoSpdJg1u/ABJ7Pmc1m8zLwgWTmzcw3L+/te+tHUeQltONgCkyCi2AEDHLsJ6iBMlgHL8FeoqokoA2j4CloRMmtwTmj7erHBXPgCWhG6a3JNXKdCiDl1cidVbXZkJoXQRi5t5BrxwoY71FzU8S4JuAIqFkJ2+BFSlEh525b/hr3+k/AklDkNsf6wTT4yv46KIMNpsy+iMdMc47HNWxbsgVcUn7FmLAzzoFAWDsBx+wVP6bUpp5ewI+DOeUx0Wd9D8F70BTGNjkWtqnhmT1JQAHcUgZd8Lo3rQb1LAT8eJVUfgGvHQigGp+V2Z0iAUUl8QH47kAA1XioxIo+bRN8OG8F/oBjwv+Z1nJgX5jpdzQDw0LCjsPmrcW7I/iHScCAEDj03FtD8A0EyuChHgg4KTlJQF3wZ7WELppnBX+dBFSVpJsOBWi1qiRgSwnOgoyD5hmuJdkWCVhTgnTvW3AgYIFrSbZGh0UW/Io5Vp+DQoK7o80pztWMemZbgxeNwCNwDbw1fIfgGZjhU6xPaJgBV8BdsMw5cbZoHsenwYFxkZzl83xTSKTiviCAfCsJLysH3POfC8m8NegyGAGfLP/VmGmfSChgXroR0RSWjEFv2J/nG84cuKFMf4sTCZqXuJd4KaXFVjEG3+tw4eXbNK/YC9oXXs3O8NY8y99L4BXY5cvLY/Bb2VZ58EOJVcB18DHJq9lRsKr8inyKGVjlmh29mtHs3AHfuhCwy1vXT/Nu2GKQt+UHsGdctyX6eQyNvc+5sfX9Dl7Pe2J/BRgAl2CpwmrsHR0AAAAASUVORK5CYII=)}span.twitter:before{content:url(data:image/png;base64,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)}.modal{grid-column:2;grid-row:2}.boxModal{max-width:580px}.boxModal,.boxModalClassSelect{-webkit-animation:fadeIn .15s;animation:fadeIn .15s;margin:0 auto;box-shadow:0 10px 16px 0 rgba(0,0,0,.5),0 6px 20px 0 rgba(0,0,0,.5)!important;outline:1px solid #36ffff}.boxModalClassSelect{width:300px}@-webkit-keyframes fadeIn{0%{opacity:0;margin-bottom:30px}to{opacity:1;margin-bottom:0}}@keyframes fadeIn{0%{opacity:0;margin-bottom:30px}to{opacity:1;margin-bottom:0}}.boxAdmin{-webkit-animation:fadeIn .15s;animation:fadeIn .15s;box-shadow:0 10px 16px 0 rgba(0,0,0,.5),0 6px 20px 0 rgba(0,0,0,.5)!important;outline:1px solid #36ffff;text-align:center}.boxAdmin img{margin:20px;background:linear-gradient(#fff,#bca9f5)}.boxAdmin input{font-size:36px;height:72px;width:33vw;background-color:transparent}.boxAdmin input:hover{outline:0!important}.boxMisc{-webkit-animation:fadeIn .15s;animation:fadeIn .15s;max-width:450px;margin:0 auto;box-shadow:0 10px 16px 0 rgba(0,0,0,.5),0 6px 20px 0 rgba(0,0,0,.5)!important;outline:1px solid #36ffff;text-align:center}.boxMisc h2{font-size:17px;font-weight:400;border-bottom:1px solid hsla(0,0%,50.2%,.5);margin:10px 10px 0;padding:10px 5px;text-align:left}.boxMisc h2:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAADvSURBVDhPY/zf5vefQVKEgYGVlYEk8Ps3A8PzNwyM/+cn/Wd48ZaBsXIjQ4O9CkM9EBMFONkZGCSEGZjANn//CRZrOHiHoRGIiQIgPUC9TFAuHJBkCBBgGAACIENAgLFpB0HD4Aag+x1kyP86D4IughuAHoC+amJgFxAyBMULyIaYzD7GcCbViqAhmIFIwBB0gD0QsRgCCxN0wPh/Sfp/hlsPoVxUgM3ZKIaoyWN3AQyAXAICyJpA3kEGeA0AAZBmdE0HHryDsogwAARAhiC7ovEQwltM4FwFyhhEAFjAgl0A0gPUS352/gW0+MUbBgCI3HpQtnXeGgAAAABJRU5ErkJggg==);margin-right:5px;vertical-align:middle}.boxMisc img{background:linear-gradient(#fff,#bca9f5);vertical-align:top;margin:0 10px}.boxMisc p>img{float:right}.boxMisc p{margin-top:0;text-align:justify}.boxAdmin .boxTitleBar,.boxMisc .boxTitleBar,.boxModal .boxTitleBar,.boxModalClassSelect .boxTitleBar{background:linear-gradient(45deg,rgba(47,153,193,.66),rgba(46,94,137,.66) 30%,rgba(46,94,137,.66) 70%,#2f99c1)}.modalItemListContainer{overflow-y:auto;overflow-x:hidden;margin:10px 5px 0 0;padding:2px;max-height:calc(90vh - 115px)}.webicon{color:maroon}.webicon:hover{color:#c80000}.basichover:hover,.webicon:hover{cursor:pointer!important}.modalCloseButton{float:right;color:#151f25}.modalCloseButton:hover{color:#c80000;cursor:pointer!important}.failedInput{border:1px solid #c80000}.submitting{border:1px solid #0096c8;background:linear-gradient(-90deg,#124425,#000,#124425);background-size:10% 400%;-webkit-animation:submitgradient 1.5s ease infinite;animation:submitgradient 1.5s ease infinite}@-webkit-keyframes submitgradient{0%{background-position:0 100%}to{background-position:100% 0}}@keyframes submitgradient{0%{background-position:0 100%}to{background-position:100% 0}}.submitbutton{width:32px;height:32px}.submitbutton:hover{color:#00c800;cursor:pointer!important}.adminMain{position:fixed;top:0;left:0;right:0;bottom:0;display:grid;justify-items:stretch;-webkit-align-items:stretch;align-items:stretch;grid-template-columns:250px 1fr;grid-template-rows:minmax(10px,1fr) 1fr minmax(10px,1fr);grid-template-areas:"header header" "sidebar content" "footer footer";grid-gap:10px;gap:10px;overflow:hidden;margin:0 10px}.boxAdminNav{grid-area:sidebar;font-size:12pt;line-height:1.5em}.boxAdminContent{grid-area:content}.adminNavContainer{overflow-y:scroll;margin:0 5px 0 10px;padding:2px;height:0;height:80vh}.adminContainer{overflow-x:auto;overflow-y:scroll;margin:10px 5px 0 10px;padding:2px;width:84vw;height:85vh}p.adminNav hr{border-bottom:1px solid silver;margin:10px 0}.buttonLabel{cursor:pointer;padding:5px 10px;background-color:hsla(0,0%,50.2%,.5);color:#fff;font-family:ngs,sans-serif;font-size:16px;font-weight:400;text-align:center;text-shadow:-1px 1px 0 #000,1px 1px 0 #000,1px -1px 0 #000,-1px -1px 0 #000}.react-toggle{touch-action:pan-x;display:inline-block;position:relative;cursor:pointer!important;background-color:transparent;border:0;padding:0;-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}.react-toggle-screenreader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed;opacity:.5;transition:opacity .25s}.react-toggle-track{width:50px;height:24px;padding:0;border-radius:30px;background-color:#4d4d4d;transition:all .2s ease}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#000}.react-toggle--checked .react-toggle-track{background-color:#19ab27}.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#128d15}.react-toggle-track-check{position:absolute;width:14px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;left:8px;opacity:0;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-check,.react-toggle-track-x{opacity:1;transition:opacity .25s ease}.react-toggle-track-x{position:absolute;width:10px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;right:10px}.react-toggle--checked .react-toggle-track-x{opacity:0}.react-toggle-thumb{transition:all .5s cubic-bezier(.23,1,.32,1) 0ms;position:absolute;top:1px;left:1px;width:22px;height:22px;border:1px solid #4d4d4d;border-radius:50%;background-color:#fafafa;box-sizing:border-box;transition:all .25s ease}.react-toggle--checked .react-toggle-thumb{left:27px;border-color:#19ab27}.react-toggle--focus .react-toggle-thumb{box-shadow:0 0 2px 3px #0099e0}.react-toggle:active:not(.react-toggle--disabled) .react-toggle-thumb{box-shadow:0 0 5px 5px #0099e0}.testmode.react-toggle--checked .react-toggle-track,.testmode.react-toggle--checked .react-toggle-track:hover{background-color:#0ad}.addAug{height:37px}.databaseIcon{width:48px;height:48px;padding-right:8px;position:relative;top:16px}.equipWindow{min-height:440px}.itemDetailsGridTop{display:grid;grid-template-areas:"icon properties";grid-template-columns:128px minmax(0,1fr);margin:10px}.itemDetailsGridBottom{display:grid;grid-template-areas:"ability fixa" "augment augment";grid-template-columns:repeat(2,minmax(0,1fr));margin:10px}.itemDetailsIcon{grid-area:icon;align-self:flex-start}.editOverlayWrapper{position:relative}.editOverlayWrapper:hover{cursor:pointer;outline:2px solid #30cdef}.editOverlay{display:none;position:absolute;height:100%;width:100%;-webkit-justify-content:center;justify-content:center;-webkit-align-content:center;align-content:center;-webkit-flex-direction:column;flex-direction:column;text-align:center;background:linear-gradient(45deg,rgba(76,113,126,.66),rgba(113,169,189,.66))}.editOverlay>p{margin:0;padding:0}.editOverlayWrapper:hover .editOverlay{display:-webkit-flex;display:flex}.itemDetailsProperties{margin:0 0 0 10px;grid-area:properties}.itemDetailsPropertiesWrapper{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"rarity stars" "attack attackDisplay" "element elementDisplay" "conditions conditionsDisplay";text-align:left;grid-gap:5px 0;gap:5px 0}.itemDetailsPropertiesWrapper>div{border-bottom:1px solid hsla(0,0%,50.2%,.5);padding-bottom:-1px}.itemDetailsPropertiesWrapper>div:nth-child(odd){color:#97e2fc}.itemDetailsPropertiesWrapper>div:nth-child(2n){padding-left:0}.itemDetailsAugment{margin:15px 0 0;grid-area:augment}.itemDetailsAugmentWrapper{margin:10px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));grid-gap:10px 30px;gap:10px 30px}.itemDetailsAugmentWrapper>div{background-color:rgba(0,0,0,.33);padding:2px 10px;border-radius:0 10px 0 0;height:20px;white-space:nowrap;text-overflow:ellipsis}.itemDetailsAugmentWrapper>div span:before{content:"\00B7";margin-right:10px;font-weight:900}.itemPotential{grid-area:ability;text-align:left}.itemFixa{grid-area:fixa;text-align:left}.itemDetailsIcon img{background:radial-gradient(#c4c4c4,grey);width:124px;box-sizing:content-box;border:2px solid grey}.formField{font-weight:700}.formDescription{font-style:italic}.formError{color:red;font-weight:700}.toDoList{padding:0 10px}dt{margin:10px 0 0}dd,dl{padding:10px 0 0 15px}dd:before{content:"\2610";padding-right:10px}.half:before{content:"\25E7"!important}.check{opacity:.25}.check:hover{opacity:1}.check:before{font-family:"Segoe UI Symbol";content:"\2B1B"!important}.trashButton{color:#643232;width:24px;height:24px}.trashButton:hover{color:#c83232;border:2px solid red}
-/*# sourceMappingURL=main.774a7c31.chunk.css.map */
\ No newline at end of file
diff --git a/static/css/main.774a7c31.chunk.css.map b/static/css/main.774a7c31.chunk.css.map
deleted file mode 100644
index d7fdb44..0000000
--- a/static/css/main.774a7c31.chunk.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["webpack://src/index.css","webpack://src/reset.css","webpack://src/style.css"],"names":[],"mappings":"AAAA,KACE,QAAS,CACT,mJAEY,CACZ,kCAAmC,CACnC,iCACF,CAEA,KACE,yEAEF,CCZA,wjBAoBC,QAAS,CACT,SAAU,CACV,QAAS,CACT,cAAe,CACf,YAAa,CACb,uBACD,CAEA,8EAEC,aACD,CACA,KACC,aACD,CACA,MACC,eACD,CACA,aACC,WACD,CACA,oDAEC,UAAW,CACX,YACD,CACA,MACC,wBAED,CCjDA,EACC,QAAS,CACT,QAAS,CACT,SAAU,CACV,qBAAsB,CACtB,SACD,CACA,UACC,0BAA2B,CACzB,wBAAyB,CACxB,oBAAqB,CACpB,gBAEH,CACF,WACE,iBAAkB,CAClB,qDACF,CACA,WACE,kBAAmB,CACnB,qDACF,CACA,WACE,kBAAmB,CACnB,qDACF,CACA,WACE,kBAAmB,CACnB,qDACF,CACA,WACC,6BAA8B,CAC9B,+DACC,CAKF,6BAHC,UAAY,CACZ,oBAMD,CAJA,iBAGC,sCACD,CACA,GACC,2CACD,CACA,IACC,qBACD,CACA,KACC,iCACD,CACA,KACI,2FAA8F,CACjG,wBAAyB,CACtB,2BAA4B,CAC5B,uBAA2B,CAC9B,2BAA4B,CAC5B,qBAAsB,CACtB,UAAY,CACT,gCAAiC,CACpC,cAAe,CACf,eAAmB,CACnB,iBAAkB,CAClB,uHAA+H,CAC/H,gBAAiB,CAEjB,iCACD,CACA,MACI,gBACJ,CACA,SACC,kBACD,CACA,GACC,oBAAqB,CACrB,uBAAuB,CAAvB,sBACD,CACA,GACC,iBACD,CACA,SACC,UAAW,CACX,oBACD,CACA,eACC,4EAAgF,CAChF,oBACD,CACA,aACC,YAAa,CACb,0DAA2D,CAC3D,8BAAuB,CAAvB,sBAAuB,CACvB,aAAS,CAAT,QACD,CACA,MACC,aACD,CACA,OACC,+BAAiC,CACjC,kCAA2B,CAA3B,0BAA2B,CAC3B,eAAgB,CAChB,QAAS,CACT,cAAe,CACf,gBAAiB,CACjB,WACD,CACA,eACC,kBAAqB,CACrB,YAAa,CACb,iEAAqE,CACrE,2BAAoB,CAApB,mBACD,CACA,SACC,aAAc,CACd,WACD,CACA,MACC,kBAAmB,CACnB,iBAAkB,CAClB,cAAc,CACd,kBAAmB,CACnB,kBACD,CACA,WACC,cAAc,CACd,wBACD,CACA,iBACC,cACD,CACA,UACC,WACD,CACA,QACC,qBACD,CACA,YACC,eAAgB,CAChB,kBACD,CACA,cACC,cACD,CACA,eACC,oBAAqB,CACrB,gCAAoC,CAEpC,mCAAsB,CAAtB,kBAAsB,CACtB,cAAe,CACf,kBACD,CACA,0BACC,sBACD,CACA,UACC,gBAAiB,CACjB,gBACD,CACA,YACC,cACD,CACA,cACC,WAAY,CACZ,iBAAkB,CAClB,6BAAsB,CAAtB,qBACD,CACA,8BACC,oBAAqB,CACrB,cAAe,CACf,eAAgB,CAChB,kBACD,CACA,SACC,YAAa,CACb,gBACD,CACA,oCACC,QACC,cACD,CACA,MACC,cACD,CACA,WACC,cACD,CACA,iBACC,UACD,CACA,yBACC,YACA,CACD,SACC,cAAgB,CAAhB,eACD,CACD,CACA,KACC,UAAW,CACX,2BAA4B,CAC5B,mCAAwC,CACxC,eAAkB,CAClB,eAAgB,CAChB,mBAAmB,CACnB,kCAA2B,CAA3B,0BACD,CACA,WACC,cAAe,CACf,eAAmB,CACnB,aAAc,CACd,UAED,CACA,mBAFC,2CAMD,CAJA,QACC,2BAA4B,CAC5B,0BAED,CACA,mBACC,eACD,CACA,QACC,aAAc,CACd,kBACD,CACA,oBACC,aACD,CACA,mBACC,gBACD,CAEA,WACC,YAAa,CACb,gEAAkE,CAClE,yHAI+B,CAC/B,kBAAmB,CACnB,aACD,CACA,WACC,gCAAiC,CACjC,iBAAkB,CAClB,iBAAkB,CAClB,YAAa,CACb,gFAAkF,CAClF,2OASD,CACA,8BACC,2CAA8C,CAC9C,gBAAiB,CACjB,iBAAkB,CAClB,mBACD,CACA,8DACC,aACD,CACA,+CACC,gBACD,CACA,UACC,qBAAsB,CACtB,iDAAoD,CAGpD,SACD,CACA,sBAJC,aAAc,CACd,UAOD,CAJA,YACC,qBAGD,CACA,aACC,sCAA2C,CAI3C,eAAgB,CAChB,oBAAa,CAAb,YAAa,CACb,4BAAqB,CAArB,oBAAqB,CACrB,qCAA8B,CAA9B,6BAED,CACA,6BATC,UAAY,CACZ,eAAmB,CACnB,cAaD,CANA,gBAIC,iBAAkB,CAClB,qBACD,CACA,uBACC,6BAA8B,CAC9B,gBAAiB,CACjB,iBACD,CACA,iBACC,UAAY,CACZ,eAAmB,CACnB,cAAe,CACf,kBAAwB,CACxB,eACD,CACA,qBACC,gBAAiB,CACjB,kBACD,CACA,cACC,eAAgB,CAChB,cAAe,CACf,gBACD,CACA,WACC,aAAc,CACd,SACD,CACA,sBACC,kBACD,CACA,cACC,YACD,CACA,oBACC,4EACD,CACA,iBACC,UACD,CACA,oBACC,UAAW,CACX,iBACD,CACA,0BACC,sBACD,CACA,OACC,mBAED,CAEA,cACC,kBAAwB,CACxB,oBAAa,CAAb,YAAa,CACb,8BAAuB,CAAvB,sBAAuB,CACvB,0BAAmB,CAAnB,kBAAmB,CACnB,kBAED,CACA,yBACC,oCAAwC,CACxC,wBAAyB,CACzB,YACD,CACA,8BACC,iBAAkB,CAClB,aAAqB,CACrB,cAAe,CACZ,iCACJ,CACA,6BACC,WAAY,CACZ,UAAW,CACX,kBAAmB,CACnB,wCAA8D,CAC9D,iBACD,CACA,kBACC,iBAAkB,CAClB,gBAAS,CAAT,QACD,CACA,8BACC,kBACD,CACA,4BACC,sCACD,CACA,iBACC,aAAc,CACd,cAAe,CACf,eAAmB,CACnB,kBACD,CACA,cACC,oBAAa,CAAb,YAAa,CACb,8BAAuB,CAAvB,sBAAuB,CACvB,0BAAmB,CAAnB,kBAAmB,CAGnB,oBAAqB,CACrB,eAHD,CAKA,WACC,qBAAc,CAAd,aACD,CACA,cACC,oCAAwC,CACxC,UAAY,CACZ,mBAAoB,CACpB,qBAA2B,CAC3B,wBACD,CACA,oBACC,4EAAgF,CAChF,yBACD,CACA,iBACC,iBAAkB,CAClB,cACD,CACA,SACC,WACD,CACA,cAGC,iBAAkB,CAClB,WAAY,CACZ,kCAAoC,CAGpC,WAAY,CAEZ,iBAAkB,CAClB,kBAAmB,CACnB,QACD,CACA,wBAbC,UAAY,CACZ,cAAc,CAId,eAeD,CAPA,UACC,iBAAkB,CAClB,cAAe,CACf,qBAID,CAEA,qBACC,eACD,CACA,oBACC,kBACD,CACA,IACC,qBAAc,CAAd,aAAc,CACd,oBAAqB,CACrB,eACD,CACA,OACC,iBAAuB,CACvB,WACD,CACA,YACC,UACD,CACA,YACC,mjBAAkD,CAClD,gBAAiB,CACjB,qBACD,CACA,mBACC,kBAAmB,CACnB,eAAgB,CAChB,sBAAuB,CACvB,kBACD,CACA,cACI,+fAAqD,CACxD,gBAAiB,CACjB,qBACD,CACA,aACI,uuPACJ,CACA,aACI,+5QACJ,CACA,cACI,mtQACJ,CACA,gBACI,u/PACJ,CAKA,mEAHC,gBAAiB,CACjB,qBAMD,CAJA,WACI,mfAGJ,CACA,gCACC,qCAA2C,CAC3C,eAAoB,CACpB,qBAAsB,CACtB,YAAa,CACb,sFAAuF,CACvF,+CAAgD,CAChD,qFAEkC,CAClC,cAAU,CAAV,SAAU,CACV,mCACD,CACA,mBACC,oCAAsC,CACtC,+BACD,CACA,gBACC,aACD,CACA,oBACC,wCAA8D,CAE9D,UAAW,CACX,sBAAuB,CACvB,qBACD,CACA,iBACC,cAAe,CACf,gCAAiC,CACjC,kBAAmB,CACnB,aAAc,CACd,kBAAmB,CACnB,eAAgB,CAChB,sBAAuB,CACvB,iBACD,CACA,uBACC,+WACD,CACA,uBACC,2YACD,CACA,uBACC,2YACD,CACA,uBACC,+YACD,CACA,uBACC,UAAW,CACX,oBAAqB,CACrB,aAAc,CACd,iBACD,CACA,4BACC,kBAAmB,CACnB,iBACD,CACA,qBACC,kBAAmB,CACnB,gBAAiB,CACjB,kBACD,CACA,yCACC,sCAAwC,CACxC,cAAe,CACf,cACD,CACA,+CACC,sCAAwC,CACxC,cAAe,CACf,4EAAgF,CAChF,yBACD,CACA,uCACC,gCAAiC,CACjC,cACD,CACA,0BACC,oBAAoB,CACpB,aAAc,CACd,iBAAkB,CAClB,gBACD,CAUA,wBACC,qDAAuE,CACvE,8BACD,CACA,QACC,qDAAsE,CACtE,8BACD,CACA,kBACI,2BAA4B,CAC5B,qBACJ,CACA,YACC,+tBAA+C,CAC/C,gBAAiB,CACjB,qBACD,CACA,MACC,aACD,CACA,aACC,2mBAAkD,CAClD,gBAAiB,CACjB,qBACD,CACA,KACC,UACD,CACA,YACC,uyBAAqD,CACrD,gBAAiB,CACjB,qBACD,CACA,OACC,UACD,CACA,mBAEC,iBAAkB,CAClB,iBAAkB,CAClB,mBAAoB,CACpB,WACD,CACA,sCACC,sCAED,CACA,+DAFC,sCAID,CACA,SACC,cAAe,CACf,aAAqB,CACrB,oBAAa,CAAb,YAAa,CACb,4BAAqB,CAArB,oBAAqB,CACrB,kCAA2B,CAA3B,0BACD,CACA,YACC,sCAA0C,CAC1C,UAAY,CACZ,oBAAqB,CACrB,mBAAoB,CACpB,WAAY,CACZ,iBAAkB,CAClB,uBAAgB,CAAhB,eAAgB,CAChB,kBAAmB,CACnB,wBACD,CACA,aACC,qBACD,CACA,kBACC,eACD,CACA,oBACC,6CAAmD,CACnD,gCACD,CACA,0BACC,4EAAgF,CAChF,yBACD,CACA,UACC,kDAAmD,CACnD,+BACD,CACA,kBACC,4EAAgF,CAChF,eAAgB,CAChB,kBAAmB,CACnB,yBACD,CACA,kBACC,kDAAmD,CACnD,yBACD,CACA,SACC,8BAAuB,CAAvB,sBAAuB,CACvB,oBAAa,CAAb,YAAa,CACb,4BAAqB,CAArB,oBAAqB,CACrB,kBAAwB,CACxB,aACD,CACA,4BACC,sBAAe,CAAf,cAAe,CACf,iBACD,CACA,MACC,wBAAyB,CACzB,UAAY,CACZ,0BAA2B,CAC3B,cAAe,CACf,WAAY,CACZ,aAAc,CACd,uHACD,CACA,YACC,yBACD,CACA,OACC,oCAAuC,CACvC,UAAY,CACT,0BAA2B,CAC9B,cAAe,CACf,WAAY,CACZ,gBAAiB,CACjB,uHACD,CACA,qCACC,UACD,CACA,OACC,qBACD,CACA,SACC,mBAAwB,CACxB,UACD,CACA,eACC,wBAAmC,CACnC,qBACD,CACA,eACI,gBAAiB,CACpB,aACD,CACA,MACC,UACD,CAEA,oCACC,SAAU,CACV,UACD,CACA,mCACC,UAAW,CACX,WACD,CAEA,mFACE,8BACF,CAGA,mFACC,qCACD,CACA,2CACC,oCAAuC,CACvC,UAAU,CACV,SACD,CACA,yCACC,oCAAuC,CACvC,WAAW,CACX,UACD,CACA,qFACC,4BACD,CAKA,wBACC,WAAY,CACZ,WACD,CACA,mBACC,eAAgB,CAChB,kBACD,CACA,eAIC,yBAAqC,CACrC,eAAgB,CAChB,iBAAkB,CAClB,WAAY,CACZ,SACD,CACA,UACC,iBACD,CACA,aACC,qCAAwC,CACxC,UAAY,CACZ,cAAiB,CACjB,YAAa,CACV,2BAA4B,CAC5B,wBAAiC,CACpC,6BAA8B,CAC9B,gBACD,CACA,2CACC,gBACD,CACA,sBACC,+gCACD,CACA,qBACC,u/BACD,CACA,iBACC,qBAAsB,CACtB,gBACD,CACA,cAEC,QAAS,CACT,eAAgB,CAChB,eAAgB,CAChB,yBACD,CACA,uDACC,8GACD,CACA,oBACC,eAAgB,CAChB,iBAAkB,CAClB,sBAAuB,CACvB,WAAY,CACZ,6BAA8B,CAC9B,WACD,CACA,eACC,YAAa,CACb,qCAAuC,CACvC,2IAOD,CACA,mBACC,qCAAwC,CACxC,UAAY,CACZ,WAAY,CACZ,iBAAkB,CAClB,YAAa,CACb,iBAAkB,CAClB,oBACD,CAIA,+BACC,mCACD,CACA,yBACC,sCAAwC,CACxC,sCACD,CACA,yEACC,sCAAwC,CACxC,mCACD,CACA,gBACC,mCACD,CACA,qFACC,WACD,CACA,WACC,aAAc,CACd,cACD,CACA,gBACC,aAAc,CACd,gBACD,CACA,gCACC,UACD,CACA,+BACC,aACD,CACA,oBAIC,oiCAOD,CACA,sCAXC,iBAAkB,CAClB,WAAY,CACZ,WAAY,CAEZ,2BAA4B,CAC5B,uBAA2B,CAC3B,SAAU,CACV,SAAU,CACV,aAAc,CACd,UAaD,CAXA,kBAIC,g6BAOD,CACA,WACC,mCAAqC,CACrC,aAAc,CACd,YAAa,CACb,WAAY,CACZ,eACD,CACA,cACA,iBAAiB,CACjB,YAAa,CACb,6CAA+C,CAC/C,WAAY,CACZ,YAAa,CACb,MAAO,CACP,KAAM,CACN,wBACA,CACA,yBACC,sEAA0D,CAC1D,2BACD,CACA,iBACC,qBACD,CACA,kBACC,wBACD,CACA,aACC,kCAAoC,CAEpC,kBAAwB,CACxB,mBAAsB,CACtB,UAAY,CACZ,cAAe,CACf,YAAa,CACb,6CAA8C,CAC9C,8BAAuB,CAAvB,sBAAuB,CACvB,aAAS,CAAT,QACD,CACA,0CAVC,iBAYD,CACA,sBACC,oBAAqB,CACrB,WAAsB,CACtB,iBACD,CACA,cACC,8BAAuB,CAAvB,sBAAuB,CACvB,oBAAa,CAAb,YAAa,CACb,0BAAmB,CAAnB,kBACD,CACA,mBACC,qBAAc,CAAd,aAAc,CACd,sCAAwC,CACxC,oBAAqB,CACrB,iBAAkB,CAClB,gBAAiB,CACjB,UAAY,CACZ,cAAe,CACf,iBAAsB,CACtB,eACD,CAGA,gCACC,4EAAgF,CAChF,cAAc,CACd,yBACD,CACA,qBACC,cACD,CACA,mBACC,iBAAkB,CAClB,MAAO,CACP,gBAAiB,CACjB,wBAAyB,CACzB,UAAY,CACZ,cAAc,CACd,0BAA2B,CAC3B,cAAe,CAEf,sBAA0B,CAC1B,aAAc,CACd,uHAA+H,CAC/H,UACD,CACA,WACC,oBAAqB,CACrB,UACD,CAEA,OACC,oBAAa,CAAb,YAAa,CACb,sBAAe,CAAf,cACD,CACA,QACC,SAAS,CACT,iBAAkB,CAClB,oCAAuC,CACvC,eAAgB,CAChB,eAAgB,CAChB,YAAa,CACb,6EACD,CACA,cACC,UAAU,CACV,UAAU,CACV,cAAc,CACd,aAAa,CACb,kCAAmC,CACnC,aACD,CACA,OACC,cAAe,CACf,aAAuB,CACvB,qBAAuB,CACvB,oCAAuC,CACvC,UAAW,CACR,0BAA2B,CAC9B,cAAe,CACf,eAAmB,CACnB,iBAAkB,CAClB,2EACD,CACA,kBACC,aACD,CACA,wBACC,mCACD,CACA,OACC,qBAAuB,CACvB,kBACD,CACA,eACC,WACD,CACA,gDAEE,eACF,CACA,cAWC,6CAID,CACA,kCAfI,cAAe,CACf,KAAM,CACN,MAAO,CACP,OAAQ,CACR,QAAS,CACT,yDAA4D,CAC/D,YAAa,CACb,qBAAsB,CACtB,0BAAmB,CAAnB,kBAAmB,CACnB,0EAA8E,CAE9E,gBAAiB,CAEjB,iCAiBD,CAfA,oBAWC,0DAID,CACA,2BACC,oBAAuB,CACvB,UAAW,CACX,kBAAmB,CAChB,sDACJ,CACA,mCACC,4BACD,CACA,yBACC,cAAe,CACf,iBAAkB,CAClB,WACD,CACA,qCACC,SACD,CACA,uCACC,qBAAsB,CACtB,iBACD,CACA,mBACC,mlEACD,CACA,oBACC,uzFACD,CACA,OACC,aAAc,CACd,UACD,CACA,UAEC,eAID,CACA,+BANC,6BAAuB,CAAvB,qBAAuB,CAEvB,aAAc,CACd,6EAAmF,CACnF,yBAQD,CANA,qBAEC,WAID,CACA,0BACC,GAAI,SAAS,CAAC,kBAAmB,CACjC,GAAM,SAAS,CAAC,eAAgB,CAC/B,CAHF,kBACC,GAAI,SAAS,CAAC,kBAAmB,CACjC,GAAM,SAAS,CAAC,eAAgB,CAC/B,CACA,UACD,6BAAuB,CAAvB,qBAAuB,CACvB,6EAAmF,CACnF,yBAAqC,CACrC,iBACD,CACA,cACC,WAAY,CACX,wCACF,CACA,gBACC,cAAe,CACf,WAAY,CACZ,UAAW,CACX,4BAED,CACA,sBACA,mBACA,CACA,SACC,6BAAuB,CAAvB,qBAAuB,CACvB,eAAgB,CAChB,aAAc,CACd,6EAAmF,CACnF,yBAAqC,CACrC,iBACD,CACA,YACC,cAAe,CACf,eAAmB,CACnB,2CAA8C,CAC9C,kBAAmB,CACnB,gBAAiB,CACjB,eACD,CACA,mBACI,mfAAiD,CACpD,gBAAiB,CACjB,qBACD,CACA,aACC,wCAA0C,CAC1C,kBAAmB,CACnB,aACD,CACA,eACC,WACD,CACA,WACC,YAAa,CACb,kBACD,CACA,sGACC,8GACD,CACA,wBACC,eAAgB,CAChB,iBAAkB,CAClB,mBAAoB,CACpB,WAAY,CACZ,6BACD,CACA,SACC,YACD,CACA,eACC,aAED,CACA,iCAFC,wBAID,CACA,kBACC,WAAW,CACX,aACD,CACA,wBACC,aAAqB,CACrB,wBACD,CACA,aACC,wBACD,CACA,YACC,wBAAmC,CAChC,uDAA8D,CAC9D,wBAAyB,CACzB,mDAA4C,CAA5C,2CACJ,CAEA,kCACI,GACI,0BACJ,CACA,GACI,0BACJ,CACJ,CAPA,0BACI,GACI,0BACJ,CACA,GACI,0BACJ,CACJ,CAEA,cACC,UAAU,CACV,WACD,CACA,oBACC,aAAqB,CACrB,wBACD,CAIA,WACI,cAAe,CACf,KAAM,CACN,MAAO,CACP,OAAQ,CACR,QAAS,CACZ,YAAa,CACb,qBAAsB,CACtB,2BAAoB,CAApB,mBAAoB,CACpB,+BAAgC,CAChC,wDAA2D,CAC3D,qEAGe,CACf,aAAS,CAAT,QAAS,CACT,eAAe,CACf,aACD,CACA,aACC,iBAAkB,CAClB,cAAe,CACf,iBACD,CACA,iBACC,iBACD,CACA,mBACC,iBAAkB,CAClB,mBAAoB,CACpB,WAAY,CACZ,QAAS,CACT,WACD,CACA,gBACC,eAAgB,CAChB,iBAAkB,CAClB,sBAAuB,CACvB,WAAY,CACZ,UAAW,CACX,WACD,CACA,cACC,8BAA+B,CAC/B,aACD,CACA,aACC,cAAe,CACf,gBAAgB,CAEhB,oCAAuC,CACvC,UAAW,CACR,0BAA2B,CAC9B,cAAe,CACf,eAAmB,CACnB,iBAAkB,CAClB,2EACD,CACA,cACC,kBAAmB,CAEnB,oBAAqB,CACrB,iBAAkB,CAClB,wBAAyB,CACzB,4BAA6B,CAC7B,QAAS,CACT,SAAU,CAEV,0BAA2B,CAC3B,wBAAyB,CAGzB,oBAAqB,CACrB,gBAAiB,CAEjB,yCAA0C,CAC1C,uCACC,CAEA,gCACD,QAAS,CACT,kBAAmB,CACnB,UAAW,CACX,WAAY,CACZ,eAAgB,CAChB,SAAU,CACV,iBAAkB,CAClB,SACC,CAEA,wBACD,kBAAmB,CACnB,UAAY,CAEZ,uBACC,CAEA,oBACD,UAAW,CACX,WAAY,CACZ,SAAU,CACV,kBAAmB,CACnB,wBAAyB,CAGzB,uBACC,CAEA,qEACD,qBACC,CAEA,2CACD,wBACC,CAEA,8EACD,wBACC,CAEA,0BACD,iBAAkB,CAClB,UAAW,CACX,WAAY,CACZ,KAAQ,CACR,QAAW,CACX,eAAgB,CAChB,kBAAmB,CACnB,aAAc,CACd,QAAS,CACT,SAAU,CAGV,4BACC,CASA,uEAND,SAAU,CAGV,4BAiBC,CAdA,sBACD,iBAAkB,CAClB,UAAW,CACX,WAAY,CACZ,KAAQ,CACR,QAAW,CACX,eAAgB,CAChB,kBAAmB,CACnB,aAAc,CACd,UAKC,CAEA,6CACD,SACC,CAEA,oBACD,gDAAuD,CACvD,iBAAkB,CAClB,OAAQ,CACR,QAAS,CACT,UAAW,CACX,WAAY,CACZ,wBAAyB,CACzB,iBAAkB,CAClB,wBAAyB,CAIzB,qBAAsB,CAItB,wBACC,CAEA,2CACD,SAAU,CACV,oBACC,CAEA,yCAGD,8BACC,CAEA,sEAGD,8BACC,CAIA,8GACD,qBACC,CACF,QACC,WACD,CACA,cACC,UAAU,CACV,WAAW,CACX,iBAAiB,CACjB,iBAAiB,CACjB,QACD,CACA,aACC,gBACD,CACA,oBACC,YAAa,CACb,qCACiB,CACjB,yCAA0C,CAC1C,WACD,CACA,uBACC,YAAa,CACb,oDAEiB,CACjB,6CAA8C,CAC9C,WACD,CACA,iBACC,cAAe,CACf,qBACD,CACA,oBACC,iBACD,CACA,0BACC,cAAe,CACf,yBACD,CACA,aACC,YAAa,CACb,iBAAkB,CAClB,WAAY,CACZ,UAAW,CACX,8BAAuB,CAAvB,sBAAuB,CACvB,4BAAqB,CAArB,oBAAqB,CACrB,6BAAsB,CAAtB,qBAAsB,CACtB,iBAAkB,CAClB,4EACD,CACA,eACC,QAAS,CACT,SACD,CACA,uCACC,oBAAa,CAAb,YACD,CACA,uBACC,iBAAkB,CAClB,oBACD,CACA,8BACC,YAAa,CACb,iDAAmD,CACnD,iHAI8B,CAC9B,eAAgB,CAChB,cAAU,CAAV,SACD,CACA,kCACC,2CAA8C,CAC9C,mBACD,CACA,iDACC,aACD,CACA,gDACC,cACD,CACA,oBACC,eAAkB,CAClB,iBACD,CACA,2BACC,eAAkB,CAClB,YAAa,CACb,wDAA0D,CAC1D,kBAAc,CAAd,aAED,CACA,+BACC,gCAAiC,CACjC,gBAAiB,CACjB,wBAAyB,CACzB,WAAY,CACZ,kBAAmB,CACnB,sBACD,CACA,2CACC,eAAgB,CAChB,iBAAkB,CAClB,eACD,CACA,eACC,iBAAkB,CAClB,eACD,CACA,UACC,cAAe,CACf,eACD,CACA,qBACC,wCAA8D,CAG9D,WAAY,CACZ,sBAAuB,CACvB,qBACD,CACA,WACC,eACD,CACA,iBACC,iBACD,CACA,WACC,SAAS,CACT,eACD,CACA,UACC,cACD,CACA,GACA,eACA,CACA,MACC,qBACD,CACA,UACC,eAAgB,CAChB,kBACD,CACA,aACC,yBACD,CACA,OACC,WACD,CACA,aACC,SACD,CACA,cACC,6BAA8B,CAC9B,yBACD,CACA,aACC,aAAuB,CACvB,UAAU,CACV,WACD,CACA,mBACC,aAAuB,CACvB,oBACD","file":"main.774a7c31.chunk.css","sourcesContent":["body {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n","the file to use and tweak as fits you best. If you're more of the copy-and-paste type, or just want an in-page preview of what you'll be getting, here it is.\n\n/* http://meyerweb.com/eric/tools/css/reset/ \n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed, \nfigure, figcaption, footer, header, hgroup, \nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\tfont-size: 100%;\n\tfont: inherit;\n\tvertical-align: baseline;\n}\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure, \nfooter, header, hgroup, menu, nav, section {\n\tdisplay: block;\n}\nbody {\n\tline-height: 1;\n}\nol, ul {\n\tlist-style: none;\n}\nblockquote, q {\n\tquotes: none;\n}\nblockquote:before, blockquote:after,\nq:before, q:after {\n\tcontent: '';\n\tcontent: none;\n}\ntable {\n\tborder-collapse: collapse;\n\tborder-spacing: 0;\n}","* {\r\n\tborder: 0;\r\n\tmargin: 0;\r\n\tpadding: 0;\r\n\tbox-sizing: border-box;\r\n\toutline: 0;\r\n}\r\n.noSelect {\r\n\t-webkit-touch-callout: none; /* iOS Safari */\r\n\t -webkit-user-select: none; /* Safari */\r\n\t\t -ms-user-select: none; /* Internet Explorer/Edge */\r\n\t\t\t user-select: none; /* Non-prefixed version, currently\r\n\t\t\t\t\t\t\t\t\tsupported by Chrome, Edge, Opera and Firefox */\r\n }\r\n@font-face {\r\n font-family: \"ngs\";\r\n src: url(\"./fonts/4.woff\") format(\"woff\");\r\n}\r\n@font-face {\r\n font-family: \"ngs2\";\r\n src: url(\"./fonts/3.woff\") format(\"woff\");\r\n}\r\n@font-face {\r\n font-family: \"ngs3\";\r\n src: url(\"./fonts/2.woff\") format(\"woff\");\r\n}\r\n@font-face {\r\n font-family: \"ngs4\";\r\n src: url(\"./fonts/1.woff\") format(\"woff\");\r\n}\r\n@font-face {\r\n\tfont-family: \"Segoe UI Symbol\";\r\n\tsrc: url(\"./fonts/seguisym.ttf\") format(\"truetype\");\r\n }\r\na, a:visited {\r\n\tcolor: white;\r\n\ttext-decoration: none;\r\n}\r\na:hover, a:active {\r\n\tcolor: white;\r\n\ttext-decoration: none;\r\n\tbackground-color: rgba(113,169,189,0.33);\r\n}\r\nhr {\r\n\tborder-bottom: 1px solid rgba(128,128,128,0.5);\r\n}\r\nimg {\r\n\tvertical-align: middle;\r\n}\r\nhtml {\r\n\tmin-height: -webkit-fill-available;\r\n}\r\nbody {\r\n background-image: url(\"https://pbs.twimg.com/media/E8tfm23VUAQTAAu?format=jpg&name=4096x4096\");\r\n\tbackground-color: #484848;\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n\tbackground-attachment: fixed;\r\n\tbackground-size: cover;\r\n\tcolor: white;\r\n font-family: ngs,Arial,sans-serif;\r\n\tfont-size: 16px;\r\n\tfont-weight: normal;\r\n\ttext-align: center;\r\n\ttext-shadow: -1px -1px 0 rgba(0,0,0,0.66), 1px -1px 0 rgba(0,0,0,0.66), -1px 1px 0 rgba(0,0,0,0.66), 1px 1px 0 rgba(0,0,0,0.66);\r\n\tmin-height: 100vh;\r\n\t/* mobile viewport bug fix */\r\n\tmin-height: -webkit-fill-available;\r\n}\r\ntable {\r\n border-spacing: 0;\r\n}\r\ntable td {\r\n\tvertical-align: top;\r\n}\r\nul {\r\n\tlist-style-type: none;\r\n\tpadding-inline-start: 0;\r\n}\r\nem {\r\n\tfont-style: normal;\r\n}\r\nheader a {\r\n\tcolor:white;\r\n\ttext-decoration: none;\r\n}\r\nheader a:hover {\r\n\tbackground: linear-gradient(45deg,rgba(76,113,126,0.66),rgba(113,169,189,00.66));\r\n\ttext-decoration: none;\r\n}\r\n.main, header {\r\n\tdisplay: grid;\r\n\tgrid-template-columns: repeat(auto-fit,minmax(300px,450px));\r\n\tjustify-content: center;\r\n\tgap: 10px;\r\n}\r\n.main {\r\n\tmargin: 0 10px;\r\n}\r\nheader {\r\n\tbackground-color: rgba(0,0,0,0.5);\r\n\tbackdrop-filter: blur(10px);\r\n\ttext-align: left;\r\n\tmargin: 0;\r\n\tpadding: 0 10px;\r\n\tline-height: 50px;\r\n\theight: 50px\r\n}\r\n.headerWrapper {\r\n\tgrid-area: 1 / span 3;\r\n\tdisplay: grid;\r\n\tgrid-template-columns: minmax(0, auto) minmax(0, 1fr) minmax(0, auto);\r\n\talign-items: stretch;\r\n}\r\nheader a {\r\n\tdisplay: block;\r\n\theight: 50px\r\n}\r\n.logo {\r\n\tfont-family: \"ngs2\";\r\n\tmargin-right: auto;\r\n\tfont-size:24px;\r\n\twhite-space: nowrap;\r\n\tjustify-self: start;\r\n}\r\n.logo span{\r\n\tfont-size:16px;\r\n\ttext-transform: uppercase;\r\n}\r\n.logo span:after {\r\n\tcontent:\".com\";\r\n}\r\n.logo img {\r\n\theight: 40px;\r\n}\r\n.logo a {\r\n\tpadding: 0 45px 0 15px;\r\n}\r\n.navigation {\r\n\ttext-align: left;\r\n\tjustify-self: start;\r\n}\r\n.navigation a {\r\n\tpadding: 0 15px;\r\n}\r\n.navigation li {\r\n\tdisplay: inline-block;\r\n\tborder-color: rgba(255,255,255,0.13);\r\n\tborder-style: solid;\r\n\tborder-left-width: 1px;\r\n\tfont-size: 17px;\r\n\tfont-family: \"ngs2\";\r\n}\r\n.navigation li:last-child {\r\n\tborder-right-width: 1px;\r\n}\r\n.rightNav {\r\n\ttext-align: right;\r\n\tjustify-self: end;\r\n}\r\n.rightNav a {\r\n\tpadding: 0 15px;\r\n}\r\n.rightNav img {\r\n\theight: 40px;\r\n\tmargin-bottom: 5px;\r\n\tclip-path: circle(44%);\r\n}\r\n.dotMenu,.navigation .miniNav {\r\n\tdisplay: inline-block;\r\n\tfont-size: 24px;\r\n\tfont-weight: 900;\r\n\tletter-spacing: 2px;\r\n}\r\n.miniNav {\r\n\tdisplay: none;\r\n\ttext-align: right;\r\n}\r\n@media screen and (max-width:860px) {\r\n\t.logo a {\r\n\t\tpadding: 0 10px;\r\n\t}\r\n\t.logo {\r\n\t\tfont-size:22px;\r\n\t}\r\n\t.logo span{\r\n\t\tfont-size:14px;\r\n\t}\r\n\t.logo span:after {\r\n\t\tcontent: \"\";\r\n\t}\r\n\t.navigation > ul, .loginNav {\r\n\t\tdisplay: none;\r\n\t\t}\r\n\t.miniNav {\r\n\t\tdisplay: initial;\r\n\t}\r\n}\r\n.box {\r\n\tcolor:white;\r\n\tbackground-clip: padding-box;\r\n\tbackground-color: rgba(24, 36, 48, 0.66);\r\n\tmargin: 10px 0 0 0;\r\n\ttext-align: left;\r\n\tpadding-bottom:10px;\r\n\tbackdrop-filter: blur(10px);\r\n}\r\n.box h3, dt {\r\n\tfont-size: 12pt;\r\n\tfont-weight: normal;\r\n\tpadding: 0 5px;\r\n\tmargin: 5px;\r\n\tborder-bottom: 1px solid rgba(128,128,128,0.5);\r\n}\r\n.box tr {\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: left bottom;\r\n\tborder-bottom: 1px solid rgba(128,128,128,0.5);\r\n}\r\n.box tr:last-child {\r\n\tborder-bottom: 0;\r\n}\r\n.box td {\r\n\tpadding: 0 5px;\r\n\twhite-space: nowrap;\r\n}\r\n.box td:first-child {\r\n\tcolor: #97e2fc;\r\n}\r\n.box td:last-child {\r\n\ttext-align: right;\r\n}\r\n\r\n.basicInfo {\r\n\tdisplay: grid;\r\n\tgrid-template-columns: minmax(0,0.9fr) minmax(0,1fr) minmax(0,1fr);\r\n\tgrid-template-areas:\r\n\t\"author author player\"\r\n\t\"build build character\"\r\n\t\"class class2 classlv\"\r\n\t\"subclass subclass2 subclasslv\";\r\n\tmargin: 10px 10px 0;\r\n\tpadding: 0 5px;\r\n}\r\n.statsInfo {\r\n\tbackground-color:rgba(0,0,0,0.33);\r\n\tmargin: 5px 10px 0;\r\n\tpadding: 0 5px 5px;\r\n\tdisplay: grid;\r\n\tgrid-template-columns: minmax(0,1fr) minmax(0,auto) minmax(0,0.66fr) minmax(0,1fr);\r\n\tgrid-template-areas:\r\n\t\"bp bp2 bpGraph bpGraph\"\r\n\t\"hp hp2 hpGraph hpGraph\"\r\n\t\"pp pp2 ppGraph ppGraph\"\r\n\t\"atk atk2 atkGraph atkGraph\"\r\n\t\"def def2 defGraph defGraph\"\r\n\t\"wepUp wepUp2 wepUp2 wepUp3\"\r\n\t\"res res2 res2 res3\"\r\n\t\"dmgRes dmgRes2 dmgRes2 dmgRes2\";\r\n}\r\n.basicInfo > div, .statsInfo > div {\r\n\tborder-bottom: 1px solid rgba(128,128,128,0.5);\r\n\tline-height: 25px;\r\n\tposition: relative;\r\n\tpadding-bottom: -1px;\r\n}\r\n.basicInfo > div:nth-child(-n+4), .statsInfo > div:nth-child(-n+8) {\r\n\tcolor: #97e2fc;\r\n}\r\n.statsInfo > div:nth-child(n+9):nth-child(-n+13) {\r\n\ttext-align: right;\r\n}\r\n.barGraph {\r\n\tmargin: 8px 0 8px auto;\r\n\tbackground: linear-gradient(90deg, #65beef, #f5ee3c);\r\n\tdisplay: block;\r\n\theight: 8px;\r\n\twidth: 75%;\r\n}\r\n.barOverlay {\r\n\tborder: 2px solid black;\r\n\tdisplay: block;\r\n\theight: 8px;\r\n}\r\n.boxTitleBar {\r\n\tbackground-color: rgba(124, 144, 148, 0.66);\r\n\tcolor: white;\r\n\tfont-weight: normal;\r\n\tfont-size: 18px;\r\n\ttext-align: left;\r\n\tdisplay: flex;\r\n\tflex-flow: row nowrap;\r\n\tjustify-content: space-between;\r\n\r\n}\r\n.boxTitleBar h1 {\r\n\tcolor: white;\r\n\tfont-weight: normal;\r\n\tfont-size: 18px;\r\n\tmargin-right: 10px;\r\n\tpadding: 13px 13px 7px 13px;\r\n}\r\n.boxTitleBar h1:before {\r\n\tfont-family: \"Segoe UI Symbol\";\r\n\tcontent: \" \\25C6\";\r\n\tmargin-right: 10px;\r\n}\r\n.viewedEquipName {\r\n\tcolor: white;\r\n\tfont-weight: normal;\r\n\tfont-size: 18px;\r\n\tmargin: 10px 10px 0 10px;\r\n\ttext-align: left;\r\n}\r\n.viewedEquipName img {\r\n\tmargin-right: 5px;\r\n\tvertical-align: top;\r\n}\r\n.saveControls {\r\n\tmargin-top: 10px;\r\n\tpadding: 0 10px;\r\n\ttext-align: right;\r\n}\r\n.infoBuffs {\r\n\tmargin: 0 auto;\r\n\twidth: 90%;\r\n}\r\n.infoBuffs:last-child {\r\n\tmargin-bottom: 10px;\r\n}\r\n.infobuffs li {\r\n\tmargin: 5px 0;\r\n}\r\n.infoBuffs li:hover {\r\n\tbackground: linear-gradient(45deg,rgba(76,113,126,0.66),rgba(113,169,189,00.66));\r\n}\r\n.infoBuffs li ul {\r\n\twidth: 100%;\r\n}\r\n.infoBuffs li ul li {\r\n\twidth: 100%;\r\n\tpadding-left: 20px;\r\n}\r\n.infoBuffs li ul li:hover {\r\n\tbackground: transparent;\t\r\n}\r\n.box p {\r\n\tpadding: 10px 10px 0 10px;\r\n\r\n}\r\n\r\n.equipPalette {\r\n\tmargin: 10px 10px 0 10px;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\tflex-flow: row wrap;\r\n\twhite-space: nowrap;\r\n\r\n}\r\n.equipPaletteSlotWrapper {\r\n\tbackground-color: rgba(128,128,128,0.50);\r\n\tcursor:pointer !important;\r\n\tpadding: 10px;\r\n}\r\n.equipPaletteSlotWrapper span {\r\n\tmargin: 0 10px 0 0;\r\n\tcolor: rgb(255,207,4);\r\n\tfont-size: 14pt;\r\n font-family: ngs2,Arial,sans-serif;\r\n}\r\n.equipPaletteSlotWrapper img {\r\n\theight: 48px;\r\n\tborder: 1px;\r\n\tborder-style: solid;\r\n\tbackground: radial-gradient(rgb(196,196,196),rgb(128,128,128));\r\n\tborder-color: rgba(128,128,128,1);\r\n}\r\n.equipPaletteSlot {\r\n\ttext-align: center;\r\n\tflex: 1 1;\r\n}\r\n.equipPaletteSlot:first-child {\r\n\tpadding-right: 10px;\r\n}\r\n.equipPaletteSlot:hover img {\r\n\toutline: 2px solid rgba(54,255,255,0.66);\r\n}\r\n.equipPalette h3 {\r\n\tcolor: #97e2fc;\r\n\tfont-size: 16px;\r\n\tfont-weight: normal;\r\n\twhite-space: nowrap;\r\n}\r\n.equipDetails {\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\tflex-flow: row wrap;\r\n}\r\n.equipDetails {\r\n\tmargin: 10px 10px 0 0;\r\n\ttext-align: left;\r\n}\r\n.equipAugs {\r\n\tflex: 1 1 auto;\t\r\n}\r\n.equipAugs li {\r\n\tbackground-color: rgba(128,128,128,0.50);\r\n\tcolor: white;\r\n\tmargin: 0 0 5px 10px;\r\n\tpadding: 12px 10px 7px 10px;\r\n\tcursor:pointer !important;\r\n}\r\n.equipAugs li:hover {\r\n\tbackground: linear-gradient(45deg,rgba(76,113,126,0.66),rgba(113,169,189,00.66));\r\n\toutline: 2px solid hsl(180, 78%, 50%);\r\n}\r\n.equipAugsExpand {\r\n\tmargin: 0 10px 0 0;\r\n\tdisplay: inline;\r\n}\r\n.tooltip {\r\n\tcursor: help;\r\n}\r\n.tooltip span {\r\n\tcolor: white;\r\n\tfont-size:10pt;\r\n\tvisibility: hidden;\r\n\twidth: 200px;\r\n\tbackground-color: rgba(38,53,63,0.9);\r\n\ttext-align: left;\r\n\t/*border-radius: 6px;*/\r\n\tpadding: 5px;\r\n\t/* Position the tooltip */\r\n\tposition: absolute;\r\n\twhite-space: normal;\r\n\tleft: 1em;\r\n}\r\n.xTooltip {\r\n\tmargin: 0 10px 0 0;\r\n\tdisplay: inline;\r\n\tcursor: help !important;\r\n\tcolor: white;\r\n\tfont-size:10pt;\r\n\ttext-align: left;\r\n}\r\n\r\n[class*=\"BaseToolTop\"] {\r\n\tmin-width: 200px;\r\n}\r\n.tooltip:hover span {\r\n\tvisibility: visible;\r\n}\r\n.pr {\r\n\tflex: 1 1 auto;\r\n\tmargin: 10px 10px 0 0;\r\n\ttext-align: left;\t\r\n}\r\n.pr li {\r\n\tmargin: 0 10px 2px 10px;\r\n\tpadding: 5px;\r\n}\r\n.pr li span {\r\n\tcolor:white\r\n}\r\n.aug:before {\r\n\tcontent:url(\"./icons/UINGSItemSpecialAbility.png\");\r\n\tmargin-right: 5px;\r\n\tvertical-align: middle;\r\n}\r\n.itemWeaponWrapper {\r\n\twhite-space: nowrap;\r\n\toverflow: hidden;\r\n\ttext-overflow: ellipsis;\r\n\tpadding-right: 16px;\r\n}\r\n.rifle:before {\r\n content: url(\"./icons/NGSUIItemAssaultRifleMini.png\");\r\n\tmargin-right: 5px;\r\n\tvertical-align: middle;\r\n}\r\n.meat:before {\r\n content: url(\"./icons/food/meat.png\");\r\n}\r\n.vege:before {\r\n content: url(\"./icons/food/vege.png\");\r\n}\r\n.fruit:before {\r\n content: url(\"./icons/food/fruit.png\");\r\n}\r\n.seafood:before {\r\n content: url(\"./icons/food/seafood.png\");\r\n}\r\n.meat:before, .vege:before, .fruit:before, .seafood:before {\r\n\tmargin-right: 5px;\r\n\tvertical-align: middle;\r\n}\r\n.gb:before {\r\n content: url(\"./icons/NGSUIItemGunbladeMini.png\");\r\n\tmargin-right: 5px;\r\n\tvertical-align: middle;\r\n}\r\n.itemWrapper, .itemWrapperActive {\r\n\tbackground-color: rgba(160, 160, 160, 0.33);\r\n\tmargin: 5px 10px 5px;\r\n\tpadding: 10px 10px 6px;\r\n\tdisplay: grid;\r\n\tgrid-template-columns: minmax(56px,auto) minmax(0,1fr) minmax(0,auto) minmax(16px,auto);\r\n\tgrid-template-rows: minmax(0,auto) minmax(0,1fr);\r\n\tgrid-template-areas:\r\n\t\"img itemname itemname rarity\"\r\n\t\"img properties controls controls\";\r\n\tgap: 5px 0;\r\n\tborder-bottom: 4px solid transparent;\r\n}\r\n.itemWrapperActive {\r\n\tbackground-color: rgba(255,192,0,0.25);\r\n\tborder-bottom: 4px solid #ffd602;\r\n}\r\n.itemImgWrapper {\r\n\tgrid-area: img;\r\n}\r\n.itemImgWrapper > img {\r\n\tbackground: radial-gradient(rgb(196,196,196),rgb(128,128,128));\r\n\tborder: 4px solid rgba(128,128,128,1);\r\n\twidth: 48px;\r\n\tbox-sizing: content-box;\r\n\tborder-style: solid;\r\n}\r\n.itemNameWrapper {\r\n\tfont-size: 16px;\r\n\tbackground-color:rgba(0,0,0,0.33);\r\n\tgrid-area: itemname;\r\n\tmargin: 0 10px;\r\n\twhite-space: nowrap;\r\n\toverflow: hidden;\r\n\ttext-overflow: ellipsis;\r\n\tpadding: 3px 3px 0;\r\n}\r\n.r1 .itemRarityWrapper {\r\n\tcontent: url(\"./icons/NGSUIRarity1Star.png\");\r\n}\r\n.r2 .itemRarityWrapper {\r\n\tcontent: url(\"./icons/NGSUIRarity2Star.png\");\r\n}\r\n.r3 .itemRarityWrapper {\r\n\tcontent: url(\"./icons/NGSUIRarity3Star.png\");\r\n}\r\n.r4 .itemRarityWrapper {\r\n\tcontent: url(\"./icons/NGSUIRarity4Star.png\");\r\n}\r\n.itemPropertiesWrapper {\r\n\tcolor:white;\r\n\tgrid-area: properties;\r\n\tmargin: 0 10px;\r\n\talign-self: center;\r\n}\r\n.itemPropertiesWrapper > span {\r\n\twhite-space: nowrap;\r\n\tmargin-right: 10px;\r\n}\r\n.itemControlsWrapper {\r\n\tgrid-area: controls;\r\n\tjustify-self: end;\r\n\twhite-space: nowrap;\r\n}\r\n.itemControlsWrapper > span:nth-child(odd) {\r\n\tbackground-color: rgba(113,169,189,0.33);\r\n\tcursor: pointer;\r\n\tmin-width: 26px;\r\n}\r\n.itemControlsWrapper > span:nth-child(odd):hover {\r\n\tbackground-color: rgba(113,169,189,0.33);\r\n\tcursor: pointer;\r\n\tbackground: linear-gradient(45deg,rgba(76,113,126,0.66),rgba(113,169,189,00.66));\r\n\toutline: 2px solid hsl(180, 78%, 50%);\r\n}\r\n.itemControlsWrapper > span:nth-child(2) {\r\n\tbackground-color:rgba(0,0,0,0.33);\r\n\tmin-width: 26px;\r\n}\r\n.itemControlsWrapper > span {\r\n\tdisplay:inline-block;\r\n\tpadding: 5px 0;\r\n\ttext-align: center;\r\n\tmargin: 0 0 0 5px;\r\n}\r\n.r1 img {\r\n\tbackground: radial-gradient(rgb(64,150,183),rgb(52,123,150)) !important;\r\n\tborder-color: rgb(64,150,183) !important;\r\n\r\n}\r\n.r2 img {\r\n\tbackground: radial-gradient(rgb(64,150,183),rgb(52,123,150)) !important;\r\n\tborder-color: rgb(64,150,183) !important;\r\n}\r\n.r3 img {\r\n\tbackground: radial-gradient(rgb(64,150,183),rgb(52,123,150)) !important;\r\n\tborder-color: rgb(64,150,183) !important;\r\n}\r\n.r4 img {\r\n\tbackground: radial-gradient(rgb(101,178,77),rgb(83,146,63)) !important;\r\n\tborder-color: rgb(101,178,77) !important;\r\n}\r\n.itemlist li span {\r\n background-repeat: no-repeat;\r\n background-position: left center;\r\n}\r\n.atk:before {\r\n\tcontent: url(\"./icons/NGSUIStatATKOutline.png\");\r\n\tmargin-right: 5px;\r\n\tvertical-align: middle;\r\n}\r\n.fixa {\r\n\tcolor: rgb(255,135,80);\r\n}\r\n.fixa:before {\r\n\tcontent: url(\"./icons/UINGSItemPresetAbility.png\");\r\n\tmargin-right: 5px;\r\n\tvertical-align: middle;\r\n}\r\n.pot {\r\n\tcolor: rgb(255,255,0);\r\n}\r\n.pot:before {\r\n\tcontent: url(\"./icons/NGSUIItemPotentialAbility.png\");\r\n\tmargin-right: 5px;\r\n\tvertical-align: middle;\r\n}\r\n.clear {\r\n\tclear: both;\r\n}\r\n.itemlistcontainer {\r\n/*\tmax-height: 400px;*/\r\n\toverflow-y: scroll;\r\n\toverflow-x: hidden;\r\n\tmargin: 10px 5px 0 0;\r\n\tpadding: 2px;\r\n}\r\n.itemWrapper:hover, .treeList li:hover {\r\n\tbackground-color: rgba(113,169,189,0.33);\r\n\toutline: 2px solid rgba(54,255,255,0.66);\r\n}\r\n.itemWrapperActive:hover {\r\n\toutline: 2px solid rgba(54,255,255,0.66);\r\n}\r\n.boxmenu {\r\n\tfont-size: 12pt;\r\n\tmargin: 0 10px 0 10px;\r\n\tdisplay: flex;\r\n\tflex-flow: row nowrap;\r\n\tjustify-content: flex-start;\r\n}\r\n.boxmenu li {\r\n\tbackground-color: rgba(115, 120, 125,0.66);\r\n\tcolor: white;\r\n\tdisplay: inline-block;\r\n\tmargin: 10px 5px 0 0;\r\n\tpadding: 5px;\r\n\ttext-align: center;\r\n\tflex-basis: 27px;\r\n\twhite-space: nowrap;\r\n\tcursor:pointer !important;\r\n}\r\n.boxmenu img {\r\n\tvertical-align: middle;\r\n}\r\n.boxMenuClassIcon {\r\n\tmax-height: 16px;\r\n}\r\n.pageControlDetails {\r\n\tbackground-color: rgba(25, 30, 35, 0.66) !important;\r\n\tmargin: 10px 5px 0 auto !important;\r\n}\r\n.pageControlDetails:hover {\r\n\tbackground: linear-gradient(45deg,rgba(76,113,126,0.66),rgba(113,169,189,00.66));\r\n\toutline: 2px solid hsl(180, 78%, 50%);\r\n}\r\n.selected {\r\n\tbackground: linear-gradient(135deg,#60461b,#b0a34e);\r\n\tborder-bottom: 4px solid #ffd602;\r\n}\r\n.unselected:hover {\r\n\tbackground: linear-gradient(45deg,rgba(76,113,126,0.66),rgba(113,169,189,00.66));\r\n\tborder-bottom: 0;\r\n\tpadding-bottom: 9px;\r\n\toutline: 2px solid hsl(180, 78%, 50%);\r\n}\r\nli.selected:hover {\r\n\tbackground: linear-gradient(135deg,#60461b,#b0a34e);\r\n\toutline: 2px solid hsl(180, 78%, 50%);\r\n}\r\n.itemBar {\r\n\tjustify-content: center;\r\n\tdisplay: flex;\r\n\tflex-flow: row nowrap;\r\n\tmargin: 10px 10px 0 10px;\r\n\tpadding: 0 2px;\r\n}\r\n.itemBarSort, .itemBarFilter {\r\n\tflex: 1 1 100px;\r\n\tmargin-right: 10px;\r\n}\r\ninput {\r\n\tbackground-color: #101317;\r\n\tcolor: white;\r\n\tfont-family: ngs,sans-serif;\r\n\tfont-size: 11pt;\r\n\theight: 28px;\r\n\tpadding: 0 5px;\r\n\ttext-shadow: -1px -1px 0 rgba(0,0,0,0.66), 1px -1px 0 rgba(0,0,0,0.66), -1px 1px 0 rgba(0,0,0,0.66), 1px 1px 0 rgba(0,0,0,0.66);\r\n}\r\ninput:hover {\r\n\toutline: 2px solid #30cdef;\r\n}\r\nselect{\r\n\tbackground-color: rgba(128,128,128,0.5);\r\n\tcolor: white;\r\n font-family: ngs,sans-serif;\r\n\tfont-size: 11pt;\r\n\theight: 28px;\r\n\tpadding: 5px 10px;\r\n\ttext-shadow: -1px -1px 0 rgba(0,0,0,0.66), 1px -1px 0 rgba(0,0,0,0.66), -1px 1px 0 rgba(0,0,0,0.66), 1px 1px 0 rgba(0,0,0,0.66);\r\n}\r\nselect.itemBarForm, input.itemBarForm {\r\n\twidth: 100%;\r\n}\r\noption {\r\n\tbackground-color: rgb(128,128,128);\r\n}\r\n.boxExit {\r\n\tpadding: 4px 9px 8px 9px;\r\n\tmargin: 4px;\r\n}\r\n.boxExit:hover {\r\n\tbackground-color: hsl(0, 100%, 33%);\r\n\toutline: 2px solid hsl(0, 100%, 50%);\r\n}\r\n.boxExit:after {\r\n content: ' \\2573';\r\n\tfont-size:9pt;\r\n}\r\n.exit {\r\n\tcolor: white;\r\n}\r\n/* width */\r\n.customScrollbar::-webkit-scrollbar {\r\n\twidth: 4px;\r\n\theight: 4px;\r\n}\r\n.adminScrollbar::-webkit-scrollbar {\r\n\twidth: 16px;\r\n\theight: 16px;\r\n}\r\n/* Track */\r\n.customScrollbar::-webkit-scrollbar-track,.adminScrollbar::-webkit-scrollbar-track {\r\n background: rgba(128,128,128,0.8); \r\n}\r\n \r\n/* Handle */\r\n.customScrollbar::-webkit-scrollbar-thumb, .adminScrollbar::-webkit-scrollbar-thumb {\r\n\tbackground-color: rgba(245, 245, 245,0.66);\r\n}\r\n.customScrollbar::-webkit-scrollbar-button {\r\n\tbackground-color: rgba(162,162,162,0.8); \r\n\theight:4px;\r\n\twidth:4px;\r\n}\r\nadminScrollbar::-webkit-scrollbar-button {\r\n\tbackground-color: rgba(162,162,162,0.8); \r\n\theight:16px;\r\n\twidth:16px;\r\n}\r\n.customScrollbar::-webkit-scrollbar-corner,.adminScrollbar::-webkit-scrollbar-corner {\r\n\tbackground-color: transparent;\r\n}\r\n.containerX {\r\n\tmargin: 10px;\r\n\tmin-width: 0;\r\n}\r\n.containerY {\r\n\tmargin: 10px;\r\n\tmin-width: 0;\r\n}\r\n.treeListContainer {\r\n\toverflow-y: auto;\r\n\tmargin: 10px 10px 0 10px;\r\n}\r\n.treeSelectBox {\r\n/*\tflex: 0 1 auto;\r\n\talign-self: flex-start;\r\n\tmargin: 0 10px 0 0;*/\r\n\toutline: 1px solid rgba(54,255,255,1);\r\n\tmax-width: 220px;\r\n\tposition: absolute;\r\n\tleft: -210px;\r\n\ttop: -10px;\r\n}\r\n.treeList {\r\n\tpadding: 0 2px 2px 2px;\r\n}\r\n.treeList li {\r\n\tbackground-color: rgba(128,128,128,0.33);\r\n\tcolor: white;\r\n\tmargin: 5px 0 0 0;\r\n\tpadding: 10px;\r\n background-repeat: no-repeat;\r\n background-position: right center;\r\n\tbackground-origin: content-box;\r\n\tline-height: 20px;\r\n}\r\nli.treeListMain:after, li.treeListSub:after {\r\n\tmargin-left: 10px;\r\n}\r\nli.treeListMain:after {\r\n\tcontent: url(\"./icons/class_main.png\");\r\n}\r\nli.treeListSub:after {\r\n\tcontent: url(\"./icons/class_sub.png\");\r\n}\r\n.treeList li img {\r\n\tvertical-align: middle;\r\n\tmargin-right: 5px;\r\n}\r\n.skillTreeBox {\r\n/*\tflex: 1 1 auto;*/\r\n\tmargin: 0;\r\n\tmin-width: 181px;\r\n\tmin-height: auto;\r\n\toutline: 1px solid rgba(54,255,255,1);\t\r\n}\r\n.skillTreeBox .boxTitleBar, .treeSelectBox .boxTitleBar {\r\n\tbackground: linear-gradient(45deg, rgba(47,153,193,0.66),rgba(46,94,137,0.66) 30%,rgba(46,94,137,0.66) 70%, rgba(47,153,193,1));\r\n}\r\n.skillTreeContainer {\r\n\toverflow-x: auto;\r\n\toverflow-y: scroll;\r\n\tmargin: 10px 5px 0 10px;\r\n\tpadding: 2px;\r\n\tmax-height: calc(90vh - 150px);\r\n\tmin-width: 0;\r\n}\r\n.skillTreeGrid {\r\n\tdisplay: grid;\r\n\tgrid-template-columns: repeat(6, 181px);\r\n\tgrid-template-areas:\r\n\t\"a1 b1 c1 d1 e1 f1\"\r\n\t\"a2 b2 c2 d2 e2 f2\"\r\n\t\"a3 b3 c3 d3 e3 f3\"\r\n\t\"a4 b4 c4 d4 e4 f4\"\r\n\t\"a5 b5 c5 d5 e5 f5\"\r\n\t\"a6 b6 c6 d6 e6 f6\";\r\n}\r\n.skillTreeGrid > div {\r\n\tbackground-color: rgba(128,128,128,0.33);\r\n\tcolor: white;\r\n\tpadding: 6px;\r\n\ttext-align: center;\r\n\theight: 148px;\r\n\tposition: relative;\r\n\tmargin: 0 10px 96px 0;\r\n}\r\ndiv.skillActive {\r\n\tbackground-color: rgba(18,103,87,0.5);\r\n}\r\ndiv.skillMaxed {\r\n\tbackground-color: rgba(18,103,87,0.5);\r\n}\r\n.skillTreeGrid > div:hover {\r\n\toutline: 2px solid rgba(54,255,255,0.66);\r\n\tbackground-color: rgba(113,169,189,0.33);\r\n}\r\n.skillTreeGrid > div.skillActive:hover, .skillTreeGrid > div.skillMaxed:hover {\r\n\toutline: 2px solid rgba(54,255,255,0.66);\r\n\tbackground-color: rgba(18,103,87,0.5);\r\n}\r\ndiv.skillLocked {\r\n\tbackground-color: rgba(64,64,64,0.33);\r\n}\r\ndiv.skillLocked img, div.skillLocked span.skillAllocated, div.skillLocked em.skillName {\r\n\topacity: 0.33;\r\n}\r\n.skillIcon {\r\n\tmargin: 0 auto;\r\n\tmax-width: 48px;\r\n}\r\n.skillAllocated {\r\n\tdisplay: block;\r\n\tline-height: 40px;\r\n}\r\ndiv.skillActive .skillAllocated {\r\n\tcolor: rgb(255,255,0);\r\n} \r\ndiv.skillMaxed .skillAllocated {\r\n\tcolor: rgb(255,135,80);\r\n}\r\n.skillTreeReqUnlock {\r\n\tposition: absolute;\r\n\theight: 22px;\r\n\twidth: 175px;\r\n\tbackground-image: url(\"./icons/skilltree_req_unlock.png\");\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: center;\r\n\ttop: -34px;\r\n\tleft: -2px;\r\n\tdisplay: block;\r\n\topacity: 0.8;\r\n}\r\n.skillTreeReqLock {\r\n\tposition: absolute;\r\n\theight: 22px;\r\n\twidth: 175px;\r\n\tbackground-image: url(\"./icons/skilltree_req_lock.png\");\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: center;\r\n\ttop: -34px;\r\n\tleft: -2px;\r\n\tdisplay: block;\r\n\topacity: 0.8;\r\n}\r\n.skillName {\r\n\tbackground-color: rgba(32,32,32,0.33);\r\n\tdisplay: block;\r\n\tpadding: 10px;\r\n\theight: 48px;\r\n\ttext-align: left;\r\n}\r\n.skillButtons {\r\nposition:absolute;\r\ndisplay: grid;\r\ngrid-template-columns: repeat(2, minmax(0,1fr));\r\nwidth: 171px;\r\nheight: 148px;\r\nleft: 0;\r\ntop: 0;\r\ncursor:pointer !important;\r\n}\r\n.skillButtons > span:hover {\r\n\tbackground-image: url(\"./icons/skilltree_div_overlay.png\");\r\n\tbackground-repeat: no-repeat;\r\n}\r\n.skillLeftButton {\r\n\tbackground-position: left;\r\n}\r\n.skillRightButton {\r\n\tbackground-position: right;\r\n}\r\n.skillPoints {\r\n\tbackground-color: rgba(64,64,64,0.5);\r\n\ttext-align: center;\r\n\tmargin: 10px 10px 0 10px;\r\n\tpadding: 16px 0 10px 0;\r\n\tcolor: white;\r\n\tfont-size: 14pt;\r\n\tdisplay: grid;\r\n\tgrid-template-columns: repeat(auto-fill,292px);\r\n\tjustify-content: center;\r\n\tgap: 10px;\r\n}\r\n.skillPoints div:first-child {\r\n\ttext-align: center;\r\n}\r\n.skillPoints div span {\r\n\tdisplay: inline-block;\r\n\twidth: calc(292px / 2);\r\n\ttext-align: center;\r\n}\r\n.skillConfirm {\r\n\tjustify-content: center;\r\n\tdisplay: flex;\r\n\tflex-flow: row wrap;\r\n}\r\n.skillConfirm span {\r\n\tflex: 1 1 auto;\r\n\tbackground-color: rgba(113,169,189,0.33);\r\n\tdisplay: inline-block;\r\n\ttext-align: center;\r\n\tline-height: 48px;\r\n\tcolor: white;\r\n\tfont-size: 13pt;\r\n\tmargin: 10px 6px 0 6px;\r\n\tmax-width: 292px;\r\n}\r\n\r\n/* Sig's Amazing CSS (cuz Dudley edited it) */\r\n.editBox:hover, .editClass:hover{\r\n\tbackground: linear-gradient(45deg,rgba(76,113,126,0.66),rgba(113,169,189,00.66));\r\n\tcursor:pointer;\r\n\toutline: 2px solid #30cdef;\r\n}\r\n.editBoxActive:hover {\r\n\tcursor:pointer\r\n}\r\ninput#editBoxInput {\r\n\tposition: absolute;\r\n\tleft: 0;\r\n\ttext-align: right;\r\n\tbackground-color: #101317;\r\n\tcolor: white;\r\n\tcursor:pointer;\r\n\tfont-family: ngs,sans-serif;\r\n\tfont-size: 16px;\r\n\r\n\toutline: 2px solid #ffff00;\r\n\tpadding: 0 5px;\r\n\ttext-shadow: -1px -1px 0 rgba(0,0,0,0.66), 1px -1px 0 rgba(0,0,0,0.66), -1px 1px 0 rgba(0,0,0,0.66), 1px 1px 0 rgba(0,0,0,0.66);\r\n\twidth:100%;\r\n}\r\n.editClass {\r\n\tdisplay: inline-block;\r\n\twidth: 100%;\r\n}\r\n\r\n.popup{\r\n\tdisplay: flex;\r\n\tflex-wrap: wrap;\r\n}\r\n.popup2{\r\n\tz-index:5;\r\n\tposition: absolute;\r\n\tbackground-color: rgba(128,128,128,0.9);\r\n\tmax-width: 250px;\r\n\tmin-width: 100px;\r\n\tpadding: 20px;\r\n\tbox-shadow: 0 10px 16px 0 rgba(0,0,0,0.5), 0 6px 20px 0 rgba(0,0,0,0.5) !important;\r\n}\r\n.popup button{\r\n\tmargin:5px;\r\n\twidth:48px;\r\n\tfont-size:12px;\r\n\toverflow:wrap;\r\n\tbackground-color:rgba(64,64,96,0.9);\r\n\tcolor:rgba(210,210,210,1);\r\n}\r\nbutton {\r\n\tcursor: pointer;\r\n\tpadding:0px 3px 0px 3px;\r\n\tborder: 1px black solid;\r\n\tbackground-color: rgba(128,128,128,0.5);\r\n\tcolor:white;\r\n font-family: ngs,sans-serif;\r\n\tfont-size: 16px;\r\n\tfont-weight: normal;\r\n\ttext-align: center;\r\n\ttext-shadow: -1px 1px 0 #000,1px 1px 0 #000,1px -1px 0 #000,-1px -1px 0 #000;\r\n}\r\n.table-responsive{\r\n\tcolor:rgba(220,220,220);\r\n}\r\n.table-responsive table {\r\n\tbackground-color: rgba(20,29,40,0.66);\r\n}\r\n.table {\r\n\tborder: 1px solid black;\r\n\tborder-spacing:1px;\r\n}\r\n.table-padding{\r\n\tpadding: 4px;\r\n}\r\n.ReactModal__Body--open,\r\n.ReactModal__Html--open {\r\n overflow: hidden;\r\n}\r\n.modalOverlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background: linear-gradient(rgba(0,0,0,0.5),rgba(0,0,0,0.8));\r\n\tdisplay: grid;\r\n\tjustify-items: stretch;\r\n\talign-items: center; \r\n\tgrid-template-columns: minmax(10px, 1fr) minmax(200px, auto) minmax(10px, 1fr);\r\n\tgrid-template-rows: 10px minmax(10px, 1fr) 10px;\r\n\tmin-height: 100vh;\r\n\t/* mobile viewport bug fix */\r\n\tmin-height: -webkit-fill-available;\r\n}\r\n.modalOverlaySplash {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background: linear-gradient(rgba(0,0,0,0.5),rgba(0,0,0,0.8));\r\n\tdisplay: grid;\r\n\tjustify-items: stretch;\r\n\talign-items: center; \r\n\tgrid-template-columns: minmax(10px, 1fr) minmax(200px, auto) minmax(10px, 1fr);\r\n\tgrid-template-rows: 10px minmax(10px, 1fr) minmax(10px, auto);\r\n\tmin-height: 100vh;\r\n\t/* mobile viewport bug fix */\r\n\tmin-height: -webkit-fill-available;\r\n}\r\n.modalOverlaySplash > footer {\r\n\tgrid-column: 1 / span 3;\r\n\tgrid-row: 3;\r\n\tpadding-bottom: 4vh;\r\n background: linear-gradient(transparent,rgba(0,0,0,0.7));\r\n}\r\n.modalOverlaySplash > footer a:hover {\r\n\tbackground-color: transparent;\r\n}\r\nspan.github, span.twitter {\r\n\tfont-size: 24px;\r\n\tmargin-right: 15px;\r\n\topacity: 0.75;\r\n}\r\nspan.github:hover, span.twitter:hover {\r\n\topacity: 1;\r\n}\r\nspan.github:before, span.twitter:before {\r\n\tvertical-align: middle;\r\n\tmargin-right: 10px;\r\n}\r\nspan.github:before {\r\n\tcontent: url(\"./icons/GitHub-Mark-Light-32px.png\");\r\n}\r\nspan.twitter:before {\r\n\tcontent: url(\"./icons/2021 Twitter logo - white32.png\");\r\n}\r\n.modal {\r\n\tgrid-column: 2;\r\n\tgrid-row: 2;\r\n}\r\n.boxModal {\r\n\tanimation: fadeIn 0.15s;\r\n\tmax-width: 580px;\r\n\tmargin: 0 auto;\r\n\tbox-shadow: 0 10px 16px 0 rgba(0,0,0,0.5), 0 6px 20px 0 rgba(0,0,0,0.5) !important;\r\n\toutline: 1px solid rgba(54,255,255,1);\t\r\n}\r\n.boxModalClassSelect {\r\n\tanimation: fadeIn 0.15s;\r\n\twidth: 300px;\r\n\tmargin: 0 auto;\r\n\tbox-shadow: 0 10px 16px 0 rgba(0,0,0,0.5), 0 6px 20px 0 rgba(0,0,0,0.5) !important;\r\n\toutline: 1px solid rgba(54,255,255,1);\t\r\n}\r\n@keyframes fadeIn {\r\n\t0% {opacity:0;margin-bottom:30px;}\r\n\t100% {opacity:1;margin-bottom:0;}\r\n }\r\n .boxAdmin {\r\n\tanimation: fadeIn 0.15s;\r\n\tbox-shadow: 0 10px 16px 0 rgba(0,0,0,0.5), 0 6px 20px 0 rgba(0,0,0,0.5) !important;\r\n\toutline: 1px solid rgba(54,255,255,1);\t\r\n\ttext-align:center;\r\n}\r\n.boxAdmin img {\r\n\tmargin: 20px;\r\n\t\tbackground: linear-gradient(white,#bca9f5);\r\n}\r\n.boxAdmin input {\r\n\tfont-size: 36px;\r\n\theight: 72px;\r\n\twidth: 33vw;\r\n\tbackground-color: transparent;\r\n\r\n}\r\n.boxAdmin input:hover {\r\noutline: 0 !important;\r\n}\r\n.boxMisc {\r\n\tanimation: fadeIn 0.15s;\r\n\tmax-width: 450px;\r\n\tmargin: 0 auto;\r\n\tbox-shadow: 0 10px 16px 0 rgba(0,0,0,0.5), 0 6px 20px 0 rgba(0,0,0,0.5) !important;\r\n\toutline: 1px solid rgba(54,255,255,1);\t\r\n\ttext-align: center;\r\n}\r\n.boxMisc h2 {\r\n\tfont-size: 17px;\r\n\tfont-weight: normal;\r\n\tborder-bottom: 1px solid rgba(128,128,128,0.5);\r\n\tmargin: 10px 10px 0;\r\n\tpadding: 10px 5px;\r\n\ttext-align: left;\r\n}\r\n.boxMisc h2:before {\r\n content: url(\"./icons/NGSUIItemGunbladeMini.png\");\r\n\tmargin-right: 5px;\r\n\tvertical-align: middle;\r\n}\r\n.boxMisc img {\r\n\tbackground: linear-gradient(white,#bca9f5);\r\n\tvertical-align: top;\r\n\tmargin: 0 10px;\r\n}\r\n.boxMisc p > img {\r\n\tfloat:right;\r\n}\r\n.boxMisc p {\r\n\tmargin-top: 0;\r\n\ttext-align: justify;\r\n}\r\n.boxModal .boxTitleBar, .boxModalClassSelect .boxTitleBar, .boxMisc .boxTitleBar, .boxAdmin .boxTitleBar {\r\n\tbackground: linear-gradient(45deg, rgba(47,153,193,0.66),rgba(46,94,137,0.66) 30%,rgba(46,94,137,0.66) 70%, rgba(47,153,193,1));\r\n}\r\n.modalItemListContainer {\r\n\toverflow-y: auto;\r\n\toverflow-x: hidden;\r\n\tmargin: 10px 5px 0 0;\r\n\tpadding: 2px;\r\n\tmax-height: calc(90vh - 115px);\r\n}\r\n.webicon{\r\n\tcolor:maroon;\r\n}\r\n.webicon:hover{\r\n\tcolor:rgba(200,0,0,1);\r\n\tcursor:pointer !important;\r\n}\r\n.basichover:hover{\r\n\tcursor:pointer !important;\r\n}\r\n.modalCloseButton{\r\n\tfloat:right;\r\n\tcolor:#151f25;\r\n}\r\n.modalCloseButton:hover{\r\n\tcolor:rgba(200,0,0,1);\r\n\tcursor:pointer !important;\r\n}\r\n.failedInput{\r\n\tborder: 1px solid rgba(200,0,0,1);\r\n}\r\n.submitting{\r\n\tborder: 1px solid rgba(0,150,200,1);\r\n background: linear-gradient(-90deg, #124425,#000000, #124425);\r\n background-size: 10% 400%;\r\n animation: submitgradient 1.5s ease infinite;\r\n}\r\n\r\n@keyframes submitgradient {\r\n 0% {\r\n background-position: 0% 100%;\r\n }\r\n 100% {\r\n background-position: 100% 0%;\r\n }\r\n}\r\n\r\n.submitbutton{\r\n\twidth:32px;\r\n\theight:32px;\r\n}\r\n.submitbutton:hover{\r\n\tcolor:rgba(0,200,0,1);\r\n\tcursor:pointer !important;\r\n}\r\n\r\n/* Admin Panel */\r\n\r\n.adminMain {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n\tdisplay: grid;\r\n\tjustify-items: stretch;\r\n\talign-items: stretch; \r\n\tgrid-template-columns: 250px 1fr;\r\n\tgrid-template-rows: minmax(10px, 1fr) 1fr minmax(10px, 1fr);\r\n\tgrid-template-areas:\r\n\t\"header header\"\r\n\t\"sidebar content\"\r\n\t\"footer footer\";\r\n\tgap: 10px;\r\n\toverflow:hidden;\r\n\tmargin: 0 10px;\r\n}\r\n.boxAdminNav {\r\n\tgrid-area: sidebar;\r\n\tfont-size: 12pt;\r\n\tline-height: 1.5em;\r\n}\r\n.boxAdminContent {\r\n\tgrid-area: content;\r\n}\r\n.adminNavContainer {\r\n\toverflow-y: scroll;\r\n\tmargin: 0 5px 0 10px;\r\n\tpadding: 2px;\r\n\theight: 0;\r\n\theight: 80vh;\r\n}\r\n.adminContainer {\r\n\toverflow-x: auto;\r\n\toverflow-y: scroll;\r\n\tmargin: 10px 5px 0 10px;\r\n\tpadding: 2px;\r\n\twidth: 84vw;\r\n\theight: 85vh;\r\n}\r\np.adminNav hr {\r\n\tborder-bottom: 1px solid silver;\r\n\tmargin: 10px 0;\r\n}\r\n.buttonLabel{\r\n\tcursor: pointer;\r\n\tpadding:5px 10px;\r\n\r\n\tbackground-color: rgba(128,128,128,0.5);\r\n\tcolor:white;\r\n font-family: ngs,sans-serif;\r\n\tfont-size: 16px;\r\n\tfont-weight: normal;\r\n\ttext-align: center;\r\n\ttext-shadow: -1px 1px 0 #000,1px 1px 0 #000,1px -1px 0 #000,-1px -1px 0 #000;\r\n}\r\n.react-toggle {\r\n\ttouch-action: pan-x;\r\n \r\n\tdisplay: inline-block;\r\n\tposition: relative;\r\n\tcursor:pointer !important;\r\n\tbackground-color: transparent;\r\n\tborder: 0;\r\n\tpadding: 0;\r\n \r\n\t-webkit-touch-callout: none;\r\n\t-webkit-user-select: none;\r\n\t-khtml-user-select: none;\r\n\t-moz-user-select: none;\r\n\t-ms-user-select: none;\r\n\tuser-select: none;\r\n \r\n\t-webkit-tap-highlight-color: rgba(0,0,0,0);\r\n\t-webkit-tap-highlight-color: transparent;\r\n }\r\n \r\n .react-toggle-screenreader-only {\r\n\tborder: 0;\r\n\tclip: rect(0 0 0 0);\r\n\theight: 1px;\r\n\tmargin: -1px;\r\n\toverflow: hidden;\r\n\tpadding: 0;\r\n\tposition: absolute;\r\n\twidth: 1px;\r\n }\r\n \r\n .react-toggle--disabled {\r\n\tcursor: not-allowed;\r\n\topacity: 0.5;\r\n\t-webkit-transition: opacity 0.25s;\r\n\ttransition: opacity 0.25s;\r\n }\r\n \r\n .react-toggle-track {\r\n\twidth: 50px;\r\n\theight: 24px;\r\n\tpadding: 0;\r\n\tborder-radius: 30px;\r\n\tbackground-color: #4D4D4D;\r\n\t-webkit-transition: all 0.2s ease;\r\n\t-moz-transition: all 0.2s ease;\r\n\ttransition: all 0.2s ease;\r\n }\r\n \r\n .react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\r\n\tbackground-color: #000000;\r\n }\r\n \r\n .react-toggle--checked .react-toggle-track {\r\n\tbackground-color: #19AB27;\r\n }\r\n \r\n .react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\r\n\tbackground-color: #128D15;\r\n }\r\n \r\n .react-toggle-track-check {\r\n\tposition: absolute;\r\n\twidth: 14px;\r\n\theight: 10px;\r\n\ttop: 0px;\r\n\tbottom: 0px;\r\n\tmargin-top: auto;\r\n\tmargin-bottom: auto;\r\n\tline-height: 0;\r\n\tleft: 8px;\r\n\topacity: 0;\r\n\t-webkit-transition: opacity 0.25s ease;\r\n\t-moz-transition: opacity 0.25s ease;\r\n\ttransition: opacity 0.25s ease;\r\n }\r\n \r\n .react-toggle--checked .react-toggle-track-check {\r\n\topacity: 1;\r\n\t-webkit-transition: opacity 0.25s ease;\r\n\t-moz-transition: opacity 0.25s ease;\r\n\ttransition: opacity 0.25s ease;\r\n }\r\n \r\n .react-toggle-track-x {\r\n\tposition: absolute;\r\n\twidth: 10px;\r\n\theight: 10px;\r\n\ttop: 0px;\r\n\tbottom: 0px;\r\n\tmargin-top: auto;\r\n\tmargin-bottom: auto;\r\n\tline-height: 0;\r\n\tright: 10px;\r\n\topacity: 1;\r\n\t-webkit-transition: opacity 0.25s ease;\r\n\t-moz-transition: opacity 0.25s ease;\r\n\ttransition: opacity 0.25s ease;\r\n }\r\n \r\n .react-toggle--checked .react-toggle-track-x {\r\n\topacity: 0;\r\n }\r\n \r\n .react-toggle-thumb {\r\n\ttransition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1) 0ms;\r\n\tposition: absolute;\r\n\ttop: 1px;\r\n\tleft: 1px;\r\n\twidth: 22px;\r\n\theight: 22px;\r\n\tborder: 1px solid #4D4D4D;\r\n\tborder-radius: 50%;\r\n\tbackground-color: #FAFAFA;\r\n \r\n\t-webkit-box-sizing: border-box;\r\n\t-moz-box-sizing: border-box;\r\n\tbox-sizing: border-box;\r\n \r\n\t-webkit-transition: all 0.25s ease;\r\n\t-moz-transition: all 0.25s ease;\r\n\ttransition: all 0.25s ease;\r\n }\r\n \r\n .react-toggle--checked .react-toggle-thumb {\r\n\tleft: 27px;\r\n\tborder-color: #19AB27;\r\n }\r\n \r\n .react-toggle--focus .react-toggle-thumb {\r\n\t-webkit-box-shadow: 0px 0px 3px 2px #0099E0;\r\n\t-moz-box-shadow: 0px 0px 3px 2px #0099E0;\r\n\tbox-shadow: 0px 0px 2px 3px #0099E0;\r\n }\r\n \r\n .react-toggle:active:not(.react-toggle--disabled) .react-toggle-thumb {\r\n\t-webkit-box-shadow: 0px 0px 5px 5px #0099E0;\r\n\t-moz-box-shadow: 0px 0px 5px 5px #0099E0;\r\n\tbox-shadow: 0px 0px 5px 5px #0099E0;\r\n }\r\n .testmode.react-toggle--checked .react-toggle-track {\r\n\tbackground-color: #00AADD;\r\n }\r\n .testmode.react-toggle--checked .react-toggle-track:hover {\r\n\tbackground-color: #00AADD;\r\n }\r\n.addAug{\r\n\theight: 37px;\r\n}\r\n.databaseIcon{\r\n\twidth:48px;\r\n\theight:48px;\r\n\tpadding-right:8px;\r\n\tposition:relative;\r\n\ttop:16px;\r\n}\r\n.equipWindow {\r\n\tmin-height: 440px;\r\n}\r\n.itemDetailsGridTop {\r\n\tdisplay: grid;\r\n\tgrid-template-areas:\r\n\t\"icon properties\";\r\n\tgrid-template-columns: 128px minmax(0,1fr);\r\n\tmargin: 10px;\r\n}\r\n.itemDetailsGridBottom {\r\n\tdisplay: grid;\r\n\tgrid-template-areas:\r\n\t\"ability fixa\"\r\n\t\"augment augment\";\r\n\tgrid-template-columns: repeat(2,minmax(0,1fr));\r\n\tmargin: 10px;\r\n}\r\n.itemDetailsIcon {\r\n\tgrid-area: icon;\r\n\talign-self: flex-start;\r\n}\r\n.editOverlayWrapper {\r\n\tposition: relative;\r\n}\r\n.editOverlayWrapper:hover {\r\n\tcursor: pointer;\r\n\toutline: 2px solid #30cdef;\r\n}\r\n.editOverlay {\r\n\tdisplay: none;\r\n\tposition: absolute;\r\n\theight: 100%;\r\n\twidth: 100%;\r\n\tjustify-content: center;\r\n\talign-content: center;\r\n\tflex-direction: column;\r\n\ttext-align: center;\r\n\tbackground: linear-gradient(45deg,rgba(76,113,126,0.66),rgba(113,169,189,00.66));\r\n}\r\n.editOverlay > p {\r\n\tmargin: 0;\r\n\tpadding: 0;\r\n}\r\n.editOverlayWrapper:hover .editOverlay {\r\n\tdisplay: flex;\r\n}\r\n.itemDetailsProperties {\r\n\tmargin: 0 0 0 10px;\r\n\tgrid-area: properties;\r\n}\r\n.itemDetailsPropertiesWrapper {\r\n\tdisplay: grid;\r\n\tgrid-template-columns: minmax(0, 1fr) minmax(0,1fr);\r\n\tgrid-template-areas:\r\n\t\"rarity stars\"\r\n\t\"attack attackDisplay\"\r\n\t\"element elementDisplay\"\r\n\t\"conditions conditionsDisplay\";\r\n\ttext-align: left;\r\n\tgap: 5px 0;\r\n}\r\n.itemDetailsPropertiesWrapper > div {\r\n\tborder-bottom: 1px solid rgba(128,128,128,0.5);\r\n\tpadding-bottom: -1px;\r\n}\r\n.itemDetailsPropertiesWrapper > div:nth-child(odd) {\r\n\tcolor: #97e2fc;\r\n}\r\n.itemDetailsPropertiesWrapper > div:nth-child(even) {\r\n\tpadding-left: 0;\r\n}\r\n.itemDetailsAugment {\r\n\tmargin: 15px 0 0 0;\r\n\tgrid-area: augment;\r\n}\r\n.itemDetailsAugmentWrapper {\r\n\tmargin: 10px 0 0 0;\r\n\tdisplay: grid;\r\n\tgrid-template-columns: repeat(auto-fit,minmax(125px, 1fr));\r\n\tgap: 10px 30px;\r\n\t\r\n}\r\n.itemDetailsAugmentWrapper > div {\r\n\tbackground-color:rgba(0,0,0,0.33);\r\n\tpadding: 2px 10px;\r\n\tborder-radius: 0 10px 0 0;\r\n\theight: 20px;\r\n\twhite-space: nowrap;\r\n\ttext-overflow:ellipsis;\r\n}\r\n.itemDetailsAugmentWrapper > div span:before {\r\n\tcontent: \"\\00B7\";\r\n\tmargin-right: 10px;\r\n\tfont-weight: 900;\r\n}\r\n.itemPotential {\r\n\tgrid-area: ability;\r\n\ttext-align: left;\r\n}\r\n.itemFixa {\r\n\tgrid-area: fixa;\r\n\ttext-align: left;\r\n}\r\n.itemDetailsIcon img {\r\n\tbackground: radial-gradient(rgb(196,196,196),rgb(128,128,128));\r\n\tborder-color: rgba(128,128,128,1);\r\n\tborder-width: 2px;\r\n\twidth: 124px;\r\n\tbox-sizing: content-box;\r\n\tborder-style: solid;\r\n}\r\n.formField{\r\n\tfont-weight:bold;\r\n}\r\n.formDescription{\r\n\tfont-style:italic;\r\n}\r\n.formError{\r\n\tcolor:red;\r\n\tfont-weight:bold;\r\n}\r\n.toDoList {\r\n\tpadding: 0 10px;\r\n}\r\ndt {\r\nmargin: 10px 0 0 0;\r\n}\r\ndd, dl {\r\n\tpadding: 10px 0 0 15px;\r\n}\r\ndd:before {\r\n\tcontent: \"\\2610\";\r\n\tpadding-right: 10px;\r\n}\r\n.half:before {\r\n\tcontent: \"\\25E7\" !important;\r\n}\r\n.check {\r\n\topacity: 0.25;\r\n}\r\n.check:hover {\r\n\topacity: 1;\r\n}\r\n.check:before {\r\n\tfont-family: \"Segoe UI Symbol\";\r\n\tcontent: \"\\2B1B\" !important;\r\n}\r\n.trashButton{\r\n\tcolor:rgba(100,50,50,1);\r\n\twidth:24px;\r\n\theight:24px;\r\n}\r\n.trashButton:hover {\r\n\tcolor:rgba(200,50,50,1);\r\n\tborder: 2px solid red;\r\n}"]}
\ No newline at end of file
diff --git a/static/css/main.ad03a1ba.chunk.css b/static/css/main.ad03a1ba.chunk.css
new file mode 100644
index 0000000..55d820b
--- /dev/null
+++ b/static/css/main.ad03a1ba.chunk.css
@@ -0,0 +1,2 @@
+body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,"Courier New",monospace}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,here it is. html,hgroup,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,the file to use and tweak as fits you best. If you"re more of the copy-and-paste type, or just want an in-page preview of what you"ll be getting,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}table{border-collapse:collapse}*{border:0;margin:0;padding:0;box-sizing:border-box;outline:0}.noSelect{-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}@font-face{font-family:"ngs";src:url(/static/media/4.b3395666.woff) format("woff")}@font-face{font-family:"ngs2";src:url(/static/media/3.c923286b.woff) format("woff")}@font-face{font-family:"ngs3";src:url(/static/media/2.32e8ae4f.woff) format("woff")}@font-face{font-family:"ngs4";src:url(/static/media/1.3f72ad8c.woff) format("woff")}@font-face{font-family:"Segoe UI Symbol";src:url(/static/media/seguisym.e8cb9d09.ttf) format("truetype")}a,a:active,a:hover,a:visited{color:#fff;text-decoration:none}a:active,a:hover{background-color:rgba(113,169,189,.33)}hr{border-bottom:1px solid hsla(0,0%,50.2%,.5)}img{vertical-align:middle}html{min-height:-webkit-fill-available}body{background-image:url(https://pbs.twimg.com/media/E8tfm23VUAQTAAu?format=jpg&name=4096x4096);background-color:#484848;background-repeat:no-repeat;background-position:50%;background-attachment:fixed;background-size:cover;color:#fff;font-family:ngs,Arial,sans-serif;font-size:16px;font-weight:400;text-align:center;text-shadow:-1px -1px 0 rgba(0,0,0,.66),1px -1px 0 rgba(0,0,0,.66),-1px 1px 0 rgba(0,0,0,.66),1px 1px 0 rgba(0,0,0,.66);min-height:100vh;min-height:-webkit-fill-available}table{border-spacing:0;width:100%}table td{vertical-align:top}ul{list-style-type:none;-webkit-padding-start:0;padding-inline-start:0}em{font-style:normal}header a{color:#fff;text-decoration:none}header a:hover{background:linear-gradient(45deg,rgba(76,113,126,.66),rgba(113,169,189,.66));text-decoration:none}.main,header{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,450px));-webkit-justify-content:center;justify-content:center;grid-gap:10px;gap:10px}.main{margin:0 10px}header{background-color:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:left;margin:0;padding:0 10px;line-height:50px;height:50px}.headerWrapper{grid-area:1/span 3;display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr) minmax(0,auto);-webkit-align-items:stretch;align-items:stretch}header a{display:block;height:50px}.logo{font-family:"ngs2";margin-right:auto;font-size:24px;white-space:nowrap;justify-self:start}.logo span{font-size:16px;text-transform:uppercase}.logo span:after{content:".com"}.logo img{height:40px}.logo a{padding:0 45px 0 15px}.navigation{text-align:left;justify-self:start}.navigation a{padding:0 15px}.navigation li{display:inline-block;border-color:hsla(0,0%,100%,.13);border-left:1px hsla(0,0%,100%,.13);border-style:solid;font-size:17px;font-family:"ngs2"}.navigation li:last-child{border-right-width:1px}.rightNav{text-align:right;justify-self:end}.rightNav a{padding:0 15px}.rightNav img{height:40px;margin-bottom:5px;-webkit-clip-path:circle(44%);clip-path:circle(44%)}.dotMenu,.navigation .miniNav{display:inline-block;font-size:24px;font-weight:900;letter-spacing:2px}.miniNav{display:none;text-align:right}@media screen and (max-width:860px){.logo a{padding:0 10px}.logo{font-size:22px}.logo span{font-size:14px}.logo span:after{content:""}.loginNav,.navigation>ul{display:none}.miniNav{display:inline;display:initial}}.box{color:#fff;background-clip:padding-box;background-color:rgba(24,36,48,.66);margin:10px 0 0;text-align:left;padding-bottom:10px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.box h3{color:#97e2fc}.box h3,dt{font-size:12pt;font-weight:400;padding:0 5px;margin:5px;border-bottom:1px solid hsla(0,0%,50.2%,.5)}.box tr{border-bottom:1px solid hsla(0,0%,50.2%,.13)}.box td{padding:0 5px}.box td:first-child{color:#97e2fc}.basicInfo{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr) minmax(0,1fr);grid-template-areas:"author author player" "build build character" "class class2 classlv" "subclass subclass2 subclasslv";margin:10px 10px 0;padding:0 5px}.statsInfo{background-color:rgba(0,0,0,.33);margin:5px 10px 0;padding:0 5px 5px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,auto) minmax(0,.66fr) minmax(0,1fr);grid-template-areas:"bp bp2 bpGraph bpGraph" "hp hp2 hpGraph hpGraph" "pp pp2 ppGraph ppGraph" "atk atk2 atkGraph atkGraph" "def def2 defGraph defGraph" "wepUp wepUp2 wepUp2 wepUp3" "res res2 res2 res3" "dmgRes dmgRes2 dmgRes2 dmgRes2"}.basicInfo>div,.statsInfo>div{border-bottom:1px solid hsla(0,0%,50.2%,.5);line-height:25px;position:relative;padding-bottom:-1px}.basicInfo>div:nth-child(-n+4),.statsInfo>div:nth-child(-n+8){color:#97e2fc}.statsInfo>div:nth-child(n+9):nth-child(-n+13){text-align:right}.barGraph{margin:8px 0 8px auto;background:linear-gradient(90deg,#65beef,#f5ee3c);width:75%}.barGraph,.barOverlay{display:block;height:8px}.barOverlay{border:2px solid #000}.boxTitleBar{background-color:rgba(124,144,148,.66);text-align:left;display:-webkit-flex;display:flex;-webkit-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-justify-content:space-between;justify-content:space-between}.boxTitleBar,.boxTitleBar h1{color:#fff;font-weight:400;font-size:18px}.boxTitleBar h1{margin-right:10px;padding:13px 13px 7px}.boxTitleBar h1:before{font-family:"Segoe UI Symbol";content:" \25C6";margin-right:10px}.equipNameWrapper{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);margin:10px 10px 0;grid-gap:10px;gap:10px}.equipName{max-width:250px;padding-right:2px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.equipName:hover{background:linear-gradient(45deg,rgba(76,113,126,.66),rgba(113,169,189,.66));outline:2px solid #1ce3e3}.equipName h2{color:#fff;font-weight:400;font-size:18px;text-align:left}.equipEnhancement:hover{background:linear-gradient(45deg,rgba(76,113,126,.66),rgba(113,169,189,.66));outline:2px solid #1ce3e3}.saveControls{margin-top:10px;padding:0 10px;text-align:right}.infoBuffs{margin:0 auto;width:90%}.infoBuffs:last-child{margin-bottom:10px}.infobuffs li{margin:5px 0}.infoBuffs li:hover{background:linear-gradient(45deg,rgba(76,113,126,.66),rgba(113,169,189,.66))}.infoBuffs li ul{width:100%}.infoBuffs li ul li{width:100%;padding-left:20px}.infoBuffs li ul li:hover{background:transparent}.box p{padding:10px 10px 0}.equipPalette{margin:10px 10px 0;display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;-webkit-flex-flow:row wrap;flex-flow:row wrap;white-space:nowrap}.equipPaletteSlotWrapper{background-color:hsla(0,0%,50.2%,.5);cursor:pointer!important;padding:10px}.equipPaletteSlotWrapper span{margin:0 10px 0 0;color:#ffcf04;font-size:14pt;font-family:ngs2,Arial,sans-serif}.equipPaletteSlotWrapper img{height:48px;border:1px;border-style:solid;background:radial-gradient(#c4c4c4,grey);border-color:grey}.equipPaletteSlot{text-align:center;-webkit-flex:1 1;flex:1 1}.equipPaletteSlot:first-child{padding-right:10px}.equipPaletteSlot:hover img{outline:2px solid rgba(54,255,255,.66)}.equipPalette h3{color:#97e2fc;font-size:16px;font-weight:400;white-space:nowrap}.equipDetails{display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;-webkit-flex-flow:row wrap;flex-flow:row wrap;margin:10px 10px 0 0;text-align:left}.statsDetails{display:grid;grid-template-columns:minmax(0,auto) repeat(3,minmax(0,1fr));grid-template-areas:"enhance1 enhance2 enhance2 enhance2" "variance1 variance2 variance2 variance2" "weaponup mel rng tec" "ailment ailment1 ailment2 ailment3" "class1 class2 class2 class2" "mw1 mw2 mw2 mw2"}.statsDetails>div:nth-child(-n+6){color:#97e2fc}.statsDetails>div{border-bottom:1px solid hsla(0,0%,50.2%,.5)}.augmentDetails{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);grid-template-rows:auto minmax(0,1fr);grid-gap:10px;gap:10px;-webkit-flex:1 1;flex:1 1;grid-template-areas:"header1 header2" "ability stats";place-content:stretch;place-items:stretch;margin:8px 10px 0 8px}.augmentDetails h3{margin:0}.augmentDetailsListHeader{grid-area:header1}.augmentDetailsStatsHeader{grid-area:header2}.augmentDetailsList{grid-area:ability;overflow-y:scroll;max-height:280px}.augmentDetailsList li{background-color:hsla(0,0%,50.2%,.25);color:#fff;margin:2px 5px 5px 2px;padding:10px}.augmentDetailsList li:hover{background:linear-gradient(45deg,rgba(76,113,126,.66),rgba(113,169,189,.66));outline:2px solid #1ce3e3}.augmentDetailsStats{grid-area:stats;margin:0 0 0 10px}.augmentDetailsStats td:last-child{color:#ffb74c}.equipAugs{-webkit-flex:1 1 auto;flex:1 1 auto}.equipAugs li{background-color:hsla(0,0%,50.2%,.5);color:#fff;margin:0 0 5px 10px;padding:12px 10px 7px;cursor:pointer!important}.equipAugs li:hover{background:linear-gradient(45deg,rgba(76,113,126,.66),rgba(113,169,189,.66));outline:2px solid #1ce3e3}.equipAugsExpand{margin:0 10px 0 0;display:inline}.tooltip{cursor:help}.tooltip span{visibility:hidden;width:200px;background-color:rgba(38,53,63,.9);padding:5px;position:absolute;white-space:normal;left:1em}.tooltip span,.xTooltip{color:#fff;font-size:10pt;text-align:left}.xTooltip{margin:0 10px 0 0;display:inline;cursor:help!important}[class*=BaseToolTop]{min-width:200px}.tooltip:hover span{visibility:visible}.pr{-webkit-flex:1 1 auto;flex:1 1 auto;margin:10px 10px 0 0;text-align:left}.pr li{margin:0 10px 2px;padding:5px}.pr li span{color:#fff}.aug:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABUUlEQVQ4y5WTMUvDcBDF75s4ufoF3KSL2EVKDYKhoEMdBEGig61NF4fYKoW2oLi7Obk46FwDLm5uLh0q/1VwcDj/79Jrr6FLhse797t7CQ2UOOWq18SLCwqdKvHzj+sddXllda2Q0EGX+OFbwF3tkjFb6XGe41Y5cf8jC96thrvnswdgzu+1Q3zzlgXvqkFwKqzvvT+dweyNdojvP7PgHeqETcmJd2XJlHUM0w65p18J8Iv6lczNeiLZCgw73NgOpe+88HWPT4YMtkzY2VswevxafMB+45bBlgk7ewtGg8lf9pG8B62OzEHclWwFJjt/YzvUcCMJcKgcR5LL7WjO2lMWz5l26ND1JMBVpTgUVmqHIpk9szfaoQNXlwC32oi3Zr8Vc36vHYrGO9kbWuuM2UofkOe4VU7d0TbvnW0W/jOhc+279JJWaq9pxXlxQTl0/wEsC5CUKM/JmAAAAABJRU5ErkJggg==);margin-right:5px;vertical-align:middle}.itemWeaponWrapper{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:16px}.rifle:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAD6SURBVDhPnZM7CsJAFEXvBIJYioJ2NroMe0FwD9oIbsK4CUv3YKEIli4jNnYGFEvRFGNuPuNLHL8HhkzC3JP3Hozqz7WuNQDXxU+EIXA8AGq40voUAIuBQnemsR4rtHpetCbpUTulMlCtAw7/fL3AhMlu6UVrGu9fwQyzTvpuwqTS7sQSIr/bMAJZ8tnfxhKGZWU2hCDf97cSIyD/SHKChPyhT5KcgJPPhsdKGCDvJEZQDLMdYpPINkUFyUEZLkIJ4c+yKtRoo/Xej/dWZGUSVtZsW4f4oNiWJKvgpcA2EynJZuPwVvFiPPM8Ez4Z5GKG2f+v8y26zgFwB0yEk2rlUPX0AAAAAElFTkSuQmCC);margin-right:5px;vertical-align:middle}.meat:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAEZXpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjarVdbsusoDPxnFbMEJPEQy8E8qmYHs/xpbOLYzuMk515TNljIoukGkZj237/d/IOLSYNxPmpIIVhcLrnEGQ2125XWJ1m3PueLvTVOdrN3MEyCWrbXmKd/ht3fP7iNQcvZbnT2sM5AtAdeLxkjj3Y9goSdNzu5GSi1rRGSxiPUZQYq03GFMm+3w9qq8W5OhgiWqsdAwtyExK5P3RDIuEky6ognSYLfKBl2Nqi8pBkMhJymtxNojwSdSL61zJX9vXUhn/O0y4XLMDlC42kH+Ytd9mH4OLDsiPjc4cXGh+nMu/eqvbdtdtkFMBrmilrJplsYOC6gXNbPAkrE7dGOa0koarMtkLzaYheUQokYqnRDjipl6tTWulABRMeNI2rmAqGGTSVy4gKNSNwo1DlKkioKzQo3IwIz71hoHTet4xVSjFwJrkwIRkPmV8W86/ymmN7LoIis7lwBF491DRhDufGEFwShPnXzK8G3MuW3h/UzlqqD26BZMcFsly3E4um+tmTVWeDnUW9biEysMwAowtgeYEiggA0kngLZyByJwKNCoAzkLI4XKEDecwVIdiKBTWTlMTa+ibT6sufAw4zcBCG8BOwthUIZYjnnsX6iU6yh7MU7733w0avxyecgwQUfQohhJLkcJbroY4gxakwxq6hTr0GjqibNiZMgB/oUUkyaUsqZTcZAGbEy/DMsCy+yuMUvYYmLLmnJBcunuOJLKLFoSSVXrlKRJmqosWpNNTcyDZmiueZbaLFpSy13rLUu3XXfQ49de+p5V22q+lC+UI2marwqNfzirhqsJsZbCBrpxA/NoBg7guJxKIAFzUMzq+QcD+WGZjYxNoVngPRDG1NpKAYJXSP2nXbt7sp9pJvx+pFu/JNyZkj3N5QzkO5Rtyeq1XHOlVWxbRcOTq1g93UHLGoyL420B8eK1zwOuF/Vxv5hAFtk1GxU8h/H2gJ94FjLOigWQLnguMPAyu44C9Z2X5K0qDffnpe82TVI053EvjV4qVVKs1tAa6T6trlb7e5jyh9AmhPKV+BegTyAM0AnM3ru0XbZaeg+bl5FpNqfkJuveH1JJ/baYdAbby8Qvp+nUfc3xEdiey7qh6BeTE0qTwaotMbdk/PkE84XN5rj9+JWh7Z2ObjtJoOfDqut7m4xuS1EQyaIND/ySCgxtWvMvTavOm5R81K3qJSaElLMFlUd1sYRoblCvCP8DtlPiD5Gao5Qn5H4KcLfInpAaN6R+R7hWWXzrcw/yf+xzK8QmvoQ3G+bd/GM3TEzSR3n430X4ZDrty0+a2MvhmPiKd0dshLLON4vznFut2bibrNt2vTq/vA5prhFb831tOZt89TxDOoxQRynJi23w0mb6Y7yVyDNPfG4Lvpi0He0zXma00TPRKyQP0VsfoD8JI8P5I8njTmK+kyNZ+AexY87oi94fV6bbz8447h3mV8M/rT+LpDgJyD+2pv/AcJxGYSDvNHBAAAAZ3pUWHRSYXcgcHJvZmlsZSB0eXBlIGlwdGMAAHjaPYoxDoBQCEN3TuERgKJfjvPDd3Bz8P6xYbCEQton9/OWbK04BGd4ZCwNzi93K3UMvhMO5Zov3kE3ZLfF9mKmICNEJnZkYx0x/AD2hxdh/zdrLAAAAYVpQ0NQSUNDIHByb2ZpbGUAAHicfZE9SMNAHMVfU6UiVRE7iDhkqE4WREV0kyoWwUJpK7TqYHLpFzRpSFJcHAXXgoMfi1UHF2ddHVwFQfADxM3NSdFFSvxfUmgR48FxP97de9y9A4R6malmxzigapaRjEXFTHZVDLwigH4MoBezEjP1eGoxDc/xdQ8fX+8iPMv73J+jR8mZDPCJxHNMNyziDeLpTUvnvE8cYkVJIT4nHjPogsSPXJddfuNccFjgmSEjnZwnDhGLhTaW25gVDZV4ijisqBrlCxmXFc5bnNVylTXvyV8YzGkrKa7THEYMS4gjAREyqiihDAsRWjVSTCRpP+rhH3L8CXLJ5CqBkWMBFaiQHD/4H/zu1sxPTrhJwSjQ+WLbHyNAYBdo1Gz7+9i2GyeA/xm40lr+Sh2Y+SS91tLCR0DfNnBx3dLkPeByBxh80iVDciQ/TSGfB97P6JuywMAt0L3m9tbcx+kDkKaulm+Ag0NgtEDZ6x7v7mrv7d8zzf5+AKlncr2FLd9RAAAPVWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6aXB0Y0V4dD0iaHR0cDovL2lwdGMub3JnL3N0ZC9JcHRjNHhtcEV4dC8yMDA4LTAyLTI5LyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOnBsdXM9Imh0dHA6Ly9ucy51c2VwbHVzLm9yZy9sZGYveG1wLzEuMC8iCiAgICB4bWxuczpHSU1QPSJodHRwOi8vd3d3LmdpbXAub3JnL3htcC8iCiAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6Z2ltcDpiNDE3ZjVhMy00Y2JlLTQzYjUtYjYxZS1hOThlNTE3ODNkMGMiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ZTg5M2NjYzktMGNmNy00MzYxLTgyYWEtOTNlYjE2NDA5N2ExIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZDFjZDkxMGYtNjk2Zi00NjYzLWE0ZTItYTM3NzQ2ZmRjMzg0IgogICBHSU1QOkFQST0iMi4wIgogICBHSU1QOlBsYXRmb3JtPSJXaW5kb3dzIgogICBHSU1QOlRpbWVTdGFtcD0iMTYyNjYyMTc4MDEyNzIyMCIKICAgR0lNUDpWZXJzaW9uPSIyLjEwLjE4IgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiPgogICA8aXB0Y0V4dDpMb2NhdGlvbkNyZWF0ZWQ+CiAgICA8cmRmOkJhZy8+CiAgIDwvaXB0Y0V4dDpMb2NhdGlvbkNyZWF0ZWQ+CiAgIDxpcHRjRXh0OkxvY2F0aW9uU2hvd24+CiAgICA8cmRmOkJhZy8+CiAgIDwvaXB0Y0V4dDpMb2NhdGlvblNob3duPgogICA8aXB0Y0V4dDpBcnR3b3JrT3JPYmplY3Q+CiAgICA8cmRmOkJhZy8+CiAgIDwvaXB0Y0V4dDpBcnR3b3JrT3JPYmplY3Q+CiAgIDxpcHRjRXh0OlJlZ2lzdHJ5SWQ+CiAgICA8cmRmOkJhZy8+CiAgIDwvaXB0Y0V4dDpSZWdpc3RyeUlkPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo4M2ExMzIyMi03ZDQ4LTQ4ZWQtOGE1OS02MjBkN2ZhMTQwZDciCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjEtMDctMTlUMDA6MjM6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogICA8cGx1czpJbWFnZVN1cHBsaWVyPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6SW1hZ2VTdXBwbGllcj4KICAgPHBsdXM6SW1hZ2VDcmVhdG9yPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6SW1hZ2VDcmVhdG9yPgogICA8cGx1czpDb3B5cmlnaHRPd25lcj4KICAgIDxyZGY6U2VxLz4KICAgPC9wbHVzOkNvcHlyaWdodE93bmVyPgogICA8cGx1czpMaWNlbnNvcj4KICAgIDxyZGY6U2VxLz4KICAgPC9wbHVzOkxpY2Vuc29yPgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+tNuHggAAAAZiS0dEAAkAwgCcn8FETwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+UHEg8XAMyyoD4AAADKSURBVDjLY/x0JvI/AwWAhYGBgeHDvSdkaRZQkmFgQhaQCzvMIBd2GM7vX/2IoX/1I8IugGlGBhDND+H8wlA5rAYwoQsUhsphaEZm4zTg0SpbhkerbBkYGBixauhf/Yjh7aff+F2AbjOq3EMGw5QTGGHCRIxmdIOQDUFyASnJ4T+mAYWh8jhDGj2QC0PlsYdBYag8w/nZFjgNQteMNRqF+VkxFCHSASNGYmPC51R0m7EFMgtuA+SxsmFpBgYYP52J/E9JZmKBMcgFAO7rVSrc3CAxAAAAAElFTkSuQmCC)}.vege:before{content:url(data:image/png;base64,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5QsZlxXOW5zVcpU178lfGMxpKymu0xxGDEuIIwERMqoooQwLEVo1UkwkaT/q4R9y/AlyyeQqgZFjARWokBw/+B/87tbMT064ScEo0Pli2x8jQGAXaNRs+/vYthsngP8ZuNJa/kodmPkkvdbSwkdA3zZwcd3S5D3gcgcYfNIlQ3IkP00hnwfez+ibssDALdC95vbW3MfpA5CmrpZvgINDYLRA2ese7+5q7+3fM83+fgCpZ3K9hS3fUQAAD1VpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDQuNC4wLUV4aXYyIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOmlwdGNFeHQ9Imh0dHA6Ly9pcHRjLm9yZy9zdGQvSXB0YzR4bXBFeHQvMjAwOC0wMi0yOS8iCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpwbHVzPSJodHRwOi8vbnMudXNlcGx1cy5vcmcvbGRmL3htcC8xLjAvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElEPSJnaW1wOmRvY2lkOmdpbXA6OWFiZWMwMWQtYWMyNS00Nzg0LWI1N2ItYmJhYzlkNTZjNGZjIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjhiZjg3MzM1LTdhZjItNGEyYi1hMzc1LWI4MThmNTBlMGYwOSIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmQ5MzM1YTYyLWRhOGMtNDU5Ny1iZjkxLTdlZmRkY2ZjNTEyNyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iV2luZG93cyIKICAgR0lNUDpUaW1lU3RhbXA9IjE2MjY2MjE2ODY1MDI1MjgiCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4xOCIKICAgZGM6Rm9ybWF0PSJpbWFnZS9wbmciCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIj4KICAgPGlwdGNFeHQ6TG9jYXRpb25DcmVhdGVkPgogICAgPHJkZjpCYWcvPgogICA8L2lwdGNFeHQ6TG9jYXRpb25DcmVhdGVkPgogICA8aXB0Y0V4dDpMb2NhdGlvblNob3duPgogICAgPHJkZjpCYWcvPgogICA8L2lwdGNFeHQ6TG9jYXRpb25TaG93bj4KICAgPGlwdGNFeHQ6QXJ0d29ya09yT2JqZWN0PgogICAgPHJkZjpCYWcvPgogICA8L2lwdGNFeHQ6QXJ0d29ya09yT2JqZWN0PgogICA8aXB0Y0V4dDpSZWdpc3RyeUlkPgogICAgPHJkZjpCYWcvPgogICA8L2lwdGNFeHQ6UmVnaXN0cnlJZD4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6YzEzOTU4N2MtNjgyMi00NTZiLWExNmYtMDMzYzhhNDViNTExIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIxLTA3LTE5VDAwOjIxOjI2Ii8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICAgPHBsdXM6SW1hZ2VTdXBwbGllcj4KICAgIDxyZGY6U2VxLz4KICAgPC9wbHVzOkltYWdlU3VwcGxpZXI+CiAgIDxwbHVzOkltYWdlQ3JlYXRvcj4KICAgIDxyZGY6U2VxLz4KICAgPC9wbHVzOkltYWdlQ3JlYXRvcj4KICAgPHBsdXM6Q29weXJpZ2h0T3duZXI+CiAgICA8cmRmOlNlcS8+CiAgIDwvcGx1czpDb3B5cmlnaHRPd25lcj4KICAgPHBsdXM6TGljZW5zb3I+CiAgICA8cmRmOlNlcS8+CiAgIDwvcGx1czpMaWNlbnNvcj4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgWg++sAAAAGYktHRAAJAMIAnJ/BRE8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQflBxIPFRoD5jvGAAABqElEQVQ4y6WTO0hbYRiGn3MMCUKq0SB0CFGDF8QLtFSso4Nbt5Kgi4OLFxDMqIvWQdDBDEIvS22hW+jgkEFCsZCCESKKkiiiYuIxEQ2Sq2m9HQdJzNGjhfhNPz/f9/zv9/L+QsLXLfOM0gDE9qSChg0WE2L+hcMZYskfxxuIY7Z5MNs8OJyh/yvIDjucQdobS1FCgwDYreanAXBrxZI//qDpKYiQ8HXLsT2JlPiCEr2WaOwfwUga73qUn78O2A4lc812a6UCYrCY7hR0Di6SzlxhLNViMemZGGih5101ntUTxj5vEIlmVJXkTDw8zhBLnrMrpXB7j3B7I/R+WGY/nGbhYwdtTcbcOvnGinfylPv5Aqe8qi9j8qufkdk15sbf0lxjUHhyD6Dc7/fKMa8byqko0+HyhBn7ssGn0VaKdUWKhxQ5yIckUhe4/oQZ6qpDFASc7hA7B0n63tc8DrgPmV+UOL+QGbTVoikSmP6+SWujUd1ENci1LDP1LYBOKzLe38zZ30t8axJ2a6VakB5Csgmd+bFFZ9tLZoZbeFOlUQ9SoZ9Jkz0UWjf3DangiiIGYwAAAABJRU5ErkJggg==)}.fruit:before{content:url(data:image/png;base64,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I0BgF2jUbPv72LYbJ4D/GbjSWv5KHZj5JL3W0sJHQN82cHHd0uQ94HIHGHzSJUNyJD9NIZ8H3s/om7LAwC3Qveb21tzH6QOQpq6Wb4CDQ2C0QNnrHu/uau/t3zPN/n4AqWdyvYUt31EAAA9VaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1FeGl2MiI+CiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxuczppcHRjRXh0PSJodHRwOi8vaXB0Yy5vcmcvc3RkL0lwdGM0eG1wRXh0LzIwMDgtMDItMjkvIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6cGx1cz0iaHR0cDovL25zLnVzZXBsdXMub3JnL2xkZi94bXAvMS4wLyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIKICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOjY2OGIxMzEyLWY4OTgtNGMyNi04YWI1LTVmMTRiNTlkMmQyOSIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2MGZjNzE0NC1iNzU1LTRhMDMtOWQ4NS00NTg1YjIwNGUwZjgiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4YWNiYTNlZS03MTMwLTQ5NTgtOTQ1Zi1jZGIxODc3ZGViYjIiCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IldpbmRvd3MiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjI2NjIxNzM3NTM5MzUyIgogICBHSU1QOlZlcnNpb249IjIuMTAuMTgiCiAgIGRjOkZvcm1hdD0iaW1hZ2UvcG5nIgogICB4bXA6Q3JlYXRvclRvb2w9IkdJTVAgMi4xMCI+CiAgIDxpcHRjRXh0OkxvY2F0aW9uQ3JlYXRlZD4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OkxvY2F0aW9uQ3JlYXRlZD4KICAgPGlwdGNFeHQ6TG9jYXRpb25TaG93bj4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OkxvY2F0aW9uU2hvd24+CiAgIDxpcHRjRXh0OkFydHdvcmtPck9iamVjdD4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OkFydHdvcmtPck9iamVjdD4KICAgPGlwdGNFeHQ6UmVnaXN0cnlJZD4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OlJlZ2lzdHJ5SWQ+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjJiYjA3OGE3LTY2ZWEtNGIwYy05OTcyLTdhYzhmZjRjZTY2YiIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMS0wNy0xOVQwMDoyMjoxNyIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgIDxwbHVzOkltYWdlU3VwcGxpZXI+CiAgICA8cmRmOlNlcS8+CiAgIDwvcGx1czpJbWFnZVN1cHBsaWVyPgogICA8cGx1czpJbWFnZUNyZWF0b3I+CiAgICA8cmRmOlNlcS8+CiAgIDwvcGx1czpJbWFnZUNyZWF0b3I+CiAgIDxwbHVzOkNvcHlyaWdodE93bmVyPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6Q29weXJpZ2h0T3duZXI+CiAgIDxwbHVzOkxpY2Vuc29yPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6TGljZW5zb3I+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5J8fKPAAAABmJLR0QACQDCAJyfwURPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5QcSDxYRvxmxjQAAAWFJREFUOMulkz1IQmEUhp9+TAgUszDFkArUycFqighCamxoMKxormiKtmirpSJqaCpoKJQIaulnssG7NAhBUxJW9CN6CYpbptbN25ANcjNS3+k7h+88vOf7zqmQwj6FMlQN8Hx1X1KxobWJyr8u2LwCNq/wJ6SSMlUQkH7PYtRpqNdruBPTxQOOTh9xO3QM91rYOHwoHuAPxhnymBnts7AviEhJ+f+AaCzFbSJFj9uIqa4GT7uRwEm88DcCfMgKc1tX7AsiqUwWp60WJTch/Z0mJlcvWNm9pc2hZ2HMjrVBm+9gfvuazeMYz68ymY8s59FXlnZuAFg/uOflTSaZ/kQ4f2JqLaJuYS+UUNkLBL9tn12+5OXDEam4OXDbdXlxh1OvBgx0N6oKfR4zAIvjDrpcBmq1VXS5DCxPONWPODPSgqIo7IXEHNDE9GAzANYGLf5Z16/uKqSwTylnmap/DqXqC4unc3fRZfqSAAAAAElFTkSuQmCC)}.seafood:before{content:url(data:image/png;base64,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Hu/uau/t3zPN/n4AqWdyvYUt31EAAA9VaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1FeGl2MiI+CiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxuczppcHRjRXh0PSJodHRwOi8vaXB0Yy5vcmcvc3RkL0lwdGM0eG1wRXh0LzIwMDgtMDItMjkvIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6cGx1cz0iaHR0cDovL25zLnVzZXBsdXMub3JnL2xkZi94bXAvMS4wLyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIKICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOjA1YzJhYmIwLWI0YjYtNGMxYi1hNWVhLTRhYjk2OTNkNDljZSIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4NjY4Mzk3ZC1mN2FhLTQxOGMtOTI0MC1mMjhlZjBkNzhjNTciCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDplYTg2YjAzNS01Yzk2LTQ4MTEtYjQyMC1mYzk1ZjQxYjBjZGQiCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IldpbmRvd3MiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjI2NjIxNzYzNzc5ODY5IgogICBHSU1QOlZlcnNpb249IjIuMTAuMTgiCiAgIGRjOkZvcm1hdD0iaW1hZ2UvcG5nIgogICB4bXA6Q3JlYXRvclRvb2w9IkdJTVAgMi4xMCI+CiAgIDxpcHRjRXh0OkxvY2F0aW9uQ3JlYXRlZD4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OkxvY2F0aW9uQ3JlYXRlZD4KICAgPGlwdGNFeHQ6TG9jYXRpb25TaG93bj4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OkxvY2F0aW9uU2hvd24+CiAgIDxpcHRjRXh0OkFydHdvcmtPck9iamVjdD4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OkFydHdvcmtPck9iamVjdD4KICAgPGlwdGNFeHQ6UmVnaXN0cnlJZD4KICAgIDxyZGY6QmFnLz4KICAgPC9pcHRjRXh0OlJlZ2lzdHJ5SWQ+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjdlMDgxMDNiLTZhODUtNGE1MS1hNjMzLThkYTc5YjhmNDNjOSIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMS0wNy0xOVQwMDoyMjo0MyIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgIDxwbHVzOkltYWdlU3VwcGxpZXI+CiAgICA8cmRmOlNlcS8+CiAgIDwvcGx1czpJbWFnZVN1cHBsaWVyPgogICA8cGx1czpJbWFnZUNyZWF0b3I+CiAgICA8cmRmOlNlcS8+CiAgIDwvcGx1czpJbWFnZUNyZWF0b3I+CiAgIDxwbHVzOkNvcHlyaWdodE93bmVyPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6Q29weXJpZ2h0T3duZXI+CiAgIDxwbHVzOkxpY2Vuc29yPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6TGljZW5zb3I+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4CvUVGAAAABmJLR0QACQDCAJyfwURPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5QcSDxYreRVoPwAAAQ5JREFUOMtj/HQm8j8DBYCFgYGB4cO9J3gVqUQfZbiz1BpDXEBJhoGJkA1yYYcZ/v79z/D3H3aHEjRgVYMeQ16wHINixBGG/tUPsXsBn+3IoH/1I4bCUHnCLnjy+geG5sJQeYZHq2wxXIHhgp+//zEUTb0F1SSHYiPMUGQxDAPYWZkYVjXoMTAwMDD8+w9xNja/YzVAJfoow6/f/3AqLgyVZzhx7QP2MJAPP4xXMyQQHzJYaPGTFo2YhqB6Ce6F//8RYZAVIIPTgAlrHqFEJ9wFj1bZMjAwMODVzMDAwFAQIoc7EB+tskWJfwstfgZLbYifj1/9yHDi2kcUy7BGI7KkXNhhuCZ0ORhgpDQ7AwDpy2ah1T5IuQAAAABJRU5ErkJggg==)}.fruit:before,.gb:before,.meat:before,.seafood:before,.vege:before{margin-right:5px;vertical-align:middle}.gb:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAADvSURBVDhPY/zf5vefQVKEgYGVlYEk8Ps3A8PzNwyM/+cn/Wd48ZaBsXIjQ4O9CkM9EBMFONkZGCSEGZjANn//CRZrOHiHoRGIiQIgPUC9TFAuHJBkCBBgGAACIENAgLFpB0HD4Aag+x1kyP86D4IughuAHoC+amJgFxAyBMULyIaYzD7GcCbViqAhmIFIwBB0gD0QsRgCCxN0wPh/Sfp/hlsPoVxUgM3ZKIaoyWN3AQyAXAICyJpA3kEGeA0AAZBmdE0HHryDsogwAARAhiC7ovEQwltM4FwFyhhEAFjAgl0A0gPUS352/gW0+MUbBgCI3HpQtnXeGgAAAABJRU5ErkJggg==)}.itemWrapper,.itemWrapperActive{background-color:hsla(0,0%,62.7%,.33);margin:5px 10px;padding:10px 10px 6px;display:grid;grid-template-columns:minmax(56px,auto) minmax(0,1fr) minmax(0,auto) minmax(16px,auto);grid-template-rows:minmax(0,auto) minmax(0,1fr);grid-template-areas:"img itemname itemname rarity" "img properties controls controls";grid-gap:5px 0;gap:5px 0;border-bottom:4px solid transparent}.itemWrapperActive{background-color:rgba(255,192,0,.25);border-bottom:4px solid #ffd602}.itemImgWrapper{grid-area:img}.itemImgWrapper>img{background:radial-gradient(#c4c4c4,grey);width:48px;box-sizing:content-box;border:4px solid grey}.itemNameWrapper{font-size:16px;background-color:rgba(0,0,0,.33);grid-area:itemname;margin:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:3px 3px 0}.r1 .itemRarityWrapper{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAOVBMVEUAAABQvedQvedQvedQvecAAABQvedQvedQvedQvec1fZhQvedQvedQvedQvec0e5ZAlrdQvef///+jkh9rAAAAD3RSTlMADDM/QFlmZ4CYmr/LzPPOx8IIAAAAYElEQVQYV1XN2w6AIAwD0AGiXNRR/v9jDWML0qf1pMmIZsKhh6XWvQdgn1Rgm4TG3P6Tyr2zThJGBsiRVAySbRSki0zQTmRg3Rt4hWyQZ3cvUGIswOsEzvXtErjXt4foAzgvBxTH5FwDAAAAAElFTkSuQmCC)}.r2 .itemRarityWrapper{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAQlBMVEUAAABQvedQvecAAABQvedQvecAAABQvedQvedQvecZO0gaPUpQvecnW29QvedQvedQvedQvec0e5ZAlrdQvef///8ek38bAAAAEnRSTlMADDM0P0BZZmeAgoOYrL/LzPPlYKp8AAAAaUlEQVQYV1WNQRKAIAzEiiiKIkpZ//9VsVBG9tRkwkBUNy/t0MU48gyMSQT+id257LBduEfmBDwAroLL6cXk74UIX5teCBejojHRl5dl5UmLqYmgIlQ2KfPp3Mk5GRFr/w2biKv/hpvoBfVxCJJGPmEZAAAAAElFTkSuQmCC)}.r3 .itemRarityWrapper{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAQlBMVEUAAABQvedQvecAAABQvedQvecAAABQvedQvedQvecZO0gaPUpQvecnW29QvedQvedQvedQvec0e5ZAlrdQvef///8ek38bAAAAEnRSTlMADDM0P0BZZmeAgoOYrL/LzPPlYKp8AAAAZ0lEQVQY01WNWxKAMAgDqdYqPqrSeP+rqiAdmy+yswCRJQ7UJue2R6BVMvBX+lmeLH0F6dIkLQxADMgzspLybihgc6rBdoIdsB/1Fe+dG90HVger9XAW2VLapJxBwVi/YVKw1284iG71YAiS+eplSAAAAABJRU5ErkJggg==)}.r4 .itemRarityWrapper{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAQlBMVEUAAAB/4GF/4GEAAAB/4GF/4GEAAAB/4GF/4GF/4GEoRh4pSB9/4GE9bC9/4GF/4GF/4GF/4GFTkj9lsk1/4GH////yLQKtAAAAEnRSTlMADDM0P0BZZmeAgoOYrL/LzPPlYKp8AAAAbElEQVQYV1WNWxaFIAwDq3hVfKCGsP+tii3gNV+dOWkrYhl+ZagJ4csD+a0E8r/iFsSI1TUxpgSkNCp4kjCBPHo1r/DWyfAExtlUUVgkArpSuWc53BexVbEZd9dz3e2IV6diat84qzjaN54iN+4KCHvDQndWAAAAAElFTkSuQmCC)}.itemPropertiesWrapper{color:#fff;grid-area:properties;margin:0 10px;align-self:center}.itemPropertiesWrapper>span{white-space:nowrap;margin-right:10px}.itemControlsWrapper{grid-area:controls;justify-self:end;white-space:nowrap}.itemControlsWrapper>span:nth-child(odd){background-color:rgba(113,169,189,.33);cursor:pointer;min-width:26px}.itemControlsWrapper>span:nth-child(odd):hover{background-color:rgba(113,169,189,.33);cursor:pointer;background:linear-gradient(45deg,rgba(76,113,126,.66),rgba(113,169,189,.66));outline:2px solid #1ce3e3}.itemControlsWrapper>span:nth-child(2){background-color:rgba(0,0,0,.33);min-width:26px}.itemControlsWrapper>span{display:inline-block;padding:5px 0;text-align:center;margin:0 0 0 5px}.r1 img,.r2 img,.r3 img{background:radial-gradient(#4096b7,#347b96)!important;border-color:#4096b7!important}.r4 img{background:radial-gradient(#65b24d,#53923f)!important;border-color:#65b24d!important}.itemlist li span{background-repeat:no-repeat;background-position:0}.atk:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAvVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB9fX1+fn6AgICBgYEAAAAAAAAWFhZnZ2dqampra2uGhoaNjY2Tk5OUlJSVlZWWlpaXl5eYmJiZmZmampqcnJyhoaGjo6PGxsbHx8fLy8vOzs7Pz8/Y2Njd3d3e3t7h4eHi4uLk5OTm5ubn5+fo6Ojp6enq6urr6+v7ZHpCAAAAHHRSTlMASlRgYWJjZLGyt9Ld4+jq8PP09fn8/f39/f3+lwazPAAAAOFJREFUGFc9zutWwjAMAOCAQ8StgNIMtQUEcSuXObywAe3y/o9Fm3HMj5zk60lS0D5UDzh6KnSgiRqTskWpaYiYyJk0CpI7YmqC5RjdIUujQW1vNs5Ytgr6asOWvZ5a6QPcKxOenSmsT0H86Xaty4vz7fT/KZe9PbMkSTJ4mrazn/gQxzHgX6k/zkVra13+IqCjL0e24C+4kpynlfU1nV7YyK4QunLPI2NcB9vLLgznla9+ZoPH2bcvqvkQsKJ6d6FSiANddjVVYX29mCztUYijXU7e67AecdSRUgrhU2fk2ytPFy/r/7ajTAAAAABJRU5ErkJggg==);margin-right:5px;vertical-align:middle}.fixa{color:#ff8750!important}.fixa:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEUAAADquWjEMCyeJiOoTjarKSGuMSayOymzRC7NbjvQdj7TgEPYk0vbmU7boVOydEe4JBu8lFS9LB6/NyPFTizFhEnHVzHHikzKkU/MZDfMmlTELizHOTHos2jrumrELy3HOjHFLy3LRDfOTjvQWUDjnV7komHmqmTrumrvMyjzQC73TTP/d0j/hlL/k1v/oWT/vXz/xoP/zYgn/o31AAAAIXRSTlNASUqfn5+fn5+fn5+fn5+goKCgoKCgoKCgoKDk5ubm5+eowTOFAAAAqUlEQVQYVzWM2xKCMAwF1zsqonhHBUVAoFik/P/HmQ7TfTizJ5OEUVJVVYgQiiQj4r7vbxAEcBONKY25wsaYDVyNKfl0F/A7wYdL96E42XvHqWALa1dFpLL6wU+QXNnxsm2hbYdcyiDSGrQeMrIr5y98Bcmz1Ckc3dOjrbnnqsXLyZoFHBrhAIsm463UHPZK7WGu1JtHXdcz2O1gJvpi/EzTdGLvJyL38R9MbxJ3mFkqSgAAAABJRU5ErkJggg==);margin-right:5px;vertical-align:middle}.pot{color:#ff0!important}.mel:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA/0lEQVQ4y6XSvy4EURTH8c+doMALeAZRKSiwCc3sdhq9F/AIW8wDSPZldkYikaBSaDQ6iUaBKNj1rxjFjmSzZnYGp7r3nt/53vM794a8G+dG8YkH7IUkO9cworH1LJaQ5t144y+A71j8DSTCyxTIZhNAB4MKSL8OEqAQpVgo0QzQDkl2Vgn4DySMb/JuvIX+FEgnJNlpod3HephUNYFgFYd4C2W+CkiK+ZL0B+bwit1QNd0ayKg4yY6iyucZeW1jWJK+xeWPIVZ00sIxZiZSV9iJGvzWuCh+xvXY+QrSUHP7AXp4LKZ/gxMsF5L3ug7WcIdWSLKLkGT32C78P2H4BRklVI/6odkPAAAAAElFTkSuQmCC)}.mel:before,.rng:before{margin-right:5px;vertical-align:middle}.rng:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAElBMVEUAAABItP9ItP9ItP9ItP9ItP9/b1a3AAAABXRSTlMAQH+AwKY1KxoAAAA1SURBVBjTvcwxDgAgEAJB5Nz/f9nCmJwUltIxIUgyVo/hEkMIP6VCUO1VE4A54iVu69Gls1/nXgG3e/4/pAAAAABJRU5ErkJggg==)}.tec:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAADFBMVEUAAAD//aT//aT//aTzdLClAAAAA3RSTlMAf4C/aSLHAAAAPUlEQVQY07XNsQ3AMAwDwSd//51dOAlk92Ej6EBBQFTDl+ghz64vqKUHFOiE7DFOkglVLeNNtbvITH8VblmWiwD6qG72WAAAAABJRU5ErkJggg==)}.pot:before,.tec:before{margin-right:5px;vertical-align:middle}.pot:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAACCklEQVQ4T62U3UtUQRjGn1nMRIPSvbAQwWXXQGcw1nMSVyGIkC6TEjFD0GCpbvxnkkoWMohMxMIuQyII/MBmlWQmQXdRkvCD1IIM02UnmOOe3Tmr0sW+V4dn3vmdeZ9nGIICFSkQBy5ILXaqXGhc7sLumDD+w8faYNFyQyN1o5qRBX3tUPBvGk3J6U2E2pe0lhi/jGCk0hxguxKkfswDErcV/BtGo5z6C3YnrjXxxgJtOesBXQRhbz2ghXaFinW3UU4dgHXOQ4yGtZb5pi3FWdjOJZCGcRPEh68pq3VPN8npQ7CuBYiRK6CRoiMtBdb1BWKkATRyRmvxyTLY3Z9MEACVeF2FfXUBrFtCvKKgzQ4kU3ImBXZPQgxTlJCfCN397vqcG7+bmnhZB9rkO/ZmyNk0WM9i7lr+iTKr4kUt6NUTQJ/TYL3Lp4MSQxXYV+Vg95MQQ0FQ2zyU5ADrS0I8D6KE7CLUt5M/Go81KsvedozlPrDoCkSsBtR2JpacgEVXIWIBUDvtmM39sKNznvg/tiqcW80aO+cDe7AG8azaif/hGsRgNWijA9H1uwbk+qQH9KFZoWzFTGm+COyRTgbiaRVoOGXOuhcAuTHjAU00KZSaIPw4ALn1S29ODBQjGD5vgv4EQNpmPaD3R2bktD5+t4X+J99chQ/Uw6otNWDkJs+L/9h7879iwd6jf+o4tBMIsxJsAAAAAElFTkSuQmCC)}.clear{clear:both}.itemlistcontainer{overflow-y:scroll;overflow-x:hidden;margin:10px 5px 0 0;padding:2px}.itemWrapper:hover,.treeList li:hover{background-color:rgba(113,169,189,.33)}.itemWrapper:hover,.itemWrapperActive:hover,.treeList li:hover{outline:2px solid rgba(54,255,255,.66)}.boxmenu{font-size:12pt;margin:0 10px;display:-webkit-flex;display:flex;-webkit-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-justify-content:flex-start;justify-content:flex-start}.boxmenu li{background-color:rgba(115,120,125,.66);color:#fff;display:inline-block;margin:10px 5px 0 0;padding:5px;text-align:center;-webkit-flex-basis:27px;flex-basis:27px;white-space:nowrap;cursor:pointer!important}.boxmenu img{vertical-align:middle}.boxMenuClassIcon{max-height:16px}.pageControlDetails{background-color:rgba(25,30,35,.66)!important;margin:10px 5px 0 auto!important}.pageControlDetails:hover{background:linear-gradient(45deg,rgba(76,113,126,.66),rgba(113,169,189,.66));outline:2px solid #1ce3e3}.selected{background:linear-gradient(135deg,#60461b,#b0a34e);border-bottom:4px solid #ffd602}.unselected:hover{background:linear-gradient(45deg,rgba(76,113,126,.66),rgba(113,169,189,.66));border-bottom:0;padding-bottom:9px;outline:2px solid #1ce3e3}li.selected:hover{background:linear-gradient(135deg,#60461b,#b0a34e);outline:2px solid #1ce3e3}.itemBar{-webkit-justify-content:center;justify-content:center;display:-webkit-flex;display:flex;-webkit-flex-flow:row nowrap;flex-flow:row nowrap;margin:10px 10px 0;padding:0 2px}.itemBarFilter,.itemBarSort{-webkit-flex:1 1 100px;flex:1 1 100px;margin-right:10px}input{background-color:#101317;color:#fff;font-family:ngs,sans-serif;font-size:11pt;height:28px;padding:0 5px;text-shadow:-1px -1px 0 rgba(0,0,0,.66),1px -1px 0 rgba(0,0,0,.66),-1px 1px 0 rgba(0,0,0,.66),1px 1px 0 rgba(0,0,0,.66)}input:hover{outline:2px solid #30cdef}select{background-color:hsla(0,0%,50.2%,.5);color:#fff;font-family:ngs,sans-serif;font-size:11pt;height:28px;padding:5px 10px;text-shadow:-1px -1px 0 rgba(0,0,0,.66),1px -1px 0 rgba(0,0,0,.66),-1px 1px 0 rgba(0,0,0,.66),1px 1px 0 rgba(0,0,0,.66)}input.itemBarForm,select.itemBarForm{width:100%}option{background-color:grey}.boxExit{padding:4px 9px 8px;margin:4px}.boxExit:hover{background-color:#a80000;outline:2px solid red}.boxExit:after{content:" \2573";font-size:9pt}.exit{color:#fff}.customScrollbar::-webkit-scrollbar{width:4px;height:4px}.adminScrollbar::-webkit-scrollbar{width:16px;height:16px}.adminScrollbar::-webkit-scrollbar-track,.customScrollbar::-webkit-scrollbar-track{background:hsla(0,0%,50.2%,.8)}.adminScrollbar::-webkit-scrollbar-thumb,.customScrollbar::-webkit-scrollbar-thumb{background-color:hsla(0,0%,96.1%,.66)}.customScrollbar::-webkit-scrollbar-button{background-color:hsla(0,0%,63.5%,.8);height:4px;width:4px}adminScrollbar::-webkit-scrollbar-button{background-color:hsla(0,0%,63.5%,.8);height:16px;width:16px}.adminScrollbar::-webkit-scrollbar-corner,.customScrollbar::-webkit-scrollbar-corner{background-color:transparent}.containerX,.containerY{margin:10px;min-width:0}.treeListContainer{overflow-y:auto;margin:10px 10px 0}.treeSelectBox{outline:1px solid #36ffff;max-width:220px;position:absolute;left:-210px;top:-10px}.treeList{padding:0 2px 2px}.treeList li{background-color:hsla(0,0%,50.2%,.33);color:#fff;margin:5px 0 0;padding:10px;background-repeat:no-repeat;background-position:100%;background-origin:content-box;line-height:20px}li.treeListMain:after,li.treeListSub:after{margin-left:10px}li.treeListMain:after{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQCAYAAAAiYZ4HAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV9TpSJVETuIOGSoThZERXSTKhbBQmkrtOpgcukXNGlIUlwcBdeCgx+LVQcXZ10dXAVB8APEzc1J0UVK/F9SaBHjwXE/3t173L0DhHqZqWbHOKBqlpGMRcVMdlUMvCKAfgygF7MSM/V4ajENz/F1Dx9f7yI8y/vcn6NHyZkM8InEc0w3LOIN4ulNS+e8TxxiRUkhPiceM+iCxI9cl11+41xwWOCZISOdnCcOEYuFNpbbmBUNlXiKOKyoGuULGZcVzluc1XKVNe/JXxjMaSsprtMcRgxLiCMBETKqKKEMCxFaNVJMJGk/6uEfcvwJcsnkKoGRYwEVqJAcP/gf/O7WzE9OuEnBKND5YtsfI0BgF2jUbPv72LYbJ4D/GbjSWv5KHZj5JL3W0sJHQN82cHHd0uQ94HIHGHzSJUNyJD9NIZ8H3s/om7LAwC3Qveb21tzH6QOQpq6Wb4CDQ2C0QNnrHu/uau/t3zPN/n4AqWdyvY3+FZYAAAAGYktHRAArAJYAvQMcrhkAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQflBxEVNzPl4mzCAAAA7UlEQVQoz32SsZHCMBBF/9+hAy7iqgA6INYVcEOOqIEcQseoDruLA+fM5WS0oCUQkiXZsNFaetqnb5vLzRZ1tUevJGAOwnpP6gVrVL+/gMU89PU+o6E7eV3MMVn3x2BLBnMQ/t1GN8DlxuJq0juftLYhVQN0eR3eNUxw77xKbHK9bchdQ94fgykyXG626WG9F45jDvDKCiU2AHA9h9f5Di4yrGyYnh+q4d55pf7/6idLDgOAuI5pGlnmqGHXMYS2P6rWBKoOnsOuZQjtWjKapjJEGABmcdJrQa1RXM/Dd8nh0c+Xm6bgwlCbsr6oJ6B8mLNdGgfzAAAAAElFTkSuQmCC)}li.treeListSub:after{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAANCAYAAACdKY9CAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV9TpSJVETuIOGSoThZERXSTKhbBQmkrtOpgcukXNGlIUlwcBdeCgx+LVQcXZ10dXAVB8APEzc1J0UVK/F9SaBHjwXE/3t173L0DhHqZqWbHOKBqlpGMRcVMdlUMvCKAfgygF7MSM/V4ajENz/F1Dx9f7yI8y/vcn6NHyZkM8InEc0w3LOIN4ulNS+e8TxxiRUkhPiceM+iCxI9cl11+41xwWOCZISOdnCcOEYuFNpbbmBUNlXiKOKyoGuULGZcVzluc1XKVNe/JXxjMaSsprtMcRgxLiCMBETKqKKEMCxFaNVJMJGk/6uEfcvwJcsnkKoGRYwEVqJAcP/gf/O7WzE9OuEnBKND5YtsfI0BgF2jUbPv72LYbJ4D/GbjSWv5KHZj5JL3W0sJHQN82cHHd0uQ94HIHGHzSJUNyJD9NIZ8H3s/om7LAwC3Qveb21tzH6QOQpq6Wb4CDQ2C0QNnrHu/uau/t3zPN/n4AqWdyvY3+FZYAAAAGYktHRAArAJYAvQMcrhkAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQflBxEVNyRmMekFAAAA2UlEQVQoz22RPRKCMBCF39IzcBVKZ+QAnsAL0KgX8KdG8QBgk5KRoTcX8CapaEUOsBZKcBO2TL637+WFksUKcgjr3YYBoC1v9DuyEzg0knTJYRwhjCMk6ZLdexod1rsth3GEuRlePdrq62Yd2rKizhgP7oyxsBdJ13cCMzpjMIp13dA/E2Sng8g59G/ouiFdNzS8euGWHfdM5ePJAKDyC8GtZCoO2XHPIpLr5G62kabN86LsNMHqXFAg40jAhcU/WGvy3zDCXq3qXBBYplJ5IWv1t12tyIUB4APiRF3lhGKZKgAAAABJRU5ErkJggg==)}.treeList li img{vertical-align:middle;margin-right:5px}.skillTreeBox{margin:0;min-width:181px;min-height:auto;outline:1px solid #36ffff}.skillTreeBox .boxTitleBar,.treeSelectBox .boxTitleBar{background:linear-gradient(45deg,rgba(47,153,193,.66),rgba(46,94,137,.66) 30%,rgba(46,94,137,.66) 70%,#2f99c1)}.skillTreeContainer{overflow-x:auto;overflow-y:scroll;margin:10px 5px 0 10px;padding:2px;max-height:calc(90vh - 150px);min-width:0}.skillTreeGrid{display:grid;grid-template-columns:repeat(6,181px);grid-template-areas:"a1 b1 c1 d1 e1 f1" "a2 b2 c2 d2 e2 f2" "a3 b3 c3 d3 e3 f3" "a4 b4 c4 d4 e4 f4" "a5 b5 c5 d5 e5 f5" "a6 b6 c6 d6 e6 f6"}.skillTreeGrid>div{background-color:hsla(0,0%,50.2%,.33);color:#fff;padding:6px;text-align:center;height:148px;position:relative;margin:0 10px 96px 0}div.skillActive,div.skillMaxed{background-color:rgba(18,103,87,.5)}.skillTreeGrid>div:hover{outline:2px solid rgba(54,255,255,.66);background-color:rgba(113,169,189,.33)}.skillTreeGrid>div.skillActive:hover,.skillTreeGrid>div.skillMaxed:hover{outline:2px solid rgba(54,255,255,.66);background-color:rgba(18,103,87,.5)}div.skillLocked{background-color:rgba(64,64,64,.33)}div.skillLocked em.skillName,div.skillLocked img,div.skillLocked span.skillAllocated{opacity:.33}.skillIcon{margin:0 auto;max-width:48px}.skillAllocated{display:block;line-height:40px}div.skillActive .skillAllocated{color:#ff0}div.skillMaxed .skillAllocated{color:#ff8750}.skillTreeReqUnlock{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAAWCAYAAACYPi8fAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV9TpSJVETuIOGSoThZERXSTKhbBQmkrtOpgcukXNGlIUlwcBdeCgx+LVQcXZ10dXAVB8APEzc1J0UVK/F9SaBHjwXE/3t173L0DhHqZqWbHOKBqlpGMRcVMdlUMvCKAfgygF7MSM/V4ajENz/F1Dx9f7yI8y/vcn6NHyZkM8InEc0w3LOIN4ulNS+e8TxxiRUkhPiceM+iCxI9cl11+41xwWOCZISOdnCcOEYuFNpbbmBUNlXiKOKyoGuULGZcVzluc1XKVNe/JXxjMaSsprtMcRgxLiCMBETKqKKEMCxFaNVJMJGk/6uEfcvwJcsnkKoGRYwEVqJAcP/gf/O7WzE9OuEnBKND5YtsfI0BgF2jUbPv72LYbJ4D/GbjSWv5KHZj5JL3W0sJHQN82cHHd0uQ94HIHGHzSJUNyJD9NIZ8H3s/om7LAwC3Qveb21tzH6QOQpq6Wb4CDQ2C0QNnrHu/uau/t3zPN/n4AqWdyvY3+FZYAAAAGYktHRAAJAMIAnJ/BRE8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQflBxIMMxgscGeXAAAA9UlEQVRYw+2YPQrCQBCFv92kEREsrYMn8DjW8QqxsLaIVzB1DuIBPEFIJ1j4i4pNsmshir+gYGEymXJhBx7vzZu3q/QksggsF6Dtj0SBTsYBGqElFrj7iyaqUQPXuTuz630xgSfjANT7i4++oL3WPfDZEjNfy5B6HA+J42E5pP7IbBIFz1Jv1nE6Hjk5AE7HI1tsZZqbzUy5zO3Tna9cjZXIeCFn/NbRX830lf3eCCygX9i/sTJnvBTJzfghxg+ryFpF1svqWu3JpykO59iaT1Ps5lB84Drqf9Ss2x0Um/F27/v3uUnnAqW+O1bmVgH/81JSPxtPhr5FE3BSPJQAAAAASUVORK5CYII=)}.skillTreeReqLock,.skillTreeReqUnlock{position:absolute;height:22px;width:175px;background-repeat:no-repeat;background-position:50%;top:-34px;left:-2px;display:block;opacity:.8}.skillTreeReqLock{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAAWCAYAAACYPi8fAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV9TpSJVETuIOGSoThZERXSTKhbBQmkrtOpgcukXNGlIUlwcBdeCgx+LVQcXZ10dXAVB8APEzc1J0UVK/F9SaBHjwXE/3t173L0DhHqZqWbHOKBqlpGMRcVMdlUMvCKAfgygF7MSM/V4ajENz/F1Dx9f7yI8y/vcn6NHyZkM8InEc0w3LOIN4ulNS+e8TxxiRUkhPiceM+iCxI9cl11+41xwWOCZISOdnCcOEYuFNpbbmBUNlXiKOKyoGuULGZcVzluc1XKVNe/JXxjMaSsprtMcRgxLiCMBETKqKKEMCxFaNVJMJGk/6uEfcvwJcsnkKoGRYwEVqJAcP/gf/O7WzE9OuEnBKND5YtsfI0BgF2jUbPv72LYbJ4D/GbjSWv5KHZj5JL3W0sJHQN82cHHd0uQ94HIHGHzSJUNyJD9NIZ8H3s/om7LAwC3Qveb21tzH6QOQpq6Wb4CDQ2C0QNnrHu/uau/t3zPN/n4AqWdyvY3+FZYAAAAGYktHRAAJAMIAnJ/BRE8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQflBxIMMwbWf1r0AAAAkklEQVRYw+2WsQ0DIAwEnygreAY8gqeh8GSMwwh4BnaAVJFSBClKB/b1IJ1e/3IqpSw45AkArTVX0iKCB5wS4i47/o3eO1JK24c550j8japCVc9OfJesmUXHQzzED1/1z0XfddrMwMxYa0Xi14kTEYgoOn715fYPc867xMcYP31Waz1bnJlj3EI8xC9adRFxJ/4CqhQh8FwrWTEAAAAASUVORK5CYII=)}.skillName{background-color:rgba(32,32,32,.33);display:block;padding:10px;height:48px;text-align:left}.skillButtons{position:absolute;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:171px;height:148px;left:0;top:0;cursor:pointer!important}.skillButtons>span:hover{background-image:url(/static/media/skilltree_div_overlay.6d142e79.png);background-repeat:no-repeat}.skillLeftButton{background-position:0}.skillRightButton{background-position:100%}.skillPoints{background-color:rgba(64,64,64,.5);margin:10px 10px 0;padding:16px 0 10px;color:#fff;font-size:14pt;display:grid;grid-template-columns:repeat(auto-fill,292px);-webkit-justify-content:center;justify-content:center;grid-gap:10px;gap:10px}.skillPoints,.skillPoints div:first-child{text-align:center}.skillPoints div span{display:inline-block;width:146px;text-align:center}.skillConfirm{-webkit-justify-content:center;justify-content:center;display:-webkit-flex;display:flex;-webkit-flex-flow:row wrap;flex-flow:row wrap}.skillConfirm span{-webkit-flex:1 1 auto;flex:1 1 auto;background-color:rgba(113,169,189,.33);display:inline-block;text-align:center;line-height:48px;color:#fff;font-size:13pt;margin:10px 6px 0;max-width:292px}.editBox:hover,.editClass:hover{background:linear-gradient(45deg,rgba(76,113,126,.66),rgba(113,169,189,.66));cursor:pointer;outline:2px solid #30cdef}.editBoxActive:hover{cursor:pointer}input#editBoxInput{position:absolute;left:0;text-align:right;background-color:#101317;color:#fff;cursor:pointer;font-family:ngs,sans-serif;font-size:16px;outline:2px solid #ff0;padding:0 5px;text-shadow:-1px -1px 0 rgba(0,0,0,.66),1px -1px 0 rgba(0,0,0,.66),-1px 1px 0 rgba(0,0,0,.66),1px 1px 0 rgba(0,0,0,.66);width:100%}.editClass{display:inline-block;width:100%}.popup{display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}.popup2{z-index:5;position:absolute;background-color:hsla(0,0%,50.2%,.9);max-width:250px;min-width:100px;padding:20px;box-shadow:0 10px 16px 0 rgba(0,0,0,.5),0 6px 20px 0 rgba(0,0,0,.5)!important}.popup button{margin:5px;width:48px;font-size:12px;overflow:wrap;background-color:rgba(64,64,96,.9);color:#d2d2d2}button{cursor:pointer;padding:0 3px;border:1px solid #000;background-color:hsla(0,0%,50.2%,.5);color:#fff;font-family:ngs,sans-serif;font-size:16px;font-weight:400;text-align:center;text-shadow:-1px 1px 0 #000,1px 1px 0 #000,1px -1px 0 #000,-1px -1px 0 #000}.table-responsive{color:#dcdcdc}.table-responsive table{background-color:rgba(20,29,40,.66)}.table{border:1px solid #000;border-spacing:1px}.table-padding{padding:4px}.ReactModal__Body--open,.ReactModal__Html--open{overflow:hidden}.modalOverlay{grid-template-rows:10px minmax(10px,1fr) 10px}.modalOverlay,.modalOverlaySplash{position:fixed;top:0;left:0;right:0;bottom:0;background:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.8));display:grid;justify-items:stretch;-webkit-align-items:center;align-items:center;grid-template-columns:minmax(10px,1fr) minmax(200px,auto) minmax(10px,1fr);min-height:100vh;min-height:-webkit-fill-available}.modalOverlaySplash{grid-template-rows:10px minmax(10px,1fr) minmax(10px,auto)}.modalOverlaySplash>footer{grid-column:1/span 3;grid-row:3;padding-bottom:4vh;background:linear-gradient(transparent,rgba(0,0,0,.7))}.modalOverlaySplash>footer a:hover{background-color:transparent}span.github,span.twitter{font-size:24px;margin-right:15px;opacity:.75}span.github:hover,span.twitter:hover{opacity:1}span.github:before,span.twitter:before{vertical-align:middle;margin-right:10px}span.github:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NDkxMSwgMjAxMy8xMC8yOS0xMTo0NzoxNiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RERCMUIwOUY4NkNFMTFFM0FBNTJFRTMzNTJEMUJDNDYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RERCMUIwOUU4NkNFMTFFM0FBNTJFRTMzNTJEMUJDNDYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkU1MTc4QTJBOTlBMDExRTI5QTE1QkMxMDQ2QTg5MDREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkU1MTc4QTJCOTlBMDExRTI5QTE1QkMxMDQ2QTg5MDREIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+jUqS1wAAApVJREFUeNq0l89rE1EQx3e3gVJoSPzZeNEWPKgHoa0HBak0iHiy/4C3WvDmoZ56qJ7txVsPQu8qlqqHIhRKJZceesmhioQEfxTEtsoSpdJg1u/ABJ7Pmc1m8zLwgWTmzcw3L+/te+tHUeQltONgCkyCi2AEDHLsJ6iBMlgHL8FeoqokoA2j4CloRMmtwTmj7erHBXPgCWhG6a3JNXKdCiDl1cidVbXZkJoXQRi5t5BrxwoY71FzU8S4JuAIqFkJ2+BFSlEh525b/hr3+k/AklDkNsf6wTT4yv46KIMNpsy+iMdMc47HNWxbsgVcUn7FmLAzzoFAWDsBx+wVP6bUpp5ewI+DOeUx0Wd9D8F70BTGNjkWtqnhmT1JQAHcUgZd8Lo3rQb1LAT8eJVUfgGvHQigGp+V2Z0iAUUl8QH47kAA1XioxIo+bRN8OG8F/oBjwv+Z1nJgX5jpdzQDw0LCjsPmrcW7I/iHScCAEDj03FtD8A0EyuChHgg4KTlJQF3wZ7WELppnBX+dBFSVpJsOBWi1qiRgSwnOgoyD5hmuJdkWCVhTgnTvW3AgYIFrSbZGh0UW/Io5Vp+DQoK7o80pztWMemZbgxeNwCNwDbw1fIfgGZjhU6xPaJgBV8BdsMw5cbZoHsenwYFxkZzl83xTSKTiviCAfCsJLysH3POfC8m8NegyGAGfLP/VmGmfSChgXroR0RSWjEFv2J/nG84cuKFMf4sTCZqXuJd4KaXFVjEG3+tw4eXbNK/YC9oXXs3O8NY8y99L4BXY5cvLY/Bb2VZ58EOJVcB18DHJq9lRsKr8inyKGVjlmh29mtHs3AHfuhCwy1vXT/Nu2GKQt+UHsGdctyX6eQyNvc+5sfX9Dl7Pe2J/BRgAl2CpwmrsHR0AAAAASUVORK5CYII=)}span.twitter:before{content:url(data:image/png;base64,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)}.modal{grid-column:2;grid-row:2}.boxModal{max-width:580px}.boxModal,.boxModalClassSelect{-webkit-animation:fadeIn .15s;animation:fadeIn .15s;margin:0 auto;box-shadow:0 10px 16px 0 rgba(0,0,0,.5),0 6px 20px 0 rgba(0,0,0,.5)!important;outline:1px solid #36ffff}.boxModalClassSelect{width:300px}@-webkit-keyframes fadeIn{0%{opacity:0;margin-bottom:30px}to{opacity:1;margin-bottom:0}}@keyframes fadeIn{0%{opacity:0;margin-bottom:30px}to{opacity:1;margin-bottom:0}}.boxAdmin{-webkit-animation:fadeIn .15s;animation:fadeIn .15s;box-shadow:0 10px 16px 0 rgba(0,0,0,.5),0 6px 20px 0 rgba(0,0,0,.5)!important;outline:1px solid #36ffff;text-align:center}.boxAdmin img{margin:20px;background:linear-gradient(#fff,#bca9f5)}.boxAdmin input{font-size:36px;height:72px;width:33vw;background-color:transparent}.boxAdmin input:hover{outline:0!important}.boxMisc{-webkit-animation:fadeIn .15s;animation:fadeIn .15s;max-width:450px;margin:0 auto;box-shadow:0 10px 16px 0 rgba(0,0,0,.5),0 6px 20px 0 rgba(0,0,0,.5)!important;outline:1px solid #36ffff;text-align:center}.boxMisc h2{font-size:17px;font-weight:400;border-bottom:1px solid hsla(0,0%,50.2%,.5);margin:10px 10px 0;padding:10px 5px;text-align:left}.boxMisc h2:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAADvSURBVDhPY/zf5vefQVKEgYGVlYEk8Ps3A8PzNwyM/+cn/Wd48ZaBsXIjQ4O9CkM9EBMFONkZGCSEGZjANn//CRZrOHiHoRGIiQIgPUC9TFAuHJBkCBBgGAACIENAgLFpB0HD4Aag+x1kyP86D4IughuAHoC+amJgFxAyBMULyIaYzD7GcCbViqAhmIFIwBB0gD0QsRgCCxN0wPh/Sfp/hlsPoVxUgM3ZKIaoyWN3AQyAXAICyJpA3kEGeA0AAZBmdE0HHryDsogwAARAhiC7ovEQwltM4FwFyhhEAFjAgl0A0gPUS352/gW0+MUbBgCI3HpQtnXeGgAAAABJRU5ErkJggg==);margin-right:5px;vertical-align:middle}.boxMisc img{background:linear-gradient(#fff,#bca9f5);vertical-align:top;margin:0 10px}.boxMisc p>img{float:right}.boxMisc p{margin-top:0;text-align:justify}.boxAdmin .boxTitleBar,.boxMisc .boxTitleBar,.boxModal .boxTitleBar,.boxModalClassSelect .boxTitleBar{background:linear-gradient(45deg,rgba(47,153,193,.66),rgba(46,94,137,.66) 30%,rgba(46,94,137,.66) 70%,#2f99c1)}.modalItemListContainer{overflow-y:auto;overflow-x:hidden;margin:10px 5px 0 0;padding:2px;max-height:calc(90vh - 115px)}.webicon{color:maroon}.webicon:hover{color:#c80000}.basichover:hover,.webicon:hover{cursor:pointer!important}.modalCloseButton{float:right;color:#151f25}.modalCloseButton:hover{color:#c80000;cursor:pointer!important}.failedInput{border:1px solid #c80000}.submitting{border:1px solid #0096c8;background:linear-gradient(-90deg,#124425,#000,#124425);background-size:10% 400%;-webkit-animation:submitgradient 1.5s ease infinite;animation:submitgradient 1.5s ease infinite}@-webkit-keyframes submitgradient{0%{background-position:0 100%}to{background-position:100% 0}}@keyframes submitgradient{0%{background-position:0 100%}to{background-position:100% 0}}.submitbutton{width:32px;height:32px}.submitbutton:hover{color:#00c800;cursor:pointer!important}.adminMain{position:fixed;top:0;left:0;right:0;bottom:0;display:grid;justify-items:stretch;-webkit-align-items:stretch;align-items:stretch;grid-template-columns:250px 1fr;grid-template-rows:minmax(10px,1fr) 1fr minmax(10px,1fr);grid-template-areas:"header header" "sidebar content" "footer footer";grid-gap:10px;gap:10px;overflow:hidden;margin:0 10px}.boxAdminNav{grid-area:sidebar;font-size:12pt;line-height:1.5em}.boxAdminContent{grid-area:content}.adminNavContainer{overflow-y:scroll;margin:0 5px 0 10px;padding:2px;height:0;height:80vh}.adminContainer{overflow-x:auto;overflow-y:scroll;margin:10px 5px 0 10px;padding:2px;width:84vw;height:85vh}p.adminNav hr{border-bottom:1px solid silver;margin:10px 0}.buttonLabel{cursor:pointer;padding:5px 10px;background-color:hsla(0,0%,50.2%,.5);color:#fff;font-family:ngs,sans-serif;font-size:16px;font-weight:400;text-align:center;text-shadow:-1px 1px 0 #000,1px 1px 0 #000,1px -1px 0 #000,-1px -1px 0 #000}.react-toggle{touch-action:pan-x;display:inline-block;position:relative;cursor:pointer!important;background-color:transparent;border:0;padding:0;-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}.react-toggle-screenreader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed;opacity:.5;transition:opacity .25s}.react-toggle-track{width:50px;height:24px;padding:0;border-radius:30px;background-color:#4d4d4d;transition:all .2s ease}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#000}.react-toggle--checked .react-toggle-track{background-color:#19ab27}.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#128d15}.react-toggle-track-check{position:absolute;width:14px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;left:8px;opacity:0;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-check,.react-toggle-track-x{opacity:1;transition:opacity .25s ease}.react-toggle-track-x{position:absolute;width:10px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;right:10px}.react-toggle--checked .react-toggle-track-x{opacity:0}.react-toggle-thumb{transition:all .5s cubic-bezier(.23,1,.32,1) 0ms;position:absolute;top:1px;left:1px;width:22px;height:22px;border:1px solid #4d4d4d;border-radius:50%;background-color:#fafafa;box-sizing:border-box;transition:all .25s ease}.react-toggle--checked .react-toggle-thumb{left:27px;border-color:#19ab27}.react-toggle--focus .react-toggle-thumb{box-shadow:0 0 2px 3px #0099e0}.react-toggle:active:not(.react-toggle--disabled) .react-toggle-thumb{box-shadow:0 0 5px 5px #0099e0}.testmode.react-toggle--checked .react-toggle-track,.testmode.react-toggle--checked .react-toggle-track:hover{background-color:#0ad}.addAug{height:37px}.databaseIcon{width:48px;height:48px;padding-right:8px;position:relative;top:16px}.equipWindow{display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;min-height:440px}.itemDetailsGridTop{display:grid;grid-template-areas:"icon properties";grid-template-columns:128px minmax(0,1fr);margin:10px}.itemDetailsGridBottom{display:grid;grid-template-areas:"ability fixa" "augment augment";grid-template-columns:repeat(2,minmax(0,1fr));margin:10px;-webkit-flex:1 1;flex:1 1}.itemDetailsIcon{grid-area:icon;align-self:flex-start}.editOverlayWrapper{position:relative}.editOverlayWrapper:hover{cursor:pointer;outline:2px solid #30cdef}.editOverlay{display:none;position:absolute;height:100%;width:100%;-webkit-justify-content:center;justify-content:center;-webkit-align-content:center;align-content:center;-webkit-flex-direction:column;flex-direction:column;text-align:center;background:linear-gradient(45deg,rgba(76,113,126,.66),rgba(113,169,189,.66))}.editOverlay>p{margin:0;padding:0}.editOverlayWrapper:hover .editOverlay{display:-webkit-flex;display:flex}.itemDetailsProperties{margin:0 0 0 10px;grid-area:properties}.itemDetailsPropertiesWrapper{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"rarity stars" "attack attackDisplay" "element elementDisplay" "conditions conditionsDisplay";text-align:left;grid-gap:5px 0;gap:5px 0}.itemDetailsPropertiesWrapper>div{border-bottom:1px solid hsla(0,0%,50.2%,.5);padding-bottom:-1px}.itemDetailsPropertiesWrapper>div:nth-child(odd){color:#97e2fc}.itemDetailsPropertiesWrapper>div:nth-child(2n){padding-left:0}.itemDetailsAugment{margin:15px 0 0;grid-area:augment}.itemDetailsAugmentWrapper{margin:10px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));grid-gap:10px 30px;gap:10px 30px;-webkit-flex:1 1;flex:1 1}.itemDetailsAugmentWrapper>div{background-color:rgba(0,0,0,.33);padding:2px 10px;border-radius:0 10px 0 0;height:20px;white-space:nowrap;text-overflow:ellipsis}.itemDetailsAugmentWrapper>div span:before{content:"\00B7";margin-right:10px;font-weight:900}.itemPotential{grid-area:ability;text-align:left}.itemFixa{grid-area:fixa;text-align:left}.itemDetailsIcon img{background:radial-gradient(#c4c4c4,grey);width:124px;box-sizing:content-box;border:2px solid grey}.formField{font-weight:700}.formDescription{font-style:italic}.formError{color:red;font-weight:700}.toDoList{padding:0 10px}dt{margin:10px 0 0}dd,dl{padding:10px 0 0 15px}dd:before{content:"\2610";padding-right:10px}.half:before{content:"\25E7"!important}.check{opacity:.25}.check:hover{opacity:1}.check:before{font-family:"Segoe UI Symbol";content:"\2B1B"!important}.trashButton{color:#643232;width:24px;height:24px}.trashButton:hover{color:#c83232;border:2px solid red}
+/*# sourceMappingURL=main.ad03a1ba.chunk.css.map */
\ No newline at end of file
diff --git a/static/css/main.ad03a1ba.chunk.css.map b/static/css/main.ad03a1ba.chunk.css.map
new file mode 100644
index 0000000..00d83fd
--- /dev/null
+++ b/static/css/main.ad03a1ba.chunk.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack://src/index.css","webpack://src/reset.css","webpack://src/style.css"],"names":[],"mappings":"AAAA,KACE,QAAS,CACT,mJAEY,CACZ,kCAAmC,CACnC,iCACF,CAEA,KACE,yEAEF,CCZA,wjBAoBC,QAAS,CACT,SAAU,CACV,QAAS,CACT,cAAe,CACf,YAAa,CACb,uBACD,CAEA,8EAEC,aACD,CACA,KACC,aACD,CACA,MACC,eACD,CACA,aACC,WACD,CACA,oDAEC,UAAW,CACX,YACD,CACA,MACC,wBAED,CCjDA,EACC,QAAS,CACT,QAAS,CACT,SAAU,CACV,qBAAsB,CACtB,SACD,CACA,UACC,0BAA2B,CACzB,wBAAyB,CACxB,oBAAqB,CACpB,gBAEH,CACF,WACE,iBAAkB,CAClB,qDACF,CACA,WACE,kBAAmB,CACnB,qDACF,CACA,WACE,kBAAmB,CACnB,qDACF,CACA,WACE,kBAAmB,CACnB,qDACF,CACA,WACC,6BAA8B,CAC9B,+DACC,CAKF,6BAHC,UAAY,CACZ,oBAMD,CAJA,iBAGC,sCACD,CACA,GACC,2CACD,CACA,IACC,qBACD,CACA,KACC,iCACD,CACA,KACI,2FAA8F,CACjG,wBAAyB,CACtB,2BAA4B,CAC5B,uBAA2B,CAC9B,2BAA4B,CAC5B,qBAAsB,CACtB,UAAY,CACT,gCAAiC,CACpC,cAAe,CACf,eAAmB,CACnB,iBAAkB,CAClB,uHAA+H,CAC/H,gBAAiB,CAEjB,iCACD,CACA,MACI,gBAAiB,CACpB,UACD,CACA,SACC,kBACD,CACA,GACC,oBAAqB,CACrB,uBAAuB,CAAvB,sBACD,CACA,GACC,iBACD,CACA,SACC,UAAW,CACX,oBACD,CACA,eACC,4EAAgF,CAChF,oBACD,CACA,aACC,YAAa,CACb,0DAA2D,CAC3D,8BAAuB,CAAvB,sBAAuB,CACvB,aAAS,CAAT,QACD,CACA,MACC,aACD,CACA,OACC,+BAAiC,CACjC,kCAA2B,CAA3B,0BAA2B,CAC3B,eAAgB,CAChB,QAAS,CACT,cAAe,CACf,gBAAiB,CACjB,WACD,CACA,eACC,kBAAqB,CACrB,YAAa,CACb,iEAAqE,CACrE,2BAAoB,CAApB,mBACD,CACA,SACC,aAAc,CACd,WACD,CACA,MACC,kBAAmB,CACnB,iBAAkB,CAClB,cAAc,CACd,kBAAmB,CACnB,kBACD,CACA,WACC,cAAc,CACd,wBACD,CACA,iBACC,cACD,CACA,UACC,WACD,CACA,QACC,qBACD,CACA,YACC,eAAgB,CAChB,kBACD,CACA,cACC,cACD,CACA,eACC,oBAAqB,CACrB,gCAAoC,CAEpC,mCAAsB,CAAtB,kBAAsB,CACtB,cAAe,CACf,kBACD,CACA,0BACC,sBACD,CACA,UACC,gBAAiB,CACjB,gBACD,CACA,YACC,cACD,CACA,cACC,WAAY,CACZ,iBAAkB,CAClB,6BAAsB,CAAtB,qBACD,CACA,8BACC,oBAAqB,CACrB,cAAe,CACf,eAAgB,CAChB,kBACD,CACA,SACC,YAAa,CACb,gBACD,CACA,oCACC,QACC,cACD,CACA,MACC,cACD,CACA,WACC,cACD,CACA,iBACC,UACD,CACA,yBACC,YACA,CACD,SACC,cAAgB,CAAhB,eACD,CACD,CACA,KACC,UAAW,CACX,2BAA4B,CAC5B,mCAAwC,CACxC,eAAkB,CAClB,eAAgB,CAChB,mBAAmB,CACnB,kCAA2B,CAA3B,0BACD,CACA,QACC,aAED,CACA,WACC,cAAe,CACf,eAAmB,CACnB,aAAc,CACd,UAAW,CACX,2CACD,CACA,QACC,4CACD,CACA,QACC,aACD,CACA,oBACC,aACD,CACA,WACC,YAAa,CACb,gEAAkE,CAClE,yHAI+B,CAC/B,kBAAmB,CACnB,aACD,CACA,WACC,gCAAiC,CACjC,iBAAkB,CAClB,iBAAkB,CAClB,YAAa,CACb,gFAAkF,CAClF,2OASD,CACA,8BACC,2CAA8C,CAC9C,gBAAiB,CACjB,iBAAkB,CAClB,mBACD,CACA,8DACC,aACD,CACA,+CACC,gBACD,CACA,UACC,qBAAsB,CACtB,iDAAoD,CAGpD,SACD,CACA,sBAJC,aAAc,CACd,UAOD,CAJA,YACC,qBAGD,CACA,aACC,sCAA2C,CAI3C,eAAgB,CAChB,oBAAa,CAAb,YAAa,CACb,4BAAqB,CAArB,oBAAqB,CACrB,qCAA8B,CAA9B,6BAED,CACA,6BATC,UAAY,CACZ,eAAmB,CACnB,cAaD,CANA,gBAIC,iBAAkB,CAClB,qBACD,CACA,uBACC,6BAA8B,CAC9B,gBAAiB,CACjB,iBACD,CACA,kBACC,YAAY,CACZ,kDAAmD,CACnD,kBAAmB,CACnB,aAAS,CAAT,QACD,CACA,WACC,eAAgB,CAChB,iBAAiB,CACjB,kBAAmB,CACnB,sBAAuB,CACvB,eACD,CACA,iBACC,4EAAgF,CAChF,yBACD,CACA,cACC,UAAY,CACZ,eAAmB,CACnB,cAAe,CACf,eACD,CACA,wBACC,4EAAgF,CAChF,yBACD,CACA,cACC,eAAgB,CAChB,cAAe,CACf,gBACD,CACA,WACC,aAAc,CACd,SACD,CACA,sBACC,kBACD,CACA,cACC,YACD,CACA,oBACC,4EACD,CACA,iBACC,UACD,CACA,oBACC,UAAW,CACX,iBACD,CACA,0BACC,sBACD,CACA,OACC,mBAED,CAEA,cACC,kBAAwB,CACxB,oBAAa,CAAb,YAAa,CACb,8BAAuB,CAAvB,sBAAuB,CACvB,0BAAmB,CAAnB,kBAAmB,CACnB,kBAED,CACA,yBACC,oCAAwC,CACxC,wBAAyB,CACzB,YACD,CACA,8BACC,iBAAkB,CAClB,aAAqB,CACrB,cAAe,CACZ,iCACJ,CACA,6BACC,WAAY,CACZ,UAAW,CACX,kBAAmB,CACnB,wCAA8D,CAC9D,iBACD,CACA,kBACC,iBAAkB,CAClB,gBAAS,CAAT,QACD,CACA,8BACC,kBACD,CACA,4BACC,sCACD,CACA,iBACC,aAAc,CACd,cAAe,CACf,eAAmB,CACnB,kBACD,CACA,cACC,oBAAa,CAAb,YAAa,CACb,8BAAuB,CAAvB,sBAAuB,CACvB,0BAAmB,CAAnB,kBAAmB,CAGnB,oBAAqB,CACrB,eAHD,CAKA,cACC,YAAY,CACZ,4DAA6D,CAC7D,+MAOD,CACA,kCACC,aACD,CACA,kBACC,2CACD,CACA,gBACC,YAAa,CACb,kDAAoD,CACpD,qCAAuC,CACvC,aAAS,CAAT,QAAS,CACT,gBAAO,CAAP,QAAO,CACP,qDAEe,CACf,qBAAsB,CACtB,mBAAoB,CACpB,qBACD,CACA,mBACC,QACD,CACA,0BACC,iBACD,CACA,2BACC,iBACD,CACA,oBACC,iBAAkB,CAClB,iBAAkB,CAClB,gBACD,CACA,uBACC,qCAAwC,CACxC,UAAY,CACZ,sBAAuB,CACvB,YACD,CACA,6BACC,4EAAgF,CAChF,yBACD,CACA,qBACC,eAAgB,CAChB,iBACD,CACA,mCACC,aACD,CACA,WACC,qBAAc,CAAd,aACD,CACA,cACC,oCAAwC,CACxC,UAAY,CACZ,mBAAoB,CACpB,qBAA2B,CAC3B,wBACD,CACA,oBACC,4EAAgF,CAChF,yBACD,CACA,iBACC,iBAAkB,CAClB,cACD,CACA,SACC,WACD,CACA,cAGC,iBAAkB,CAClB,WAAY,CACZ,kCAAoC,CAGpC,WAAY,CAEZ,iBAAkB,CAClB,kBAAmB,CACnB,QACD,CACA,wBAbC,UAAY,CACZ,cAAc,CAId,eAeD,CAPA,UACC,iBAAkB,CAClB,cAAe,CACf,qBAID,CAEA,qBACC,eACD,CACA,oBACC,kBACD,CACA,IACC,qBAAc,CAAd,aAAc,CACd,oBAAqB,CACrB,eACD,CACA,OACC,iBAAuB,CACvB,WACD,CACA,YACC,UACD,CACA,YACC,mjBAAkD,CAClD,gBAAiB,CACjB,qBACD,CACA,mBACC,kBAAmB,CACnB,eAAgB,CAChB,sBAAuB,CACvB,kBACD,CACA,cACI,+fAAqD,CACxD,gBAAiB,CACjB,qBACD,CACA,aACI,uuPACJ,CACA,aACI,+5QACJ,CACA,cACI,mtQACJ,CACA,gBACI,u/PACJ,CAKA,mEAHC,gBAAiB,CACjB,qBAMD,CAJA,WACI,mfAGJ,CACA,gCACC,qCAA2C,CAC3C,eAAoB,CACpB,qBAAsB,CACtB,YAAa,CACb,sFAAuF,CACvF,+CAAgD,CAChD,qFAEkC,CAClC,cAAU,CAAV,SAAU,CACV,mCACD,CACA,mBACC,oCAAsC,CACtC,+BACD,CACA,gBACC,aACD,CACA,oBACC,wCAA8D,CAE9D,UAAW,CACX,sBAAuB,CACvB,qBACD,CACA,iBACC,cAAe,CACf,gCAAiC,CACjC,kBAAmB,CACnB,aAAc,CACd,kBAAmB,CACnB,eAAgB,CAChB,sBAAuB,CACvB,iBACD,CACA,uBACC,+WACD,CACA,uBACC,2YACD,CACA,uBACC,2YACD,CACA,uBACC,+YACD,CACA,uBACC,UAAW,CACX,oBAAqB,CACrB,aAAc,CACd,iBACD,CACA,4BACC,kBAAmB,CACnB,iBACD,CACA,qBACC,kBAAmB,CACnB,gBAAiB,CACjB,kBACD,CACA,yCACC,sCAAwC,CACxC,cAAe,CACf,cACD,CACA,+CACC,sCAAwC,CACxC,cAAe,CACf,4EAAgF,CAChF,yBACD,CACA,uCACC,gCAAiC,CACjC,cACD,CACA,0BACC,oBAAoB,CACpB,aAAc,CACd,iBAAkB,CAClB,gBACD,CAUA,wBACC,qDAAuE,CACvE,8BACD,CACA,QACC,qDAAsE,CACtE,8BACD,CACA,kBACI,2BAA4B,CAC5B,qBACJ,CACA,YACC,+tBAA+C,CAC/C,gBAAiB,CACjB,qBACD,CACA,MACC,uBACD,CACA,aACC,2mBAAkD,CAClD,gBAAiB,CACjB,qBACD,CACA,KACC,oBACD,CACA,YACC,mcAGD,CACA,wBAHC,gBAAiB,CACjB,qBAMD,CAJA,YACC,uPAGD,CACA,YACC,uPAGD,CACA,wBAHC,gBAAiB,CACjB,qBAMD,CAJA,YACC,uyBAGD,CACA,OACC,UACD,CACA,mBACC,iBAAkB,CAClB,iBAAkB,CAClB,mBAAoB,CACpB,WACD,CACA,sCACC,sCAED,CACA,+DAFC,sCAID,CACA,SACC,cAAe,CACf,aAAqB,CACrB,oBAAa,CAAb,YAAa,CACb,4BAAqB,CAArB,oBAAqB,CACrB,kCAA2B,CAA3B,0BACD,CACA,YACC,sCAA0C,CAC1C,UAAY,CACZ,oBAAqB,CACrB,mBAAoB,CACpB,WAAY,CACZ,iBAAkB,CAClB,uBAAgB,CAAhB,eAAgB,CAChB,kBAAmB,CACnB,wBACD,CACA,aACC,qBACD,CACA,kBACC,eACD,CACA,oBACC,6CAAmD,CACnD,gCACD,CACA,0BACC,4EAAgF,CAChF,yBACD,CACA,UACC,kDAAmD,CACnD,+BACD,CACA,kBACC,4EAAgF,CAChF,eAAgB,CAChB,kBAAmB,CACnB,yBACD,CACA,kBACC,kDAAmD,CACnD,yBACD,CACA,SACC,8BAAuB,CAAvB,sBAAuB,CACvB,oBAAa,CAAb,YAAa,CACb,4BAAqB,CAArB,oBAAqB,CACrB,kBAAwB,CACxB,aACD,CACA,4BACC,sBAAe,CAAf,cAAe,CACf,iBACD,CACA,MACC,wBAAyB,CACzB,UAAY,CACZ,0BAA2B,CAC3B,cAAe,CACf,WAAY,CACZ,aAAc,CACd,uHACD,CACA,YACC,yBACD,CACA,OACC,oCAAuC,CACvC,UAAY,CACT,0BAA2B,CAC9B,cAAe,CACf,WAAY,CACZ,gBAAiB,CACjB,uHACD,CACA,qCACC,UACD,CACA,OACC,qBACD,CACA,SACC,mBAAwB,CACxB,UACD,CACA,eACC,wBAAmC,CACnC,qBACD,CACA,eACI,gBAAiB,CACpB,aACD,CACA,MACC,UACD,CAEA,oCACC,SAAU,CACV,UACD,CACA,mCACC,UAAW,CACX,WACD,CAEA,mFACE,8BACF,CAGA,mFACC,qCACD,CACA,2CACC,oCAAuC,CACvC,UAAU,CACV,SACD,CACA,yCACC,oCAAuC,CACvC,WAAW,CACX,UACD,CACA,qFACC,4BACD,CAKA,wBACC,WAAY,CACZ,WACD,CACA,mBACC,eAAgB,CAChB,kBACD,CACA,eAIC,yBAAqC,CACrC,eAAgB,CAChB,iBAAkB,CAClB,WAAY,CACZ,SACD,CACA,UACC,iBACD,CACA,aACC,qCAAwC,CACxC,UAAY,CACZ,cAAiB,CACjB,YAAa,CACV,2BAA4B,CAC5B,wBAAiC,CACpC,6BAA8B,CAC9B,gBACD,CACA,2CACC,gBACD,CACA,sBACC,+gCACD,CACA,qBACC,u/BACD,CACA,iBACC,qBAAsB,CACtB,gBACD,CACA,cACC,QAAS,CACT,eAAgB,CAChB,eAAgB,CAChB,yBACD,CACA,uDACC,8GACD,CACA,oBACC,eAAgB,CAChB,iBAAkB,CAClB,sBAAuB,CACvB,WAAY,CACZ,6BAA8B,CAC9B,WACD,CACA,eACC,YAAa,CACb,qCAAuC,CACvC,2IAOD,CACA,mBACC,qCAAwC,CACxC,UAAY,CACZ,WAAY,CACZ,iBAAkB,CAClB,YAAa,CACb,iBAAkB,CAClB,oBACD,CAIA,+BACC,mCACD,CACA,yBACC,sCAAwC,CACxC,sCACD,CACA,yEACC,sCAAwC,CACxC,mCACD,CACA,gBACC,mCACD,CACA,qFACC,WACD,CACA,WACC,aAAc,CACd,cACD,CACA,gBACC,aAAc,CACd,gBACD,CACA,gCACC,UACD,CACA,+BACC,aACD,CACA,oBAIC,oiCAOD,CACA,sCAXC,iBAAkB,CAClB,WAAY,CACZ,WAAY,CAEZ,2BAA4B,CAC5B,uBAA2B,CAC3B,SAAU,CACV,SAAU,CACV,aAAc,CACd,UAaD,CAXA,kBAIC,g6BAOD,CACA,WACC,mCAAqC,CACrC,aAAc,CACd,YAAa,CACb,WAAY,CACZ,eACD,CACA,cACA,iBAAiB,CACjB,YAAa,CACb,6CAA+C,CAC/C,WAAY,CACZ,YAAa,CACb,MAAO,CACP,KAAM,CACN,wBACA,CACA,yBACC,sEAA0D,CAC1D,2BACD,CACA,iBACC,qBACD,CACA,kBACC,wBACD,CACA,aACC,kCAAoC,CAEpC,kBAAwB,CACxB,mBAAsB,CACtB,UAAY,CACZ,cAAe,CACf,YAAa,CACb,6CAA8C,CAC9C,8BAAuB,CAAvB,sBAAuB,CACvB,aAAS,CAAT,QACD,CACA,0CAVC,iBAYD,CACA,sBACC,oBAAqB,CACrB,WAAsB,CACtB,iBACD,CACA,cACC,8BAAuB,CAAvB,sBAAuB,CACvB,oBAAa,CAAb,YAAa,CACb,0BAAmB,CAAnB,kBACD,CACA,mBACC,qBAAc,CAAd,aAAc,CACd,sCAAwC,CACxC,oBAAqB,CACrB,iBAAkB,CAClB,gBAAiB,CACjB,UAAY,CACZ,cAAe,CACf,iBAAsB,CACtB,eACD,CAGA,gCACC,4EAAgF,CAChF,cAAc,CACd,yBACD,CACA,qBACC,cACD,CACA,mBACC,iBAAkB,CAClB,MAAO,CACP,gBAAiB,CACjB,wBAAyB,CACzB,UAAY,CACZ,cAAc,CACd,0BAA2B,CAC3B,cAAe,CAEf,sBAA0B,CAC1B,aAAc,CACd,uHAA+H,CAC/H,UACD,CACA,WACC,oBAAqB,CACrB,UACD,CAEA,OACC,oBAAa,CAAb,YAAa,CACb,sBAAe,CAAf,cACD,CACA,QACC,SAAS,CACT,iBAAkB,CAClB,oCAAuC,CACvC,eAAgB,CAChB,eAAgB,CAChB,YAAa,CACb,6EACD,CACA,cACC,UAAU,CACV,UAAU,CACV,cAAc,CACd,aAAa,CACb,kCAAmC,CACnC,aACD,CACA,OACC,cAAe,CACf,aAAuB,CACvB,qBAAuB,CACvB,oCAAuC,CACvC,UAAW,CACR,0BAA2B,CAC9B,cAAe,CACf,eAAmB,CACnB,iBAAkB,CAClB,2EACD,CACA,kBACC,aACD,CACA,wBACC,mCACD,CACA,OACC,qBAAuB,CACvB,kBACD,CACA,eACC,WACD,CACA,gDAEE,eACF,CACA,cAWC,6CAID,CACA,kCAfI,cAAe,CACf,KAAM,CACN,MAAO,CACP,OAAQ,CACR,QAAS,CACT,yDAA4D,CAC/D,YAAa,CACb,qBAAsB,CACtB,0BAAmB,CAAnB,kBAAmB,CACnB,0EAA8E,CAE9E,gBAAiB,CAEjB,iCAiBD,CAfA,oBAWC,0DAID,CACA,2BACC,oBAAuB,CACvB,UAAW,CACX,kBAAmB,CAChB,sDACJ,CACA,mCACC,4BACD,CACA,yBACC,cAAe,CACf,iBAAkB,CAClB,WACD,CACA,qCACC,SACD,CACA,uCACC,qBAAsB,CACtB,iBACD,CACA,mBACC,mlEACD,CACA,oBACC,uzFACD,CACA,OACC,aAAc,CACd,UACD,CACA,UAEC,eAID,CACA,+BANC,6BAAuB,CAAvB,qBAAuB,CAEvB,aAAc,CACd,6EAAmF,CACnF,yBAQD,CANA,qBAEC,WAID,CACA,0BACC,GAAI,SAAS,CAAC,kBAAmB,CACjC,GAAM,SAAS,CAAC,eAAgB,CAC/B,CAHF,kBACC,GAAI,SAAS,CAAC,kBAAmB,CACjC,GAAM,SAAS,CAAC,eAAgB,CAC/B,CACA,UACD,6BAAuB,CAAvB,qBAAuB,CACvB,6EAAmF,CACnF,yBAAqC,CACrC,iBACD,CACA,cACC,WAAY,CACX,wCACF,CACA,gBACC,cAAe,CACf,WAAY,CACZ,UAAW,CACX,4BAED,CACA,sBACA,mBACA,CACA,SACC,6BAAuB,CAAvB,qBAAuB,CACvB,eAAgB,CAChB,aAAc,CACd,6EAAmF,CACnF,yBAAqC,CACrC,iBACD,CACA,YACC,cAAe,CACf,eAAmB,CACnB,2CAA8C,CAC9C,kBAAmB,CACnB,gBAAiB,CACjB,eACD,CACA,mBACI,mfAAiD,CACpD,gBAAiB,CACjB,qBACD,CACA,aACC,wCAA0C,CAC1C,kBAAmB,CACnB,aACD,CACA,eACC,WACD,CACA,WACC,YAAa,CACb,kBACD,CACA,sGACC,8GACD,CACA,wBACC,eAAgB,CAChB,iBAAkB,CAClB,mBAAoB,CACpB,WAAY,CACZ,6BACD,CACA,SACC,YACD,CACA,eACC,aAED,CACA,iCAFC,wBAID,CACA,kBACC,WAAW,CACX,aACD,CACA,wBACC,aAAqB,CACrB,wBACD,CACA,aACC,wBACD,CACA,YACC,wBAAmC,CAChC,uDAA8D,CAC9D,wBAAyB,CACzB,mDAA4C,CAA5C,2CACJ,CAEA,kCACI,GACI,0BACJ,CACA,GACI,0BACJ,CACJ,CAPA,0BACI,GACI,0BACJ,CACA,GACI,0BACJ,CACJ,CAEA,cACC,UAAU,CACV,WACD,CACA,oBACC,aAAqB,CACrB,wBACD,CAIA,WACI,cAAe,CACf,KAAM,CACN,MAAO,CACP,OAAQ,CACR,QAAS,CACZ,YAAa,CACb,qBAAsB,CACtB,2BAAoB,CAApB,mBAAoB,CACpB,+BAAgC,CAChC,wDAA2D,CAC3D,qEAGe,CACf,aAAS,CAAT,QAAS,CACT,eAAe,CACf,aACD,CACA,aACC,iBAAkB,CAClB,cAAe,CACf,iBACD,CACA,iBACC,iBACD,CACA,mBACC,iBAAkB,CAClB,mBAAoB,CACpB,WAAY,CACZ,QAAS,CACT,WACD,CACA,gBACC,eAAgB,CAChB,iBAAkB,CAClB,sBAAuB,CACvB,WAAY,CACZ,UAAW,CACX,WACD,CACA,cACC,8BAA+B,CAC/B,aACD,CACA,aACC,cAAe,CACf,gBAAgB,CAEhB,oCAAuC,CACvC,UAAW,CACR,0BAA2B,CAC9B,cAAe,CACf,eAAmB,CACnB,iBAAkB,CAClB,2EACD,CACA,cACC,kBAAmB,CAEnB,oBAAqB,CACrB,iBAAkB,CAClB,wBAAyB,CACzB,4BAA6B,CAC7B,QAAS,CACT,SAAU,CAEV,0BAA2B,CAC3B,wBAAyB,CAGzB,oBAAqB,CACrB,gBAAiB,CAEjB,yCAA0C,CAC1C,uCACC,CAEA,gCACD,QAAS,CACT,kBAAmB,CACnB,UAAW,CACX,WAAY,CACZ,eAAgB,CAChB,SAAU,CACV,iBAAkB,CAClB,SACC,CAEA,wBACD,kBAAmB,CACnB,UAAY,CAEZ,uBACC,CAEA,oBACD,UAAW,CACX,WAAY,CACZ,SAAU,CACV,kBAAmB,CACnB,wBAAyB,CAGzB,uBACC,CAEA,qEACD,qBACC,CAEA,2CACD,wBACC,CAEA,8EACD,wBACC,CAEA,0BACD,iBAAkB,CAClB,UAAW,CACX,WAAY,CACZ,KAAQ,CACR,QAAW,CACX,eAAgB,CAChB,kBAAmB,CACnB,aAAc,CACd,QAAS,CACT,SAAU,CAGV,4BACC,CASA,uEAND,SAAU,CAGV,4BAiBC,CAdA,sBACD,iBAAkB,CAClB,UAAW,CACX,WAAY,CACZ,KAAQ,CACR,QAAW,CACX,eAAgB,CAChB,kBAAmB,CACnB,aAAc,CACd,UAKC,CAEA,6CACD,SACC,CAEA,oBACD,gDAAuD,CACvD,iBAAkB,CAClB,OAAQ,CACR,QAAS,CACT,UAAW,CACX,WAAY,CACZ,wBAAyB,CACzB,iBAAkB,CAClB,wBAAyB,CAIzB,qBAAsB,CAItB,wBACC,CAEA,2CACD,SAAU,CACV,oBACC,CAEA,yCAGD,8BACC,CAEA,sEAGD,8BACC,CAIA,8GACD,qBACC,CACF,QACC,WACD,CACA,cACC,UAAU,CACV,WAAW,CACX,iBAAiB,CACjB,iBAAiB,CACjB,QACD,CACA,aACC,oBAAa,CAAb,YAAa,CACb,6BAAsB,CAAtB,qBAAsB,CACtB,gBACD,CACA,oBACC,YAAa,CACb,qCACiB,CACjB,yCAA0C,CAC1C,WACD,CACA,uBACC,YAAa,CACb,oDAEiB,CACjB,6CAA8C,CAC9C,WAAY,CACZ,gBAAO,CAAP,QACD,CACA,iBACC,cAAe,CACf,qBACD,CACA,oBACC,iBACD,CACA,0BACC,cAAe,CACf,yBACD,CACA,aACC,YAAa,CACb,iBAAkB,CAClB,WAAY,CACZ,UAAW,CACX,8BAAuB,CAAvB,sBAAuB,CACvB,4BAAqB,CAArB,oBAAqB,CACrB,6BAAsB,CAAtB,qBAAsB,CACtB,iBAAkB,CAClB,4EACD,CACA,eACC,QAAS,CACT,SACD,CACA,uCACC,oBAAa,CAAb,YACD,CACA,uBACC,iBAAkB,CAClB,oBACD,CACA,8BACC,YAAa,CACb,iDAAmD,CACnD,iHAI8B,CAC9B,eAAgB,CAChB,cAAU,CAAV,SACD,CACA,kCACC,2CAA8C,CAC9C,mBACD,CACA,iDACC,aACD,CACA,gDACC,cACD,CACA,oBACC,eAAkB,CAClB,iBACD,CACA,2BACC,eAAkB,CAClB,YAAa,CACb,wDAA0D,CAC1D,kBAAc,CAAd,aAAc,CACd,gBAAO,CAAP,QACD,CACA,+BACC,gCAAiC,CACjC,gBAAiB,CACjB,wBAAyB,CACzB,WAAY,CACZ,kBAAmB,CACnB,sBACD,CACA,2CACC,eAAgB,CAChB,iBAAkB,CAClB,eACD,CACA,eACC,iBAAkB,CAClB,eACD,CACA,UACC,cAAe,CACf,eACD,CACA,qBACC,wCAA8D,CAG9D,WAAY,CACZ,sBAAuB,CACvB,qBACD,CACA,WACC,eACD,CACA,iBACC,iBACD,CACA,WACC,SAAS,CACT,eACD,CACA,UACC,cACD,CACA,GACA,eACA,CACA,MACC,qBACD,CACA,UACC,eAAgB,CAChB,kBACD,CACA,aACC,yBACD,CACA,OACC,WACD,CACA,aACC,SACD,CACA,cACC,6BAA8B,CAC9B,yBACD,CACA,aACC,aAAuB,CACvB,UAAU,CACV,WACD,CACA,mBACC,aAAuB,CACvB,oBACD","file":"main.ad03a1ba.chunk.css","sourcesContent":["body {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n","the file to use and tweak as fits you best. If you're more of the copy-and-paste type, or just want an in-page preview of what you'll be getting, here it is.\n\n/* http://meyerweb.com/eric/tools/css/reset/ \n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed, \nfigure, figcaption, footer, header, hgroup, \nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\tfont-size: 100%;\n\tfont: inherit;\n\tvertical-align: baseline;\n}\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure, \nfooter, header, hgroup, menu, nav, section {\n\tdisplay: block;\n}\nbody {\n\tline-height: 1;\n}\nol, ul {\n\tlist-style: none;\n}\nblockquote, q {\n\tquotes: none;\n}\nblockquote:before, blockquote:after,\nq:before, q:after {\n\tcontent: '';\n\tcontent: none;\n}\ntable {\n\tborder-collapse: collapse;\n\tborder-spacing: 0;\n}","* {\r\n\tborder: 0;\r\n\tmargin: 0;\r\n\tpadding: 0;\r\n\tbox-sizing: border-box;\r\n\toutline: 0;\r\n}\r\n.noSelect {\r\n\t-webkit-touch-callout: none; /* iOS Safari */\r\n\t -webkit-user-select: none; /* Safari */\r\n\t\t -ms-user-select: none; /* Internet Explorer/Edge */\r\n\t\t\t user-select: none; /* Non-prefixed version, currently\r\n\t\t\t\t\t\t\t\t\tsupported by Chrome, Edge, Opera and Firefox */\r\n }\r\n@font-face {\r\n font-family: \"ngs\";\r\n src: url(\"./fonts/4.woff\") format(\"woff\");\r\n}\r\n@font-face {\r\n font-family: \"ngs2\";\r\n src: url(\"./fonts/3.woff\") format(\"woff\");\r\n}\r\n@font-face {\r\n font-family: \"ngs3\";\r\n src: url(\"./fonts/2.woff\") format(\"woff\");\r\n}\r\n@font-face {\r\n font-family: \"ngs4\";\r\n src: url(\"./fonts/1.woff\") format(\"woff\");\r\n}\r\n@font-face {\r\n\tfont-family: \"Segoe UI Symbol\";\r\n\tsrc: url(\"./fonts/seguisym.ttf\") format(\"truetype\");\r\n }\r\na, a:visited {\r\n\tcolor: white;\r\n\ttext-decoration: none;\r\n}\r\na:hover, a:active {\r\n\tcolor: white;\r\n\ttext-decoration: none;\r\n\tbackground-color: rgba(113,169,189,0.33);\r\n}\r\nhr {\r\n\tborder-bottom: 1px solid rgba(128,128,128,0.5);\r\n}\r\nimg {\r\n\tvertical-align: middle;\r\n}\r\nhtml {\r\n\tmin-height: -webkit-fill-available;\r\n}\r\nbody {\r\n background-image: url(\"https://pbs.twimg.com/media/E8tfm23VUAQTAAu?format=jpg&name=4096x4096\");\r\n\tbackground-color: #484848;\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n\tbackground-attachment: fixed;\r\n\tbackground-size: cover;\r\n\tcolor: white;\r\n font-family: ngs,Arial,sans-serif;\r\n\tfont-size: 16px;\r\n\tfont-weight: normal;\r\n\ttext-align: center;\r\n\ttext-shadow: -1px -1px 0 rgba(0,0,0,0.66), 1px -1px 0 rgba(0,0,0,0.66), -1px 1px 0 rgba(0,0,0,0.66), 1px 1px 0 rgba(0,0,0,0.66);\r\n\tmin-height: 100vh;\r\n\t/* mobile viewport bug fix */\r\n\tmin-height: -webkit-fill-available;\r\n}\r\ntable {\r\n border-spacing: 0;\r\n\twidth: 100%;\r\n}\r\ntable td {\r\n\tvertical-align: top;\r\n}\r\nul {\r\n\tlist-style-type: none;\r\n\tpadding-inline-start: 0;\r\n}\r\nem {\r\n\tfont-style: normal;\r\n}\r\nheader a {\r\n\tcolor:white;\r\n\ttext-decoration: none;\r\n}\r\nheader a:hover {\r\n\tbackground: linear-gradient(45deg,rgba(76,113,126,0.66),rgba(113,169,189,00.66));\r\n\ttext-decoration: none;\r\n}\r\n.main, header {\r\n\tdisplay: grid;\r\n\tgrid-template-columns: repeat(auto-fit,minmax(300px,450px));\r\n\tjustify-content: center;\r\n\tgap: 10px;\r\n}\r\n.main {\r\n\tmargin: 0 10px;\r\n}\r\nheader {\r\n\tbackground-color: rgba(0,0,0,0.5);\r\n\tbackdrop-filter: blur(10px);\r\n\ttext-align: left;\r\n\tmargin: 0;\r\n\tpadding: 0 10px;\r\n\tline-height: 50px;\r\n\theight: 50px\r\n}\r\n.headerWrapper {\r\n\tgrid-area: 1 / span 3;\r\n\tdisplay: grid;\r\n\tgrid-template-columns: minmax(0, auto) minmax(0, 1fr) minmax(0, auto);\r\n\talign-items: stretch;\r\n}\r\nheader a {\r\n\tdisplay: block;\r\n\theight: 50px\r\n}\r\n.logo {\r\n\tfont-family: \"ngs2\";\r\n\tmargin-right: auto;\r\n\tfont-size:24px;\r\n\twhite-space: nowrap;\r\n\tjustify-self: start;\r\n}\r\n.logo span{\r\n\tfont-size:16px;\r\n\ttext-transform: uppercase;\r\n}\r\n.logo span:after {\r\n\tcontent:\".com\";\r\n}\r\n.logo img {\r\n\theight: 40px;\r\n}\r\n.logo a {\r\n\tpadding: 0 45px 0 15px;\r\n}\r\n.navigation {\r\n\ttext-align: left;\r\n\tjustify-self: start;\r\n}\r\n.navigation a {\r\n\tpadding: 0 15px;\r\n}\r\n.navigation li {\r\n\tdisplay: inline-block;\r\n\tborder-color: rgba(255,255,255,0.13);\r\n\tborder-style: solid;\r\n\tborder-left-width: 1px;\r\n\tfont-size: 17px;\r\n\tfont-family: \"ngs2\";\r\n}\r\n.navigation li:last-child {\r\n\tborder-right-width: 1px;\r\n}\r\n.rightNav {\r\n\ttext-align: right;\r\n\tjustify-self: end;\r\n}\r\n.rightNav a {\r\n\tpadding: 0 15px;\r\n}\r\n.rightNav img {\r\n\theight: 40px;\r\n\tmargin-bottom: 5px;\r\n\tclip-path: circle(44%);\r\n}\r\n.dotMenu,.navigation .miniNav {\r\n\tdisplay: inline-block;\r\n\tfont-size: 24px;\r\n\tfont-weight: 900;\r\n\tletter-spacing: 2px;\r\n}\r\n.miniNav {\r\n\tdisplay: none;\r\n\ttext-align: right;\r\n}\r\n@media screen and (max-width:860px) {\r\n\t.logo a {\r\n\t\tpadding: 0 10px;\r\n\t}\r\n\t.logo {\r\n\t\tfont-size:22px;\r\n\t}\r\n\t.logo span{\r\n\t\tfont-size:14px;\r\n\t}\r\n\t.logo span:after {\r\n\t\tcontent: \"\";\r\n\t}\r\n\t.navigation > ul, .loginNav {\r\n\t\tdisplay: none;\r\n\t\t}\r\n\t.miniNav {\r\n\t\tdisplay: initial;\r\n\t}\r\n}\r\n.box {\r\n\tcolor:white;\r\n\tbackground-clip: padding-box;\r\n\tbackground-color: rgba(24, 36, 48, 0.66);\r\n\tmargin: 10px 0 0 0;\r\n\ttext-align: left;\r\n\tpadding-bottom:10px;\r\n\tbackdrop-filter: blur(10px);\r\n}\r\n.box h3 {\r\n\tcolor: #97e2fc;\r\n\r\n}\r\n.box h3, dt {\r\n\tfont-size: 12pt;\r\n\tfont-weight: normal;\r\n\tpadding: 0 5px;\r\n\tmargin: 5px;\r\n\tborder-bottom: 1px solid rgba(128,128,128,0.5);\r\n}\r\n.box tr {\r\n\tborder-bottom: 1px solid rgba(128,128,128,0.13);\r\n}\r\n.box td {\r\n\tpadding: 0 5px;\r\n}\r\n.box td:first-child {\r\n\tcolor: #97e2fc;\r\n}\r\n.basicInfo {\r\n\tdisplay: grid;\r\n\tgrid-template-columns: minmax(0,0.9fr) minmax(0,1fr) minmax(0,1fr);\r\n\tgrid-template-areas:\r\n\t\"author author player\"\r\n\t\"build build character\"\r\n\t\"class class2 classlv\"\r\n\t\"subclass subclass2 subclasslv\";\r\n\tmargin: 10px 10px 0;\r\n\tpadding: 0 5px;\r\n}\r\n.statsInfo {\r\n\tbackground-color:rgba(0,0,0,0.33);\r\n\tmargin: 5px 10px 0;\r\n\tpadding: 0 5px 5px;\r\n\tdisplay: grid;\r\n\tgrid-template-columns: minmax(0,1fr) minmax(0,auto) minmax(0,0.66fr) minmax(0,1fr);\r\n\tgrid-template-areas:\r\n\t\"bp bp2 bpGraph bpGraph\"\r\n\t\"hp hp2 hpGraph hpGraph\"\r\n\t\"pp pp2 ppGraph ppGraph\"\r\n\t\"atk atk2 atkGraph atkGraph\"\r\n\t\"def def2 defGraph defGraph\"\r\n\t\"wepUp wepUp2 wepUp2 wepUp3\"\r\n\t\"res res2 res2 res3\"\r\n\t\"dmgRes dmgRes2 dmgRes2 dmgRes2\";\r\n}\r\n.basicInfo > div, .statsInfo > div {\r\n\tborder-bottom: 1px solid rgba(128,128,128,0.5);\r\n\tline-height: 25px;\r\n\tposition: relative;\r\n\tpadding-bottom: -1px;\r\n}\r\n.basicInfo > div:nth-child(-n+4), .statsInfo > div:nth-child(-n+8) {\r\n\tcolor: #97e2fc;\r\n}\r\n.statsInfo > div:nth-child(n+9):nth-child(-n+13) {\r\n\ttext-align: right;\r\n}\r\n.barGraph {\r\n\tmargin: 8px 0 8px auto;\r\n\tbackground: linear-gradient(90deg, #65beef, #f5ee3c);\r\n\tdisplay: block;\r\n\theight: 8px;\r\n\twidth: 75%;\r\n}\r\n.barOverlay {\r\n\tborder: 2px solid black;\r\n\tdisplay: block;\r\n\theight: 8px;\r\n}\r\n.boxTitleBar {\r\n\tbackground-color: rgba(124, 144, 148, 0.66);\r\n\tcolor: white;\r\n\tfont-weight: normal;\r\n\tfont-size: 18px;\r\n\ttext-align: left;\r\n\tdisplay: flex;\r\n\tflex-flow: row nowrap;\r\n\tjustify-content: space-between;\r\n\r\n}\r\n.boxTitleBar h1 {\r\n\tcolor: white;\r\n\tfont-weight: normal;\r\n\tfont-size: 18px;\r\n\tmargin-right: 10px;\r\n\tpadding: 13px 13px 7px 13px;\r\n}\r\n.boxTitleBar h1:before {\r\n\tfont-family: \"Segoe UI Symbol\";\r\n\tcontent: \" \\25C6\";\r\n\tmargin-right: 10px;\r\n}\r\n.equipNameWrapper {\r\n\tdisplay:grid;\r\n\tgrid-template-columns: minmax(0,auto) minmax(0,1fr);\r\n\tmargin: 10px 10px 0;\r\n\tgap: 10px;\r\n}\r\n.equipName {\r\n\tmax-width: 250px;\r\n\tpadding-right:2px;\r\n\twhite-space: nowrap;\r\n\ttext-overflow: ellipsis;\r\n\toverflow: hidden;\r\n}\r\n.equipName:hover {\r\n\tbackground: linear-gradient(45deg,rgba(76,113,126,0.66),rgba(113,169,189,00.66));\r\n\toutline: 2px solid hsl(180, 78%, 50%);\r\n}\r\n.equipName h2 {\r\n\tcolor: white;\r\n\tfont-weight: normal;\r\n\tfont-size: 18px;\r\n\ttext-align: left;\r\n}\r\n.equipEnhancement:hover {\r\n\tbackground: linear-gradient(45deg,rgba(76,113,126,0.66),rgba(113,169,189,00.66));\r\n\toutline: 2px solid hsl(180, 78%, 50%);\r\n}\r\n.saveControls {\r\n\tmargin-top: 10px;\r\n\tpadding: 0 10px;\r\n\ttext-align: right;\r\n}\r\n.infoBuffs {\r\n\tmargin: 0 auto;\r\n\twidth: 90%;\r\n}\r\n.infoBuffs:last-child {\r\n\tmargin-bottom: 10px;\r\n}\r\n.infobuffs li {\r\n\tmargin: 5px 0;\r\n}\r\n.infoBuffs li:hover {\r\n\tbackground: linear-gradient(45deg,rgba(76,113,126,0.66),rgba(113,169,189,00.66));\r\n}\r\n.infoBuffs li ul {\r\n\twidth: 100%;\r\n}\r\n.infoBuffs li ul li {\r\n\twidth: 100%;\r\n\tpadding-left: 20px;\r\n}\r\n.infoBuffs li ul li:hover {\r\n\tbackground: transparent;\t\r\n}\r\n.box p {\r\n\tpadding: 10px 10px 0 10px;\r\n\r\n}\r\n\r\n.equipPalette {\r\n\tmargin: 10px 10px 0 10px;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\tflex-flow: row wrap;\r\n\twhite-space: nowrap;\r\n\r\n}\r\n.equipPaletteSlotWrapper {\r\n\tbackground-color: rgba(128,128,128,0.50);\r\n\tcursor:pointer !important;\r\n\tpadding: 10px;\r\n}\r\n.equipPaletteSlotWrapper span {\r\n\tmargin: 0 10px 0 0;\r\n\tcolor: rgb(255,207,4);\r\n\tfont-size: 14pt;\r\n font-family: ngs2,Arial,sans-serif;\r\n}\r\n.equipPaletteSlotWrapper img {\r\n\theight: 48px;\r\n\tborder: 1px;\r\n\tborder-style: solid;\r\n\tbackground: radial-gradient(rgb(196,196,196),rgb(128,128,128));\r\n\tborder-color: rgba(128,128,128,1);\r\n}\r\n.equipPaletteSlot {\r\n\ttext-align: center;\r\n\tflex: 1 1;\r\n}\r\n.equipPaletteSlot:first-child {\r\n\tpadding-right: 10px;\r\n}\r\n.equipPaletteSlot:hover img {\r\n\toutline: 2px solid rgba(54,255,255,0.66);\r\n}\r\n.equipPalette h3 {\r\n\tcolor: #97e2fc;\r\n\tfont-size: 16px;\r\n\tfont-weight: normal;\r\n\twhite-space: nowrap;\r\n}\r\n.equipDetails {\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\tflex-flow: row wrap;\r\n}\r\n.equipDetails {\r\n\tmargin: 10px 10px 0 0;\r\n\ttext-align: left;\r\n}\r\n.statsDetails {\r\n\tdisplay:grid;\r\n\tgrid-template-columns: minmax(0,auto) repeat(3,minmax(0,1fr));\r\n\tgrid-template-areas:\r\n\t\"enhance1 enhance2 enhance2 enhance2\"\r\n\t\"variance1 variance2 variance2 variance2\"\r\n\t\"weaponup mel rng tec\"\r\n\t\"ailment ailment1 ailment2 ailment3\"\r\n\t\"class1 class2 class2 class2\"\r\n\t\"mw1 mw2 mw2 mw2\"\r\n}\r\n.statsDetails > div:nth-child(-n+6){\r\n\tcolor: #97e2fc;\r\n}\r\n.statsDetails > div {\r\n\tborder-bottom: 1px solid rgba(128,128,128,0.5);\r\n}\r\n.augmentDetails {\r\n\tdisplay: grid;\r\n\tgrid-template-columns: minmax(0,1fr) minmax(0,0.8fr);\r\n\tgrid-template-rows: auto minmax(0, 1fr);\r\n\tgap: 10px;\r\n\tflex: 1;\r\n\tgrid-template-areas:\r\n\t\"header1 header2\"\r\n\t\"ability stats\";\r\n\tplace-content: stretch;\r\n\tplace-items: stretch;\r\n\tmargin: 8px 10px 0 8px;\r\n}\r\n.augmentDetails h3 {\r\n\tmargin: 0;\r\n}\r\n.augmentDetailsListHeader {\r\n\tgrid-area: header1;\r\n}\r\n.augmentDetailsStatsHeader {\r\n\tgrid-area: header2;\r\n}\r\n.augmentDetailsList {\r\n\tgrid-area: ability;\r\n\toverflow-y: scroll;\r\n\tmax-height: 280px;\r\n}\r\n.augmentDetailsList li {\r\n\tbackground-color: rgba(128,128,128,0.25);\r\n\tcolor: white;\r\n\tmargin: 2px 5px 5px 2px;\r\n\tpadding: 10px;\r\n}\r\n.augmentDetailsList li:hover {\r\n\tbackground: linear-gradient(45deg,rgba(76,113,126,0.66),rgba(113,169,189,00.66));\r\n\toutline: 2px solid hsl(180, 78%, 50%);\r\n}\r\n.augmentDetailsStats {\r\n\tgrid-area: stats;\r\n\tmargin: 0 0 0 10px;\r\n}\r\n.augmentDetailsStats td:last-child {\r\n\tcolor: #ffb74c;\r\n}\r\n.equipAugs {\r\n\tflex: 1 1 auto;\t\r\n}\r\n.equipAugs li {\r\n\tbackground-color: rgba(128,128,128,0.50);\r\n\tcolor: white;\r\n\tmargin: 0 0 5px 10px;\r\n\tpadding: 12px 10px 7px 10px;\r\n\tcursor:pointer !important;\r\n}\r\n.equipAugs li:hover {\r\n\tbackground: linear-gradient(45deg,rgba(76,113,126,0.66),rgba(113,169,189,00.66));\r\n\toutline: 2px solid hsl(180, 78%, 50%);\r\n}\r\n.equipAugsExpand {\r\n\tmargin: 0 10px 0 0;\r\n\tdisplay: inline;\r\n}\r\n.tooltip {\r\n\tcursor: help;\r\n}\r\n.tooltip span {\r\n\tcolor: white;\r\n\tfont-size:10pt;\r\n\tvisibility: hidden;\r\n\twidth: 200px;\r\n\tbackground-color: rgba(38,53,63,0.9);\r\n\ttext-align: left;\r\n\t/*border-radius: 6px;*/\r\n\tpadding: 5px;\r\n\t/* Position the tooltip */\r\n\tposition: absolute;\r\n\twhite-space: normal;\r\n\tleft: 1em;\r\n}\r\n.xTooltip {\r\n\tmargin: 0 10px 0 0;\r\n\tdisplay: inline;\r\n\tcursor: help !important;\r\n\tcolor: white;\r\n\tfont-size:10pt;\r\n\ttext-align: left;\r\n}\r\n\r\n[class*=\"BaseToolTop\"] {\r\n\tmin-width: 200px;\r\n}\r\n.tooltip:hover span {\r\n\tvisibility: visible;\r\n}\r\n.pr {\r\n\tflex: 1 1 auto;\r\n\tmargin: 10px 10px 0 0;\r\n\ttext-align: left;\t\r\n}\r\n.pr li {\r\n\tmargin: 0 10px 2px 10px;\r\n\tpadding: 5px;\r\n}\r\n.pr li span {\r\n\tcolor:white\r\n}\r\n.aug:before {\r\n\tcontent:url(\"./icons/UINGSItemSpecialAbility.png\");\r\n\tmargin-right: 5px;\r\n\tvertical-align: middle;\r\n}\r\n.itemWeaponWrapper {\r\n\twhite-space: nowrap;\r\n\toverflow: hidden;\r\n\ttext-overflow: ellipsis;\r\n\tpadding-right: 16px;\r\n}\r\n.rifle:before {\r\n content: url(\"./icons/NGSUIItemAssaultRifleMini.png\");\r\n\tmargin-right: 5px;\r\n\tvertical-align: middle;\r\n}\r\n.meat:before {\r\n content: url(\"./icons/food/meat.png\");\r\n}\r\n.vege:before {\r\n content: url(\"./icons/food/vege.png\");\r\n}\r\n.fruit:before {\r\n content: url(\"./icons/food/fruit.png\");\r\n}\r\n.seafood:before {\r\n content: url(\"./icons/food/seafood.png\");\r\n}\r\n.meat:before, .vege:before, .fruit:before, .seafood:before {\r\n\tmargin-right: 5px;\r\n\tvertical-align: middle;\r\n}\r\n.gb:before {\r\n content: url(\"./icons/NGSUIItemGunbladeMini.png\");\r\n\tmargin-right: 5px;\r\n\tvertical-align: middle;\r\n}\r\n.itemWrapper, .itemWrapperActive {\r\n\tbackground-color: rgba(160, 160, 160, 0.33);\r\n\tmargin: 5px 10px 5px;\r\n\tpadding: 10px 10px 6px;\r\n\tdisplay: grid;\r\n\tgrid-template-columns: minmax(56px,auto) minmax(0,1fr) minmax(0,auto) minmax(16px,auto);\r\n\tgrid-template-rows: minmax(0,auto) minmax(0,1fr);\r\n\tgrid-template-areas:\r\n\t\"img itemname itemname rarity\"\r\n\t\"img properties controls controls\";\r\n\tgap: 5px 0;\r\n\tborder-bottom: 4px solid transparent;\r\n}\r\n.itemWrapperActive {\r\n\tbackground-color: rgba(255,192,0,0.25);\r\n\tborder-bottom: 4px solid #ffd602;\r\n}\r\n.itemImgWrapper {\r\n\tgrid-area: img;\r\n}\r\n.itemImgWrapper > img {\r\n\tbackground: radial-gradient(rgb(196,196,196),rgb(128,128,128));\r\n\tborder: 4px solid rgba(128,128,128,1);\r\n\twidth: 48px;\r\n\tbox-sizing: content-box;\r\n\tborder-style: solid;\r\n}\r\n.itemNameWrapper {\r\n\tfont-size: 16px;\r\n\tbackground-color:rgba(0,0,0,0.33);\r\n\tgrid-area: itemname;\r\n\tmargin: 0 10px;\r\n\twhite-space: nowrap;\r\n\toverflow: hidden;\r\n\ttext-overflow: ellipsis;\r\n\tpadding: 3px 3px 0;\r\n}\r\n.r1 .itemRarityWrapper {\r\n\tcontent: url(\"./icons/NGSUIRarity1Star.png\");\r\n}\r\n.r2 .itemRarityWrapper {\r\n\tcontent: url(\"./icons/NGSUIRarity2Star.png\");\r\n}\r\n.r3 .itemRarityWrapper {\r\n\tcontent: url(\"./icons/NGSUIRarity3Star.png\");\r\n}\r\n.r4 .itemRarityWrapper {\r\n\tcontent: url(\"./icons/NGSUIRarity4Star.png\");\r\n}\r\n.itemPropertiesWrapper {\r\n\tcolor:white;\r\n\tgrid-area: properties;\r\n\tmargin: 0 10px;\r\n\talign-self: center;\r\n}\r\n.itemPropertiesWrapper > span {\r\n\twhite-space: nowrap;\r\n\tmargin-right: 10px;\r\n}\r\n.itemControlsWrapper {\r\n\tgrid-area: controls;\r\n\tjustify-self: end;\r\n\twhite-space: nowrap;\r\n}\r\n.itemControlsWrapper > span:nth-child(odd) {\r\n\tbackground-color: rgba(113,169,189,0.33);\r\n\tcursor: pointer;\r\n\tmin-width: 26px;\r\n}\r\n.itemControlsWrapper > span:nth-child(odd):hover {\r\n\tbackground-color: rgba(113,169,189,0.33);\r\n\tcursor: pointer;\r\n\tbackground: linear-gradient(45deg,rgba(76,113,126,0.66),rgba(113,169,189,00.66));\r\n\toutline: 2px solid hsl(180, 78%, 50%);\r\n}\r\n.itemControlsWrapper > span:nth-child(2) {\r\n\tbackground-color:rgba(0,0,0,0.33);\r\n\tmin-width: 26px;\r\n}\r\n.itemControlsWrapper > span {\r\n\tdisplay:inline-block;\r\n\tpadding: 5px 0;\r\n\ttext-align: center;\r\n\tmargin: 0 0 0 5px;\r\n}\r\n.r1 img {\r\n\tbackground: radial-gradient(rgb(64,150,183),rgb(52,123,150)) !important;\r\n\tborder-color: rgb(64,150,183) !important;\r\n\r\n}\r\n.r2 img {\r\n\tbackground: radial-gradient(rgb(64,150,183),rgb(52,123,150)) !important;\r\n\tborder-color: rgb(64,150,183) !important;\r\n}\r\n.r3 img {\r\n\tbackground: radial-gradient(rgb(64,150,183),rgb(52,123,150)) !important;\r\n\tborder-color: rgb(64,150,183) !important;\r\n}\r\n.r4 img {\r\n\tbackground: radial-gradient(rgb(101,178,77),rgb(83,146,63)) !important;\r\n\tborder-color: rgb(101,178,77) !important;\r\n}\r\n.itemlist li span {\r\n background-repeat: no-repeat;\r\n background-position: left center;\r\n}\r\n.atk:before {\r\n\tcontent: url(\"./icons/NGSUIStatATKOutline.png\");\r\n\tmargin-right: 5px;\r\n\tvertical-align: middle;\r\n}\r\n.fixa {\r\n\tcolor: rgb(255,135,80) !important;\r\n}\r\n.fixa:before {\r\n\tcontent: url(\"./icons/UINGSItemPresetAbility.png\");\r\n\tmargin-right: 5px;\r\n\tvertical-align: middle;\r\n}\r\n.pot {\r\n\tcolor: rgb(255,255,0) !important;\r\n}\r\n.mel:before {\r\n\tcontent: url(\"./icons/mel.png\");\r\n\tmargin-right: 5px;\r\n\tvertical-align: middle;\r\n}\r\n.rng:before {\r\n\tcontent: url(\"./icons/rng.png\");\r\n\tmargin-right: 5px;\r\n\tvertical-align: middle;\r\n}\r\n.tec:before {\r\n\tcontent: url(\"./icons/tec.png\");\r\n\tmargin-right: 5px;\r\n\tvertical-align: middle;\r\n}\r\n.pot:before {\r\n\tcontent: url(\"./icons/NGSUIItemPotentialAbility.png\");\r\n\tmargin-right: 5px;\r\n\tvertical-align: middle;\r\n}\r\n.clear {\r\n\tclear: both;\r\n}\r\n.itemlistcontainer {\r\n\toverflow-y: scroll;\r\n\toverflow-x: hidden;\r\n\tmargin: 10px 5px 0 0;\r\n\tpadding: 2px;\r\n}\r\n.itemWrapper:hover, .treeList li:hover {\r\n\tbackground-color: rgba(113,169,189,0.33);\r\n\toutline: 2px solid rgba(54,255,255,0.66);\r\n}\r\n.itemWrapperActive:hover {\r\n\toutline: 2px solid rgba(54,255,255,0.66);\r\n}\r\n.boxmenu {\r\n\tfont-size: 12pt;\r\n\tmargin: 0 10px 0 10px;\r\n\tdisplay: flex;\r\n\tflex-flow: row nowrap;\r\n\tjustify-content: flex-start;\r\n}\r\n.boxmenu li {\r\n\tbackground-color: rgba(115, 120, 125,0.66);\r\n\tcolor: white;\r\n\tdisplay: inline-block;\r\n\tmargin: 10px 5px 0 0;\r\n\tpadding: 5px;\r\n\ttext-align: center;\r\n\tflex-basis: 27px;\r\n\twhite-space: nowrap;\r\n\tcursor:pointer !important;\r\n}\r\n.boxmenu img {\r\n\tvertical-align: middle;\r\n}\r\n.boxMenuClassIcon {\r\n\tmax-height: 16px;\r\n}\r\n.pageControlDetails {\r\n\tbackground-color: rgba(25, 30, 35, 0.66) !important;\r\n\tmargin: 10px 5px 0 auto !important;\r\n}\r\n.pageControlDetails:hover {\r\n\tbackground: linear-gradient(45deg,rgba(76,113,126,0.66),rgba(113,169,189,00.66));\r\n\toutline: 2px solid hsl(180, 78%, 50%);\r\n}\r\n.selected {\r\n\tbackground: linear-gradient(135deg,#60461b,#b0a34e);\r\n\tborder-bottom: 4px solid #ffd602;\r\n}\r\n.unselected:hover {\r\n\tbackground: linear-gradient(45deg,rgba(76,113,126,0.66),rgba(113,169,189,00.66));\r\n\tborder-bottom: 0;\r\n\tpadding-bottom: 9px;\r\n\toutline: 2px solid hsl(180, 78%, 50%);\r\n}\r\nli.selected:hover {\r\n\tbackground: linear-gradient(135deg,#60461b,#b0a34e);\r\n\toutline: 2px solid hsl(180, 78%, 50%);\r\n}\r\n.itemBar {\r\n\tjustify-content: center;\r\n\tdisplay: flex;\r\n\tflex-flow: row nowrap;\r\n\tmargin: 10px 10px 0 10px;\r\n\tpadding: 0 2px;\r\n}\r\n.itemBarSort, .itemBarFilter {\r\n\tflex: 1 1 100px;\r\n\tmargin-right: 10px;\r\n}\r\ninput {\r\n\tbackground-color: #101317;\r\n\tcolor: white;\r\n\tfont-family: ngs,sans-serif;\r\n\tfont-size: 11pt;\r\n\theight: 28px;\r\n\tpadding: 0 5px;\r\n\ttext-shadow: -1px -1px 0 rgba(0,0,0,0.66), 1px -1px 0 rgba(0,0,0,0.66), -1px 1px 0 rgba(0,0,0,0.66), 1px 1px 0 rgba(0,0,0,0.66);\r\n}\r\ninput:hover {\r\n\toutline: 2px solid #30cdef;\r\n}\r\nselect{\r\n\tbackground-color: rgba(128,128,128,0.5);\r\n\tcolor: white;\r\n font-family: ngs,sans-serif;\r\n\tfont-size: 11pt;\r\n\theight: 28px;\r\n\tpadding: 5px 10px;\r\n\ttext-shadow: -1px -1px 0 rgba(0,0,0,0.66), 1px -1px 0 rgba(0,0,0,0.66), -1px 1px 0 rgba(0,0,0,0.66), 1px 1px 0 rgba(0,0,0,0.66);\r\n}\r\nselect.itemBarForm, input.itemBarForm {\r\n\twidth: 100%;\r\n}\r\noption {\r\n\tbackground-color: rgb(128,128,128);\r\n}\r\n.boxExit {\r\n\tpadding: 4px 9px 8px 9px;\r\n\tmargin: 4px;\r\n}\r\n.boxExit:hover {\r\n\tbackground-color: hsl(0, 100%, 33%);\r\n\toutline: 2px solid hsl(0, 100%, 50%);\r\n}\r\n.boxExit:after {\r\n content: ' \\2573';\r\n\tfont-size:9pt;\r\n}\r\n.exit {\r\n\tcolor: white;\r\n}\r\n/* width */\r\n.customScrollbar::-webkit-scrollbar {\r\n\twidth: 4px;\r\n\theight: 4px;\r\n}\r\n.adminScrollbar::-webkit-scrollbar {\r\n\twidth: 16px;\r\n\theight: 16px;\r\n}\r\n/* Track */\r\n.customScrollbar::-webkit-scrollbar-track,.adminScrollbar::-webkit-scrollbar-track {\r\n background: rgba(128,128,128,0.8); \r\n}\r\n \r\n/* Handle */\r\n.customScrollbar::-webkit-scrollbar-thumb, .adminScrollbar::-webkit-scrollbar-thumb {\r\n\tbackground-color: rgba(245, 245, 245,0.66);\r\n}\r\n.customScrollbar::-webkit-scrollbar-button {\r\n\tbackground-color: rgba(162,162,162,0.8); \r\n\theight:4px;\r\n\twidth:4px;\r\n}\r\nadminScrollbar::-webkit-scrollbar-button {\r\n\tbackground-color: rgba(162,162,162,0.8); \r\n\theight:16px;\r\n\twidth:16px;\r\n}\r\n.customScrollbar::-webkit-scrollbar-corner,.adminScrollbar::-webkit-scrollbar-corner {\r\n\tbackground-color: transparent;\r\n}\r\n.containerX {\r\n\tmargin: 10px;\r\n\tmin-width: 0;\r\n}\r\n.containerY {\r\n\tmargin: 10px;\r\n\tmin-width: 0;\r\n}\r\n.treeListContainer {\r\n\toverflow-y: auto;\r\n\tmargin: 10px 10px 0 10px;\r\n}\r\n.treeSelectBox {\r\n/*\tflex: 0 1 auto;\r\n\talign-self: flex-start;\r\n\tmargin: 0 10px 0 0;*/\r\n\toutline: 1px solid rgba(54,255,255,1);\r\n\tmax-width: 220px;\r\n\tposition: absolute;\r\n\tleft: -210px;\r\n\ttop: -10px;\r\n}\r\n.treeList {\r\n\tpadding: 0 2px 2px 2px;\r\n}\r\n.treeList li {\r\n\tbackground-color: rgba(128,128,128,0.33);\r\n\tcolor: white;\r\n\tmargin: 5px 0 0 0;\r\n\tpadding: 10px;\r\n background-repeat: no-repeat;\r\n background-position: right center;\r\n\tbackground-origin: content-box;\r\n\tline-height: 20px;\r\n}\r\nli.treeListMain:after, li.treeListSub:after {\r\n\tmargin-left: 10px;\r\n}\r\nli.treeListMain:after {\r\n\tcontent: url(\"./icons/class_main.png\");\r\n}\r\nli.treeListSub:after {\r\n\tcontent: url(\"./icons/class_sub.png\");\r\n}\r\n.treeList li img {\r\n\tvertical-align: middle;\r\n\tmargin-right: 5px;\r\n}\r\n.skillTreeBox {\r\n\tmargin: 0;\r\n\tmin-width: 181px;\r\n\tmin-height: auto;\r\n\toutline: 1px solid rgba(54,255,255,1);\t\r\n}\r\n.skillTreeBox .boxTitleBar, .treeSelectBox .boxTitleBar {\r\n\tbackground: linear-gradient(45deg, rgba(47,153,193,0.66),rgba(46,94,137,0.66) 30%,rgba(46,94,137,0.66) 70%, rgba(47,153,193,1));\r\n}\r\n.skillTreeContainer {\r\n\toverflow-x: auto;\r\n\toverflow-y: scroll;\r\n\tmargin: 10px 5px 0 10px;\r\n\tpadding: 2px;\r\n\tmax-height: calc(90vh - 150px);\r\n\tmin-width: 0;\r\n}\r\n.skillTreeGrid {\r\n\tdisplay: grid;\r\n\tgrid-template-columns: repeat(6, 181px);\r\n\tgrid-template-areas:\r\n\t\"a1 b1 c1 d1 e1 f1\"\r\n\t\"a2 b2 c2 d2 e2 f2\"\r\n\t\"a3 b3 c3 d3 e3 f3\"\r\n\t\"a4 b4 c4 d4 e4 f4\"\r\n\t\"a5 b5 c5 d5 e5 f5\"\r\n\t\"a6 b6 c6 d6 e6 f6\";\r\n}\r\n.skillTreeGrid > div {\r\n\tbackground-color: rgba(128,128,128,0.33);\r\n\tcolor: white;\r\n\tpadding: 6px;\r\n\ttext-align: center;\r\n\theight: 148px;\r\n\tposition: relative;\r\n\tmargin: 0 10px 96px 0;\r\n}\r\ndiv.skillActive {\r\n\tbackground-color: rgba(18,103,87,0.5);\r\n}\r\ndiv.skillMaxed {\r\n\tbackground-color: rgba(18,103,87,0.5);\r\n}\r\n.skillTreeGrid > div:hover {\r\n\toutline: 2px solid rgba(54,255,255,0.66);\r\n\tbackground-color: rgba(113,169,189,0.33);\r\n}\r\n.skillTreeGrid > div.skillActive:hover, .skillTreeGrid > div.skillMaxed:hover {\r\n\toutline: 2px solid rgba(54,255,255,0.66);\r\n\tbackground-color: rgba(18,103,87,0.5);\r\n}\r\ndiv.skillLocked {\r\n\tbackground-color: rgba(64,64,64,0.33);\r\n}\r\ndiv.skillLocked img, div.skillLocked span.skillAllocated, div.skillLocked em.skillName {\r\n\topacity: 0.33;\r\n}\r\n.skillIcon {\r\n\tmargin: 0 auto;\r\n\tmax-width: 48px;\r\n}\r\n.skillAllocated {\r\n\tdisplay: block;\r\n\tline-height: 40px;\r\n}\r\ndiv.skillActive .skillAllocated {\r\n\tcolor: rgb(255,255,0);\r\n} \r\ndiv.skillMaxed .skillAllocated {\r\n\tcolor: rgb(255,135,80);\r\n}\r\n.skillTreeReqUnlock {\r\n\tposition: absolute;\r\n\theight: 22px;\r\n\twidth: 175px;\r\n\tbackground-image: url(\"./icons/skilltree_req_unlock.png\");\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: center;\r\n\ttop: -34px;\r\n\tleft: -2px;\r\n\tdisplay: block;\r\n\topacity: 0.8;\r\n}\r\n.skillTreeReqLock {\r\n\tposition: absolute;\r\n\theight: 22px;\r\n\twidth: 175px;\r\n\tbackground-image: url(\"./icons/skilltree_req_lock.png\");\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: center;\r\n\ttop: -34px;\r\n\tleft: -2px;\r\n\tdisplay: block;\r\n\topacity: 0.8;\r\n}\r\n.skillName {\r\n\tbackground-color: rgba(32,32,32,0.33);\r\n\tdisplay: block;\r\n\tpadding: 10px;\r\n\theight: 48px;\r\n\ttext-align: left;\r\n}\r\n.skillButtons {\r\nposition:absolute;\r\ndisplay: grid;\r\ngrid-template-columns: repeat(2, minmax(0,1fr));\r\nwidth: 171px;\r\nheight: 148px;\r\nleft: 0;\r\ntop: 0;\r\ncursor:pointer !important;\r\n}\r\n.skillButtons > span:hover {\r\n\tbackground-image: url(\"./icons/skilltree_div_overlay.png\");\r\n\tbackground-repeat: no-repeat;\r\n}\r\n.skillLeftButton {\r\n\tbackground-position: left;\r\n}\r\n.skillRightButton {\r\n\tbackground-position: right;\r\n}\r\n.skillPoints {\r\n\tbackground-color: rgba(64,64,64,0.5);\r\n\ttext-align: center;\r\n\tmargin: 10px 10px 0 10px;\r\n\tpadding: 16px 0 10px 0;\r\n\tcolor: white;\r\n\tfont-size: 14pt;\r\n\tdisplay: grid;\r\n\tgrid-template-columns: repeat(auto-fill,292px);\r\n\tjustify-content: center;\r\n\tgap: 10px;\r\n}\r\n.skillPoints div:first-child {\r\n\ttext-align: center;\r\n}\r\n.skillPoints div span {\r\n\tdisplay: inline-block;\r\n\twidth: calc(292px / 2);\r\n\ttext-align: center;\r\n}\r\n.skillConfirm {\r\n\tjustify-content: center;\r\n\tdisplay: flex;\r\n\tflex-flow: row wrap;\r\n}\r\n.skillConfirm span {\r\n\tflex: 1 1 auto;\r\n\tbackground-color: rgba(113,169,189,0.33);\r\n\tdisplay: inline-block;\r\n\ttext-align: center;\r\n\tline-height: 48px;\r\n\tcolor: white;\r\n\tfont-size: 13pt;\r\n\tmargin: 10px 6px 0 6px;\r\n\tmax-width: 292px;\r\n}\r\n\r\n/* Sig's Amazing CSS (cuz Dudley edited it) */\r\n.editBox:hover, .editClass:hover{\r\n\tbackground: linear-gradient(45deg,rgba(76,113,126,0.66),rgba(113,169,189,00.66));\r\n\tcursor:pointer;\r\n\toutline: 2px solid #30cdef;\r\n}\r\n.editBoxActive:hover {\r\n\tcursor:pointer\r\n}\r\ninput#editBoxInput {\r\n\tposition: absolute;\r\n\tleft: 0;\r\n\ttext-align: right;\r\n\tbackground-color: #101317;\r\n\tcolor: white;\r\n\tcursor:pointer;\r\n\tfont-family: ngs,sans-serif;\r\n\tfont-size: 16px;\r\n\r\n\toutline: 2px solid #ffff00;\r\n\tpadding: 0 5px;\r\n\ttext-shadow: -1px -1px 0 rgba(0,0,0,0.66), 1px -1px 0 rgba(0,0,0,0.66), -1px 1px 0 rgba(0,0,0,0.66), 1px 1px 0 rgba(0,0,0,0.66);\r\n\twidth:100%;\r\n}\r\n.editClass {\r\n\tdisplay: inline-block;\r\n\twidth: 100%;\r\n}\r\n\r\n.popup{\r\n\tdisplay: flex;\r\n\tflex-wrap: wrap;\r\n}\r\n.popup2{\r\n\tz-index:5;\r\n\tposition: absolute;\r\n\tbackground-color: rgba(128,128,128,0.9);\r\n\tmax-width: 250px;\r\n\tmin-width: 100px;\r\n\tpadding: 20px;\r\n\tbox-shadow: 0 10px 16px 0 rgba(0,0,0,0.5), 0 6px 20px 0 rgba(0,0,0,0.5) !important;\r\n}\r\n.popup button{\r\n\tmargin:5px;\r\n\twidth:48px;\r\n\tfont-size:12px;\r\n\toverflow:wrap;\r\n\tbackground-color:rgba(64,64,96,0.9);\r\n\tcolor:rgba(210,210,210,1);\r\n}\r\nbutton {\r\n\tcursor: pointer;\r\n\tpadding:0px 3px 0px 3px;\r\n\tborder: 1px black solid;\r\n\tbackground-color: rgba(128,128,128,0.5);\r\n\tcolor:white;\r\n font-family: ngs,sans-serif;\r\n\tfont-size: 16px;\r\n\tfont-weight: normal;\r\n\ttext-align: center;\r\n\ttext-shadow: -1px 1px 0 #000,1px 1px 0 #000,1px -1px 0 #000,-1px -1px 0 #000;\r\n}\r\n.table-responsive{\r\n\tcolor:rgba(220,220,220);\r\n}\r\n.table-responsive table {\r\n\tbackground-color: rgba(20,29,40,0.66);\r\n}\r\n.table {\r\n\tborder: 1px solid black;\r\n\tborder-spacing:1px;\r\n}\r\n.table-padding{\r\n\tpadding: 4px;\r\n}\r\n.ReactModal__Body--open,\r\n.ReactModal__Html--open {\r\n overflow: hidden;\r\n}\r\n.modalOverlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background: linear-gradient(rgba(0,0,0,0.5),rgba(0,0,0,0.8));\r\n\tdisplay: grid;\r\n\tjustify-items: stretch;\r\n\talign-items: center; \r\n\tgrid-template-columns: minmax(10px, 1fr) minmax(200px, auto) minmax(10px, 1fr);\r\n\tgrid-template-rows: 10px minmax(10px, 1fr) 10px;\r\n\tmin-height: 100vh;\r\n\t/* mobile viewport bug fix */\r\n\tmin-height: -webkit-fill-available;\r\n}\r\n.modalOverlaySplash {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background: linear-gradient(rgba(0,0,0,0.5),rgba(0,0,0,0.8));\r\n\tdisplay: grid;\r\n\tjustify-items: stretch;\r\n\talign-items: center; \r\n\tgrid-template-columns: minmax(10px, 1fr) minmax(200px, auto) minmax(10px, 1fr);\r\n\tgrid-template-rows: 10px minmax(10px, 1fr) minmax(10px, auto);\r\n\tmin-height: 100vh;\r\n\t/* mobile viewport bug fix */\r\n\tmin-height: -webkit-fill-available;\r\n}\r\n.modalOverlaySplash > footer {\r\n\tgrid-column: 1 / span 3;\r\n\tgrid-row: 3;\r\n\tpadding-bottom: 4vh;\r\n background: linear-gradient(transparent,rgba(0,0,0,0.7));\r\n}\r\n.modalOverlaySplash > footer a:hover {\r\n\tbackground-color: transparent;\r\n}\r\nspan.github, span.twitter {\r\n\tfont-size: 24px;\r\n\tmargin-right: 15px;\r\n\topacity: 0.75;\r\n}\r\nspan.github:hover, span.twitter:hover {\r\n\topacity: 1;\r\n}\r\nspan.github:before, span.twitter:before {\r\n\tvertical-align: middle;\r\n\tmargin-right: 10px;\r\n}\r\nspan.github:before {\r\n\tcontent: url(\"./icons/GitHub-Mark-Light-32px.png\");\r\n}\r\nspan.twitter:before {\r\n\tcontent: url(\"./icons/2021 Twitter logo - white32.png\");\r\n}\r\n.modal {\r\n\tgrid-column: 2;\r\n\tgrid-row: 2;\r\n}\r\n.boxModal {\r\n\tanimation: fadeIn 0.15s;\r\n\tmax-width: 580px;\r\n\tmargin: 0 auto;\r\n\tbox-shadow: 0 10px 16px 0 rgba(0,0,0,0.5), 0 6px 20px 0 rgba(0,0,0,0.5) !important;\r\n\toutline: 1px solid rgba(54,255,255,1);\t\r\n}\r\n.boxModalClassSelect {\r\n\tanimation: fadeIn 0.15s;\r\n\twidth: 300px;\r\n\tmargin: 0 auto;\r\n\tbox-shadow: 0 10px 16px 0 rgba(0,0,0,0.5), 0 6px 20px 0 rgba(0,0,0,0.5) !important;\r\n\toutline: 1px solid rgba(54,255,255,1);\t\r\n}\r\n@keyframes fadeIn {\r\n\t0% {opacity:0;margin-bottom:30px;}\r\n\t100% {opacity:1;margin-bottom:0;}\r\n }\r\n .boxAdmin {\r\n\tanimation: fadeIn 0.15s;\r\n\tbox-shadow: 0 10px 16px 0 rgba(0,0,0,0.5), 0 6px 20px 0 rgba(0,0,0,0.5) !important;\r\n\toutline: 1px solid rgba(54,255,255,1);\t\r\n\ttext-align:center;\r\n}\r\n.boxAdmin img {\r\n\tmargin: 20px;\r\n\t\tbackground: linear-gradient(white,#bca9f5);\r\n}\r\n.boxAdmin input {\r\n\tfont-size: 36px;\r\n\theight: 72px;\r\n\twidth: 33vw;\r\n\tbackground-color: transparent;\r\n\r\n}\r\n.boxAdmin input:hover {\r\noutline: 0 !important;\r\n}\r\n.boxMisc {\r\n\tanimation: fadeIn 0.15s;\r\n\tmax-width: 450px;\r\n\tmargin: 0 auto;\r\n\tbox-shadow: 0 10px 16px 0 rgba(0,0,0,0.5), 0 6px 20px 0 rgba(0,0,0,0.5) !important;\r\n\toutline: 1px solid rgba(54,255,255,1);\t\r\n\ttext-align: center;\r\n}\r\n.boxMisc h2 {\r\n\tfont-size: 17px;\r\n\tfont-weight: normal;\r\n\tborder-bottom: 1px solid rgba(128,128,128,0.5);\r\n\tmargin: 10px 10px 0;\r\n\tpadding: 10px 5px;\r\n\ttext-align: left;\r\n}\r\n.boxMisc h2:before {\r\n content: url(\"./icons/NGSUIItemGunbladeMini.png\");\r\n\tmargin-right: 5px;\r\n\tvertical-align: middle;\r\n}\r\n.boxMisc img {\r\n\tbackground: linear-gradient(white,#bca9f5);\r\n\tvertical-align: top;\r\n\tmargin: 0 10px;\r\n}\r\n.boxMisc p > img {\r\n\tfloat:right;\r\n}\r\n.boxMisc p {\r\n\tmargin-top: 0;\r\n\ttext-align: justify;\r\n}\r\n.boxModal .boxTitleBar, .boxModalClassSelect .boxTitleBar, .boxMisc .boxTitleBar, .boxAdmin .boxTitleBar {\r\n\tbackground: linear-gradient(45deg, rgba(47,153,193,0.66),rgba(46,94,137,0.66) 30%,rgba(46,94,137,0.66) 70%, rgba(47,153,193,1));\r\n}\r\n.modalItemListContainer {\r\n\toverflow-y: auto;\r\n\toverflow-x: hidden;\r\n\tmargin: 10px 5px 0 0;\r\n\tpadding: 2px;\r\n\tmax-height: calc(90vh - 115px);\r\n}\r\n.webicon{\r\n\tcolor:maroon;\r\n}\r\n.webicon:hover{\r\n\tcolor:rgba(200,0,0,1);\r\n\tcursor:pointer !important;\r\n}\r\n.basichover:hover{\r\n\tcursor:pointer !important;\r\n}\r\n.modalCloseButton{\r\n\tfloat:right;\r\n\tcolor:#151f25;\r\n}\r\n.modalCloseButton:hover{\r\n\tcolor:rgba(200,0,0,1);\r\n\tcursor:pointer !important;\r\n}\r\n.failedInput{\r\n\tborder: 1px solid rgba(200,0,0,1);\r\n}\r\n.submitting{\r\n\tborder: 1px solid rgba(0,150,200,1);\r\n background: linear-gradient(-90deg, #124425,#000000, #124425);\r\n background-size: 10% 400%;\r\n animation: submitgradient 1.5s ease infinite;\r\n}\r\n\r\n@keyframes submitgradient {\r\n 0% {\r\n background-position: 0% 100%;\r\n }\r\n 100% {\r\n background-position: 100% 0%;\r\n }\r\n}\r\n\r\n.submitbutton{\r\n\twidth:32px;\r\n\theight:32px;\r\n}\r\n.submitbutton:hover{\r\n\tcolor:rgba(0,200,0,1);\r\n\tcursor:pointer !important;\r\n}\r\n\r\n/* Admin Panel */\r\n\r\n.adminMain {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n\tdisplay: grid;\r\n\tjustify-items: stretch;\r\n\talign-items: stretch; \r\n\tgrid-template-columns: 250px 1fr;\r\n\tgrid-template-rows: minmax(10px, 1fr) 1fr minmax(10px, 1fr);\r\n\tgrid-template-areas:\r\n\t\"header header\"\r\n\t\"sidebar content\"\r\n\t\"footer footer\";\r\n\tgap: 10px;\r\n\toverflow:hidden;\r\n\tmargin: 0 10px;\r\n}\r\n.boxAdminNav {\r\n\tgrid-area: sidebar;\r\n\tfont-size: 12pt;\r\n\tline-height: 1.5em;\r\n}\r\n.boxAdminContent {\r\n\tgrid-area: content;\r\n}\r\n.adminNavContainer {\r\n\toverflow-y: scroll;\r\n\tmargin: 0 5px 0 10px;\r\n\tpadding: 2px;\r\n\theight: 0;\r\n\theight: 80vh;\r\n}\r\n.adminContainer {\r\n\toverflow-x: auto;\r\n\toverflow-y: scroll;\r\n\tmargin: 10px 5px 0 10px;\r\n\tpadding: 2px;\r\n\twidth: 84vw;\r\n\theight: 85vh;\r\n}\r\np.adminNav hr {\r\n\tborder-bottom: 1px solid silver;\r\n\tmargin: 10px 0;\r\n}\r\n.buttonLabel{\r\n\tcursor: pointer;\r\n\tpadding:5px 10px;\r\n\r\n\tbackground-color: rgba(128,128,128,0.5);\r\n\tcolor:white;\r\n font-family: ngs,sans-serif;\r\n\tfont-size: 16px;\r\n\tfont-weight: normal;\r\n\ttext-align: center;\r\n\ttext-shadow: -1px 1px 0 #000,1px 1px 0 #000,1px -1px 0 #000,-1px -1px 0 #000;\r\n}\r\n.react-toggle {\r\n\ttouch-action: pan-x;\r\n \r\n\tdisplay: inline-block;\r\n\tposition: relative;\r\n\tcursor:pointer !important;\r\n\tbackground-color: transparent;\r\n\tborder: 0;\r\n\tpadding: 0;\r\n \r\n\t-webkit-touch-callout: none;\r\n\t-webkit-user-select: none;\r\n\t-khtml-user-select: none;\r\n\t-moz-user-select: none;\r\n\t-ms-user-select: none;\r\n\tuser-select: none;\r\n \r\n\t-webkit-tap-highlight-color: rgba(0,0,0,0);\r\n\t-webkit-tap-highlight-color: transparent;\r\n }\r\n \r\n .react-toggle-screenreader-only {\r\n\tborder: 0;\r\n\tclip: rect(0 0 0 0);\r\n\theight: 1px;\r\n\tmargin: -1px;\r\n\toverflow: hidden;\r\n\tpadding: 0;\r\n\tposition: absolute;\r\n\twidth: 1px;\r\n }\r\n \r\n .react-toggle--disabled {\r\n\tcursor: not-allowed;\r\n\topacity: 0.5;\r\n\t-webkit-transition: opacity 0.25s;\r\n\ttransition: opacity 0.25s;\r\n }\r\n \r\n .react-toggle-track {\r\n\twidth: 50px;\r\n\theight: 24px;\r\n\tpadding: 0;\r\n\tborder-radius: 30px;\r\n\tbackground-color: #4D4D4D;\r\n\t-webkit-transition: all 0.2s ease;\r\n\t-moz-transition: all 0.2s ease;\r\n\ttransition: all 0.2s ease;\r\n }\r\n \r\n .react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\r\n\tbackground-color: #000000;\r\n }\r\n \r\n .react-toggle--checked .react-toggle-track {\r\n\tbackground-color: #19AB27;\r\n }\r\n \r\n .react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\r\n\tbackground-color: #128D15;\r\n }\r\n \r\n .react-toggle-track-check {\r\n\tposition: absolute;\r\n\twidth: 14px;\r\n\theight: 10px;\r\n\ttop: 0px;\r\n\tbottom: 0px;\r\n\tmargin-top: auto;\r\n\tmargin-bottom: auto;\r\n\tline-height: 0;\r\n\tleft: 8px;\r\n\topacity: 0;\r\n\t-webkit-transition: opacity 0.25s ease;\r\n\t-moz-transition: opacity 0.25s ease;\r\n\ttransition: opacity 0.25s ease;\r\n }\r\n \r\n .react-toggle--checked .react-toggle-track-check {\r\n\topacity: 1;\r\n\t-webkit-transition: opacity 0.25s ease;\r\n\t-moz-transition: opacity 0.25s ease;\r\n\ttransition: opacity 0.25s ease;\r\n }\r\n \r\n .react-toggle-track-x {\r\n\tposition: absolute;\r\n\twidth: 10px;\r\n\theight: 10px;\r\n\ttop: 0px;\r\n\tbottom: 0px;\r\n\tmargin-top: auto;\r\n\tmargin-bottom: auto;\r\n\tline-height: 0;\r\n\tright: 10px;\r\n\topacity: 1;\r\n\t-webkit-transition: opacity 0.25s ease;\r\n\t-moz-transition: opacity 0.25s ease;\r\n\ttransition: opacity 0.25s ease;\r\n }\r\n \r\n .react-toggle--checked .react-toggle-track-x {\r\n\topacity: 0;\r\n }\r\n \r\n .react-toggle-thumb {\r\n\ttransition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1) 0ms;\r\n\tposition: absolute;\r\n\ttop: 1px;\r\n\tleft: 1px;\r\n\twidth: 22px;\r\n\theight: 22px;\r\n\tborder: 1px solid #4D4D4D;\r\n\tborder-radius: 50%;\r\n\tbackground-color: #FAFAFA;\r\n \r\n\t-webkit-box-sizing: border-box;\r\n\t-moz-box-sizing: border-box;\r\n\tbox-sizing: border-box;\r\n \r\n\t-webkit-transition: all 0.25s ease;\r\n\t-moz-transition: all 0.25s ease;\r\n\ttransition: all 0.25s ease;\r\n }\r\n \r\n .react-toggle--checked .react-toggle-thumb {\r\n\tleft: 27px;\r\n\tborder-color: #19AB27;\r\n }\r\n \r\n .react-toggle--focus .react-toggle-thumb {\r\n\t-webkit-box-shadow: 0px 0px 3px 2px #0099E0;\r\n\t-moz-box-shadow: 0px 0px 3px 2px #0099E0;\r\n\tbox-shadow: 0px 0px 2px 3px #0099E0;\r\n }\r\n \r\n .react-toggle:active:not(.react-toggle--disabled) .react-toggle-thumb {\r\n\t-webkit-box-shadow: 0px 0px 5px 5px #0099E0;\r\n\t-moz-box-shadow: 0px 0px 5px 5px #0099E0;\r\n\tbox-shadow: 0px 0px 5px 5px #0099E0;\r\n }\r\n .testmode.react-toggle--checked .react-toggle-track {\r\n\tbackground-color: #00AADD;\r\n }\r\n .testmode.react-toggle--checked .react-toggle-track:hover {\r\n\tbackground-color: #00AADD;\r\n }\r\n.addAug{\r\n\theight: 37px;\r\n}\r\n.databaseIcon{\r\n\twidth:48px;\r\n\theight:48px;\r\n\tpadding-right:8px;\r\n\tposition:relative;\r\n\ttop:16px;\r\n}\r\n.equipWindow {\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n\tmin-height: 440px;\r\n}\r\n.itemDetailsGridTop {\r\n\tdisplay: grid;\r\n\tgrid-template-areas:\r\n\t\"icon properties\";\r\n\tgrid-template-columns: 128px minmax(0,1fr);\r\n\tmargin: 10px;\r\n}\r\n.itemDetailsGridBottom {\r\n\tdisplay: grid;\r\n\tgrid-template-areas:\r\n\t\"ability fixa\"\r\n\t\"augment augment\";\r\n\tgrid-template-columns: repeat(2,minmax(0,1fr));\r\n\tmargin: 10px;\r\n\tflex: 1;\r\n}\r\n.itemDetailsIcon {\r\n\tgrid-area: icon;\r\n\talign-self: flex-start;\r\n}\r\n.editOverlayWrapper {\r\n\tposition: relative;\r\n}\r\n.editOverlayWrapper:hover {\r\n\tcursor: pointer;\r\n\toutline: 2px solid #30cdef;\r\n}\r\n.editOverlay {\r\n\tdisplay: none;\r\n\tposition: absolute;\r\n\theight: 100%;\r\n\twidth: 100%;\r\n\tjustify-content: center;\r\n\talign-content: center;\r\n\tflex-direction: column;\r\n\ttext-align: center;\r\n\tbackground: linear-gradient(45deg,rgba(76,113,126,0.66),rgba(113,169,189,00.66));\r\n}\r\n.editOverlay > p {\r\n\tmargin: 0;\r\n\tpadding: 0;\r\n}\r\n.editOverlayWrapper:hover .editOverlay {\r\n\tdisplay: flex;\r\n}\r\n.itemDetailsProperties {\r\n\tmargin: 0 0 0 10px;\r\n\tgrid-area: properties;\r\n}\r\n.itemDetailsPropertiesWrapper {\r\n\tdisplay: grid;\r\n\tgrid-template-columns: minmax(0, 1fr) minmax(0,1fr);\r\n\tgrid-template-areas:\r\n\t\"rarity stars\"\r\n\t\"attack attackDisplay\"\r\n\t\"element elementDisplay\"\r\n\t\"conditions conditionsDisplay\";\r\n\ttext-align: left;\r\n\tgap: 5px 0;\r\n}\r\n.itemDetailsPropertiesWrapper > div {\r\n\tborder-bottom: 1px solid rgba(128,128,128,0.5);\r\n\tpadding-bottom: -1px;\r\n}\r\n.itemDetailsPropertiesWrapper > div:nth-child(odd) {\r\n\tcolor: #97e2fc;\r\n}\r\n.itemDetailsPropertiesWrapper > div:nth-child(even) {\r\n\tpadding-left: 0;\r\n}\r\n.itemDetailsAugment {\r\n\tmargin: 15px 0 0 0;\r\n\tgrid-area: augment;\r\n}\r\n.itemDetailsAugmentWrapper {\r\n\tmargin: 10px 0 0 0;\r\n\tdisplay: grid;\r\n\tgrid-template-columns: repeat(auto-fit,minmax(125px, 1fr));\r\n\tgap: 10px 30px;\r\n\tflex: 1;\r\n}\r\n.itemDetailsAugmentWrapper > div {\r\n\tbackground-color:rgba(0,0,0,0.33);\r\n\tpadding: 2px 10px;\r\n\tborder-radius: 0 10px 0 0;\r\n\theight: 20px;\r\n\twhite-space: nowrap;\r\n\ttext-overflow:ellipsis;\r\n}\r\n.itemDetailsAugmentWrapper > div span:before {\r\n\tcontent: \"\\00B7\";\r\n\tmargin-right: 10px;\r\n\tfont-weight: 900;\r\n}\r\n.itemPotential {\r\n\tgrid-area: ability;\r\n\ttext-align: left;\r\n}\r\n.itemFixa {\r\n\tgrid-area: fixa;\r\n\ttext-align: left;\r\n}\r\n.itemDetailsIcon img {\r\n\tbackground: radial-gradient(rgb(196,196,196),rgb(128,128,128));\r\n\tborder-color: rgba(128,128,128,1);\r\n\tborder-width: 2px;\r\n\twidth: 124px;\r\n\tbox-sizing: content-box;\r\n\tborder-style: solid;\r\n}\r\n.formField{\r\n\tfont-weight:bold;\r\n}\r\n.formDescription{\r\n\tfont-style:italic;\r\n}\r\n.formError{\r\n\tcolor:red;\r\n\tfont-weight:bold;\r\n}\r\n.toDoList {\r\n\tpadding: 0 10px;\r\n}\r\ndt {\r\nmargin: 10px 0 0 0;\r\n}\r\ndd, dl {\r\n\tpadding: 10px 0 0 15px;\r\n}\r\ndd:before {\r\n\tcontent: \"\\2610\";\r\n\tpadding-right: 10px;\r\n}\r\n.half:before {\r\n\tcontent: \"\\25E7\" !important;\r\n}\r\n.check {\r\n\topacity: 0.25;\r\n}\r\n.check:hover {\r\n\topacity: 1;\r\n}\r\n.check:before {\r\n\tfont-family: \"Segoe UI Symbol\";\r\n\tcontent: \"\\2B1B\" !important;\r\n}\r\n.trashButton{\r\n\tcolor:rgba(100,50,50,1);\r\n\twidth:24px;\r\n\theight:24px;\r\n}\r\n.trashButton:hover {\r\n\tcolor:rgba(200,50,50,1);\r\n\tborder: 2px solid red;\r\n}"]}
\ No newline at end of file
diff --git a/static/js/main.de74fa0f.chunk.js b/static/js/main.de74fa0f.chunk.js
deleted file mode 100644
index 0636d22..0000000
--- a/static/js/main.de74fa0f.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-(this.webpackJsonpngsplanner=this.webpackJsonpngsplanner||[]).push([[0],{143:function(e,t){},145:function(e,t){},153:function(e,t,a){"use strict";a.r(t);var i=a(1),s=a.n(i),c=a(36),n=a.n(c),l=(a(80),a(12)),r=a(6),j=a(20),d=a(2),b=(a(81),a(82),a(37)),o=a.n(b),h=a(14),O=a(157),u=a(158),p=a(159),g=a(160),m=a(161),x=a(10),f=a(0);function v(e){var t=Object(i.useRef)(null),a=Object(i.useState)(0),s=Object(d.a)(a,2),c=s[0],n=s[1],r=Object(i.useState)(0),j=Object(d.a)(r,2),b=j[0],o=j[1];return Object(i.useEffect)((function(){n(e.gridSizeX*e.gridDimensionsX+e.gridPaddingX*(e.gridDimensionsX-1)),o(e.gridSizeY*Math.ceil(e.gridDimensionsY/2)+e.halflineheight*Math.ceil((e.gridDimensionsY-1)/2)+e.gridPaddingY*(e.gridDimensionsY-1))}),[e.halflineheight,e.skillLines,e.gridSizeX,e.gridSizeY,e.gridPaddingX,e.gridPaddingY,e.gridDimensionsX,e.gridDimensionsY]),Object(i.useEffect)((function(){var a=t.current.getContext("2d");a.clearRect(0,0,c,b),a.fillStyle="rgba(100,100,100,0.5)",a.strokeStyle=e.strokeStyle,a.lineWidth=e.lineWidth,a.setLineDash(e.lineDash);var i,s=0,n=Object(l.a)(e.skillLines);try{for(n.s();!(i=n.n()).done;){var r,j=i.value,d=0,o=Object(l.a)(j.split(""));try{for(o.s();!(r=o.n()).done;){var h=r.value,O=0!==d?e.gridPaddingX*d:0,u=0!==s?e.gridPaddingY*s:0;switch(h){case"\u2500":a.beginPath(),a.moveTo(d*e.gridSizeX+O-e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+O+e.gridSizeX+e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke();break;case"\u2502":a.beginPath(),a.moveTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u-e.gridPaddingY),a.lineTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+e.gridSizeY+e.gridPaddingY),a.stroke();break;case"\u2514":a.beginPath(),a.moveTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u-e.gridPaddingY),a.lineTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+O+e.gridSizeX+e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke();break;case"\u250c":a.beginPath(),a.moveTo(d*e.gridSizeX+O+e.gridSizeX+e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+e.gridSizeY+e.gridPaddingY),a.stroke();break;case"\u2518":a.beginPath(),a.moveTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u-e.gridPaddingY),a.lineTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+O-e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke();break;case"\u2510":a.beginPath(),a.moveTo(d*e.gridSizeX+O-e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+e.gridSizeY+e.gridPaddingY),a.stroke();break;case"\u251c":a.beginPath(),a.moveTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u-e.gridPaddingY),a.lineTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+O+e.gridSizeX+e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke(),a.beginPath(),a.moveTo(d*e.gridSizeX+O+e.gridSizeX+e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+e.gridSizeY+e.gridPaddingY),a.stroke();break;case"\u2524":a.beginPath(),a.moveTo(d*e.gridSizeX+O-e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+e.gridSizeY+e.gridPaddingY),a.stroke(),a.beginPath(),a.moveTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u-e.gridPaddingY),a.lineTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+O-e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke();break;case"\u252c":a.beginPath(),a.moveTo(d*e.gridSizeX+O-e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+e.gridSizeY+e.gridPaddingY),a.stroke(),a.beginPath(),a.moveTo(d*e.gridSizeX+O+e.gridSizeX+e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+e.gridSizeY+e.gridPaddingY),a.stroke();break;case"\u2534":a.beginPath(),a.moveTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u-e.gridPaddingY),a.lineTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+O+e.gridSizeX+e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke(),a.beginPath(),a.moveTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u-e.gridPaddingY),a.lineTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+O-e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke();break;case"\u253c":a.beginPath(),a.moveTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u-e.gridPaddingY),a.lineTo(d*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+e.gridSizeY+e.gridPaddingY),a.moveTo(d*e.gridSizeX+O-e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+O+e.gridSizeX+e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke();break;case"\u25a1":a.clearRect(d*e.gridSizeX+O,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u,e.gridSizeX,s%2===1?e.halflineheight:e.gridSizeY),a.fillRect(d*e.gridSizeX+O,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u,e.gridSizeX,s%2===1?e.halflineheight:e.gridSizeY)}d++}}catch(p){o.e(p)}finally{o.f()}s++}}catch(p){n.e(p)}finally{n.f()}}),[c,b,e.gridSizeX,e.gridSizeY,e.gridPaddingX,e.gridPaddingY,e.lineDash,e.lineWidth,e.skillLines,e.strokeStyle,e.halflineheight]),Object(f.jsx)("canvas",{width:c,height:b,ref:t,style:e.style,className:e.className,children:e.children})}function S(e){var t=e.GetData,a=Object(i.useState)([]),s=Object(d.a)(a,2),c=s[0],n=s[1];return Object(i.useEffect)((function(){n(t("class_skill"))}),[e.cl,t]),Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)("select",{onChange:function(t){e.callback(t.currentTarget.value,Number(e.x),Number(e.y))},style:{position:"absolute",left:e.ADJUSTMENT[0]+(e.x*e.gridSizeX+e.padX+e.gridSizeX/2),top:e.ADJUSTMENT[1]+(e.y/2*e.gridSizeY+(e.y/2-1)*e.halflineheight+e.padY+(0===e.y?e.halflineheight:e.gridSizeY)/2)},value:e.defaultValue,children:[" ","\u2500","\u2502","\u25a1","\u250c","\u2514","\u2510","\u2518","\u252c","\u2534","\u251c","\u2524","\u253c"].map((function(e){return Object(f.jsx)("option",{value:e,children:e},e)}))}),"\u25a1"===e.defaultValue&&Object(f.jsx)("select",{style:{width:"64px",position:"absolute",left:e.ADJUSTMENT[0]+(e.x*e.gridSizeX+e.padX+e.gridSizeX/2),top:e.ADJUSTMENT[1]+(e.y/2*e.gridSizeY+(e.y/2-1)*e.halflineheight+e.padY+(0===e.y?e.halflineheight:e.gridSizeY)/2)+28},onChange:function(t){e.skillCallback(e.x,e.y,t.currentTarget.value)},value:e.skill.split(",")[2],children:[""].concat(Object(x.a)(Object.keys(c).filter((function(t){return c[t].class_id===e.cl})))).map((function(e){return Object(f.jsx)("option",{value:c[e]?c[e].id:"",children:c[e]?c[e].name:""},e)}))})]})}var N=a(16),y=a.n(N);function k(e){var t,a,c=e.GetData,n=Object(i.useMemo)((function(){return[-32,32]}),[]),l=Object(i.useState)(!0),r=Object(d.a)(l,2),j=r[0],b=r[1],o=Object(i.useState)({}),h=Object(d.a)(o,2),O=h[0],u=h[1],p=Object(i.useState)({}),g=Object(d.a)(p,2),m=g[0],N=g[1],k=Object(i.useState)(-1),D=Object(d.a)(k,2),C=D[0],E=D[1],P=Object(i.useState)("#000000"),z=Object(d.a)(P,2),T=z[0],A=z[1],M=Object(i.useState)(3),_=Object(d.a)(M,2),I=_[0],G=_[1],w=Object(i.useState)(6),R=Object(d.a)(w,2),X=R[0],W=R[1],Y=Object(i.useState)(6),L=Object(d.a)(Y,2),F=L[0],B=L[1],U=Object(i.useState)(80),H=Object(d.a)(U,2),K=H[0],q=H[1],V=Object(i.useState)(60),J=Object(d.a)(V,2),Q=J[0],Z=J[1],$=Object(i.useState)(10),ee=Object(d.a)($,2),te=ee[0],ae=ee[1],ie=Object(i.useState)(10),se=Object(d.a)(ie,2),ce=se[0],ne=se[1],le=Object(i.useState)([]),re=Object(d.a)(le,2),je=re[0],de=re[1],be=Object(i.useState)([]),oe=Object(d.a)(be,2),he=oe[0],Oe=oe[1],ue=Object(i.useState)([]),pe=Object(d.a)(ue,2),ge=pe[0],me=pe[1],xe=Object(i.useState)([]),fe=Object(d.a)(xe,2),ve=fe[0],Se=fe[1],Ne=Object(i.useState)(""),ye=Object(d.a)(Ne,2),ke=ye[0],De=ye[1],Ce=Object(i.useState)(!1),Ee=Object(d.a)(Ce,2),Pe=Ee[0],ze=Ee[1],Te=Object(i.useState)(60),Ae=Object(d.a)(Te,2),Me=Ae[0],_e=Ae[1],Ie=Object(i.useCallback)((function(e,t){var a=ve.filter((function(a){return Number(a.split(",")[0])===Number(e)&&Number(a.split(",")[1])===Number(t)}));return a.length>0?a[0]:""}),[ve]);return Object(i.useEffect)((function(){u(c("class",void 0,void 0,!0)),N(c("skill_tree_data",void 0,void 0,!0))}),[c]),Object(i.useEffect)((function(){for(var e=!1,t=0,a=Object.keys(m);t0?e.includes("http")?e:""+e:"/icons/nicodotpng.png.png"}var T=a(16),A=a(50);var M=function(e){var t=e.BACKENDURL,a=e.LOGGEDINUSER,s=e.LOGGEDINHASH,c=Object(i.useState)(void 0),n=Object(d.a)(c,2),l=n[0],r=n[1],j=Object(i.useState)(void 0),b=Object(d.a)(j,2),o=b[0],h=b[1];return Object(i.useEffect)((function(){T.post(t+"/validUser",{username:a,password:s,recoveryhash:A.get("userID")}).then((function(e){e.data.verified&&(r(e.data.avatar),h(a))}))}),[t,a,s]),Object(f.jsx)("header",{children:Object(f.jsxs)("div",{className:"headerWrapper",children:[Object(f.jsx)("div",{className:"logo",children:Object(f.jsxs)("a",{href:".",children:[Object(f.jsx)("img",{alt:"",src:"/icons/logo_sm.png"}),"\u2003NGS",Object(f.jsx)("span",{children:"planner"})]})}),Object(f.jsxs)("div",{className:"navigation",children:[Object(f.jsxs)("ul",{children:[Object(f.jsx)("li",{className:"headerMenuItem",children:Object(f.jsx)("a",{href:".",children:"Builds"})}),Object(f.jsx)("li",{className:"headerMenuItem",children:Object(f.jsx)("a",{href:".",children:"Guides"})}),Object(f.jsx)("li",{className:"headerMenuItem",children:Object(f.jsx)("a",{href:".",children:"Blog"})}),Object(f.jsx)("li",{className:"headerMenuItem",children:Object(f.jsx)("a",{href:".",children:"About"})})]}),Object(f.jsx)("section",{className:"miniNav",children:Object(f.jsx)("a",{href:".",children:"\u2630"})})]}),Object(f.jsxs)("div",{className:"rightNav",children:[Object(f.jsx)("section",{className:"loginNav",children:Object(f.jsxs)("a",{href:".",children:[Object(f.jsx)("img",{alt:".",src:z(l)})," ",null!==o&&void 0!==o?o:"Guest"," \u2003 ",Object(f.jsx)("span",{className:"dotMenu",children:"\xb7\xb7\xb7"})]})}),Object(f.jsx)("section",{className:"miniNav",children:Object(f.jsx)("a",{href:".",children:Object(f.jsx)("img",{alt:".",src:z(l)})})})]})]})})},_=a(156),I=a(38),G=a.n(I),w=a(73);function R(e){var t;return Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)("span",{"data-tip":!0,"data-tip-disable":0===(null===(t=e.tooltip)||void 0===t?void 0:t.length),"data-for":e.id,children:e.children}),Object(f.jsx)(w.a,{id:e.id,className:"xTooltip",overridePosition:function(e,t,a,i){var s=e.left,c=e.top,n=document.documentElement;return s=Math.min(n.clientWidth-i.clientWidth,s),c=Math.min(n.clientHeight-i.clientHeight,c),s=Math.max(0,s),{top:c=Math.max(0,c),left:s}},children:e.tooltip})]})}function X(e){return Object(i.useEffect)((function(){var e=setTimeout((function(){document.getElementById("editBoxInput").focus(),document.getElementById("editBoxInput").select()}),100);return function(){clearTimeout(e)}}),[e.edit]),Object(f.jsx)("input",{id:"editBoxInput",type:e.type,max:"number"===e.type?20:void 0,min:"number"===e.type?1:void 0,onKeyDown:function(t){("Enter"===t.key||"Escape"===t.key)&&e.setEdit(!1)},maxLength:e.maxlength?e.maxlength:20,onBlur:function(){e.setEdit(!1)},value:e.value,onChange:function(t){t.currentTarget.value.length>0?e.setName(t.currentTarget.value):e.setName(e.originalName)}})}function W(e){var t=Object(i.useState)(!1),a=Object(d.a)(t,2),s=a[0],c=a[1];return Object(i.useEffect)((function(){e.callback&&e.callback()}),[s,e]),Object(f.jsx)(f.Fragment,{children:Object(f.jsx)("div",{className:s?"editBoxActive":"editBox",onClick:function(e){c(!0)},children:s?Object(f.jsx)(X,{edit:s,maxlength:e.maxlength,type:e.type,setEdit:c,originalName:e.data,setName:e.setData,value:e.data}):Object(f.jsxs)(f.Fragment,{children:[e.prefix,e.data]})})})}function Y(e){return Object(f.jsx)("li",{onClick:function(){e.onPageChange&&e.onPageChange(e.pageName),e.setCurrentPage(e.page)},className:e.currentPage===e.page?"selected":"unselected",children:e.pageDisplay?e.pageDisplay[e.page-1]:e.pageName?e.pageName:e.page})}function L(e){for(var t=[],a=0;a0&&Object(f.jsx)("ul",{className:"boxmenu",children:t.map((function(e,t){return Object(f.jsx)(s.a.Fragment,{children:e},t)}))})}function F(e){var t=e.GetData("class"),a=t[e.name];return"no data"!==t?a?Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)("img",{alt:"",src:""+a.icon}),a.name]}):Object(f.jsx)(f.Fragment,{}):Object(f.jsx)(f.Fragment,{children:"-"})}function B(e){return Object(f.jsx)(f.Fragment,{children:Object(f.jsx)("div",{className:"editClass",onClick:function(){e.setClassNameSetter(e.editClass),e.setClassSelectWindowOpen(!0)},children:Object(f.jsx)(F,{GetData:e.GetData,name:e.name})})})}function U(e){return Object(f.jsx)(G.a,{ariaHideApp:!1,isOpen:e.modalOpen,onRequestClose:function(){e.setModalOpen(!1)},shouldFocusAfterRender:!0,shouldCloseOnOverlayClick:!0,shouldCloseOnEsc:!0,className:"modal",overlayClassName:"modalOverlay",children:Object(f.jsxs)("div",{className:"box boxModal",children:[Object(f.jsxs)("div",{className:"boxTitleBar",children:[Object(f.jsx)("h1",{children:e.title}),e.showCloseButton&&Object(f.jsx)("div",{className:"boxExit",onClick:function(){e.setModalOpen(!1)}})]}),Object(f.jsx)(L,{onPageChange:e.onPageChange,pages:e.pageNames?e.pageNames.length:0,pageNames:e.pageNames,currentPage:e.page,setCurrentPage:e.setPage}),e.children]})})}function H(e){var t=e.onModalOpen,a=Object(i.useState)([]),c=Object(d.a)(a,2),n=c[0],l=c[1],r=Object(i.useState)(1),j=Object(d.a)(r,2),b=j[0],o=j[1],h=Object(i.useState)(e.sortItems?e.sortItems[0]:""),O=Object(d.a)(h,2),u=O[0],p=O[1],g=Object(i.useState)(""),m=Object(d.a)(g,2),x=m[0],v=m[1];return Object(i.useEffect)((function(){e.dataFunction&&l(e.dataFunction())}),[e]),Object(i.useEffect)((function(){t&&t(o)}),[t]),Object(f.jsxs)(U,{page:b,setPage:o,modalOpen:e.modalOpen,setModalOpen:e.setModalOpen,showCloseButton:!0,title:e.title,pageNames:e.pageNames,filter:!0,onPageChange:e.onPageChange,children:[(e.sortItems||e.filter)&&Object(f.jsxs)("div",{className:"itemBar",children:[Object(f.jsx)("div",{className:"itemBarSort",children:e.sortItems&&Object(f.jsx)("select",{className:"itemBarForm",value:u,onChange:function(e){p(e.currentTarget.value)},children:e.sortItems.map((function(e){return Object(f.jsx)("option",{value:e,children:e},e)}))})}),Object(f.jsx)("div",{className:"itemBarFilter",children:e.filter?Object(f.jsx)("input",{className:"itemBarForm",type:"text",placeholder:"Filter",value:x,onChange:function(e){v(e.currentTarget.value)}}):Object(f.jsx)(f.Fragment,{})})]}),Object(f.jsxs)("div",{className:"modalItemListContainer customScrollbar",children:[e.filter?n.filter((function(t){return e.filterFunction(b,t)})).filter((function(t){return e.searchFieldFunction(x,t)})).sort((function(t,a){return e.sortOrderFunction(u,t,a)})).map((function(t,a){return Object(f.jsx)(s.a.Fragment,{children:e.displayFunction(t)},a)})):n.map((function(t,a){return Object(f.jsx)(s.a.Fragment,{children:e.displayFunction(t)},a)})),e.children]})]})}function K(e){return Object(f.jsx)("span",Object(r.a)(Object(r.a)({},e),{},{className:"skillLeftButton"}))}function q(e){return Object(f.jsx)("span",Object(r.a)(Object(r.a)({},e),{},{className:"skillRightButton"}))}function V(e){var t=Object(i.useState)("Select Main Class"),a=Object(d.a)(t,2),s=a[0],c=a[1];return Object(i.useEffect)((function(){c(e.editClass?"Select Sub Class":"Select Main Class")}),[e.editClass]),Object(f.jsx)(H,{title:s,modalOpen:e.modalOpen,setModalOpen:e.setModalOpen,GetData:e.GetData,pageNames:["Main Class","Sub-Class"],onPageChange:function(t){"Main Class"===t?e.setEditClass(0):e.setEditClass(1)},onModalOpen:function(t){t(e.editClass?2:1)},dataFunction:function(){var t=e.GetData("class");return Object.keys(t)},displayFunction:function(t){return Object(f.jsxs)("li",{className:e.class===t?"treeListMain":e.subClass===t?"treeListSub":"",onClick:function(){0===e.editClass?(e.setClassName(t),e.setSubClassName(e.subClass===t?e.class:e.subClass)):(e.setSubClassName(t),e.setClassName(e.class===t?e.subClass:e.class)),e.setModalOpen(!1)},children:[Object(f.jsx)("img",{alt:"",src:z(e.GetData("class",t,"icon"))})," ",e.GetData("class",t,"name")]})}})}function J(e){var t;return void 0!==e[4]?(null===(t=e[4].special_name)||void 0===t?void 0:t.length)>0?e[4].special_name:e[1].name+" "+e[0].name:Object(f.jsx)(f.Fragment,{children:Object(f.jsx)("span",{style:{fontStyle:"italic"},children:"Select Weapon"})})}function Q(e){return Object(f.jsxs)("div",{className:e.className,style:{gridArea:(t=Number(e.skill[0]),a=Number(e.skill[1]),String.fromCharCode(Number(t)+"a".charCodeAt(0))+(a/2+1))},children:[Object(f.jsx)("img",{className:"skillIcon",alt:"",src:z(e.GetData("class_skill",e.skill[2],"icon",!0))}),Object(f.jsx)("span",{className:"skillAllocated",children:(e.skillPointData[e.page-1][e.boxId]?e.skillPointData[e.page-1][e.boxId]:0)+"/"+e.maxPoints}),Object(f.jsx)("em",{className:"skillName",children:"string"===typeof e.GetData("class_skill",e.skill[2],"name",!0)&&e.GetData("class_skill",e.skill[2],"name",!0)}),Object(f.jsxs)("div",{className:"skillButtons",children:[Object(f.jsx)(K,{onClick:function(){var t=Object(x.a)(e.points),a=Object(x.a)(e.skillPointData);a[e.page-1][e.boxId]||(a[e.page-1][e.boxId]=0),a[e.page-1][e.boxId]>0&&(t[e.page-1]-=1,a[e.page-1][e.boxId]-=1,e.setPoints(t),e.setSkillPointData(a))}}),Object(f.jsx)(q,{onClick:function(){var t=Object(x.a)(e.points),a=Object(x.a)(e.skillPointData);a[e.page-1][e.boxId]||(a[e.page-1][e.boxId]=0),a[e.page-1][e.boxId]i&&(i=c.level)}return i}return Object(f.jsx)(f.Fragment,{children:e.skillTreeSkillData&&e.skillTreeSkillData.map((function(a,i){var s=a.split(",");return""!==s[0]&&""!==s[1]&&""!==s[2]&&Object(f.jsx)(Q,{className:(s[2],e.skillPointData[e.page-1][s[0]+"_"+s[1]]===t(s[2])?"skillMaxed":e.skillPointData[e.page-1][s[0]+"_"+s[1]]>0?"skillActive":""),boxId:s[0]+"_"+s[1],skillPointData:e.skillPointData,setSkillPointData:e.setSkillPointData,page:e.page,cl:e.cl,maxPoints:t(s[2]),points:e.points,setPoints:e.setPoints,GetData:e.GetData,skill:s.map((function(e){return Number(e)}))},i)}))})}function $(e){var t=e.GetData,a=Object(i.useState)([]),s=Object(d.a)(a,2),c=s[0],n=s[1],r=Object(i.useState)([]),j=Object(d.a)(r,2),b=j[0],o=j[1],h=Object(i.useState)(""),O=Object(d.a)(h,2),u=O[0],p=O[1],g=Object(i.useState)(3),m=Object(d.a)(g,2),x=m[0],S=m[1],N=Object(i.useState)(6),y=Object(d.a)(N,2),k=y[0],D=y[1],C=Object(i.useState)(6),E=Object(d.a)(C,2),P=E[0],z=E[1],T=Object(i.useState)(171),A=Object(d.a)(T,2),M=A[0],_=A[1],I=Object(i.useState)(148),G=Object(d.a)(I,2),w=G[0],R=G[1],X=Object(i.useState)(10),W=Object(d.a)(X,2),Y=W[0],L=W[1],F=Object(i.useState)(48),B=Object(d.a)(F,2),U=B[0],H=B[1],K=Object(i.useState)(60),q=Object(d.a)(K,2),V=q[0],J=q[1];return Object(i.useEffect)((function(){if(Object.keys(t("skill_tree_data")).length>1){var a,i=Object(l.a)(t("skill_tree_data"));try{for(i.s();!(a=i.n()).done;){var s=a.value;if(s.class_id===t("class",e.cl,"id")){var c=s.data.split(","),r=s.skill_data.split(";");n(c),o(r),p(s.line_color),S(s.line_width),D(c[0].length),z(c.length),_(s.gridsizex),R(s.gridsizey),L(s.gridpaddingx),H(s.gridpaddingy),J(s.halflineheight);break}}}catch(j){i.e(j)}finally{i.f()}}}),[e.cl,t]),Object(f.jsx)("div",{className:"skillTreeContainer customScrollbar",children:Object(f.jsxs)("div",{style:{position:"relative"},children:[Object(f.jsx)(v,{style:{position:"absolute"},strokeStyle:u,lineWidth:x,lineDash:[],gridDimensionsX:k,gridDimensionsY:P,gridSizeX:M,gridSizeY:w,gridPaddingX:Y,gridPaddingY:U,skillLines:c,halflineheight:V}),Object(f.jsx)("div",{className:"skillTreeGrid",children:Object(f.jsx)(Z,{skillPointData:e.skillPointData,setSkillPointData:e.setSkillPointData,page:e.page,points:e.points,cl:e.cl,setPoints:e.setPoints,GetData:e.GetData,skillTreeSkillData:b})})]})})}var ee=function(e){var t,a,c=Object(C.h)().BUILDID,n=Object(C.f)(),l=Object(C.g)(),r=e.GetData,j=e.LOGGEDINUSER,b=e.LOGGEDINHASH,o=e.BACKENDURL,O=e.APP_TITLE,u=Object(i.useState)(1e3),p=Object(d.a)(u,2),g=p[0],m=p[1],x=Object(i.useState)(1e3),v=Object(d.a)(x,2),S=v[0],N=v[1],k=Object(i.useState)(1e3),D=Object(d.a)(k,2),E=D[0],P=D[1],T=Object(i.useState)(1e3),A=Object(d.a)(T,2),M=A[0],I=A[1],w=Object(i.useState)(1e3),X=Object(d.a)(w,2),Y=X[0],F=X[1],U=Object(i.useState)("Player"),K=Object(d.a)(U,2),q=K[0],Q=K[1],Z=Object(i.useState)("Character"),ee=Object(d.a)(Z,2),te=ee[0],ae=ee[1],ie=Object(i.useState)("Ranger"),se=Object(d.a)(ie,2),ce=se[0],ne=se[1],le=Object(i.useState)("Force"),re=Object(d.a)(le,2),je=re[0],de=re[1],be=Object(i.useState)(20),oe=Object(d.a)(be,2),he=oe[0],Oe=oe[1],ue=Object(i.useState)(20),pe=Object(d.a)(ue,2),ge=pe[0],me=pe[1],xe=Object(i.useState)(1),fe=Object(d.a)(xe,2),ve=fe[0],Se=fe[1],Ne=Object(i.useState)(1),ye=Object(d.a)(Ne,2),ke=ye[0],De=ye[1],Ce=Object(i.useState)(1),Ee=Object(d.a)(Ce,2),Pe=Ee[0],ze=Ee[1],Te=Object(i.useState)(!1),Ae=Object(d.a)(Te,2),Me=Ae[0],_e=Ae[1],Ie=Object(i.useState)(!1),Ge=Object(d.a)(Ie,2),we=Ge[0],Re=Ge[1],Xe=Object(i.useState)(!1),We=Object(d.a)(Xe,2),Ye=We[0],Le=We[1],Fe=Object(i.useState)(1),Be=Object(d.a)(Fe,2),Ue=Be[0],He=Be[1],Ke=Object(i.useState)(!1),qe=Object(d.a)(Ke,2),Ve=qe[0],Je=qe[1],Qe=Object(i.useState)(!1),Ze=Object(d.a)(Qe,2),$e=Ze[0],et=Ze[1],tt=Object(i.useState)([]),at=Object(d.a)(tt,2),it=at[0],st=at[1],ct=Object(i.useState)([]),nt=Object(d.a)(ct,2),lt=nt[0],rt=nt[1],jt=Object(i.useState)([]),dt=Object(d.a)(jt,2),bt=dt[0],ot=dt[1],ht=Object(i.useState)([]),Ot=Object(d.a)(ht,2),ut=Ot[0],pt=Ot[1],gt=Object(i.useState)(1),mt=Object(d.a)(gt,2),xt=mt[0],ft=mt[1],vt=Object(i.useState)(0),St=Object(d.a)(vt,2),Nt=St[0],yt=St[1],kt=Object(i.useState)([]),Dt=Object(d.a)(kt,2),Ct=Dt[0],Et=Dt[1],Pt=Object(i.useState)([]),zt=Object(d.a)(Pt,2),Tt=zt[0],At=zt[1];function Mt(e){return void 0!==e&&void 0!==e.rarity?" r"+e.rarity:""}return Object(i.useEffect)((function(){e.bp>1e3?(m(3e3),N(3e3),P(3e3),I(3e3),F(3e3)):(m(1e3),N(1e3),P(1e3),I(1e3),F(1e3))}),[e.bp]),Object(i.useEffect)((function(){for(var e=Object.keys(r("class")),t=[],a=[],i=0;i0)||(t[1].name.toLowerCase()+" "+t[0].name.toLowerCase()).includes(e.toLowerCase())},sortOrderFunction:function(e,t,a){switch(e){case"Rarity":return a[1].rarity-t[1].rarity;case"Attack":return a[1].atk-t[1].atk;default:return 0}},displayFunction:function(e){var t;return Object(f.jsxs)("div",{className:"itemWrapper r"+e[1].rarity,onClick:function(){st(e),Je(!1)},children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z(null===(t=e[4])||void 0===t?void 0:t.icon)})}),Object(f.jsx)("div",{className:"itemNameWrapper rifle",children:J(e)}),Object(f.jsx)("div",{className:"itemRarityWrapper",children:"\xa0"}),Object(f.jsxs)("div",{className:"itemPropertiesWrapper",children:[Object(f.jsx)("span",{className:"atk",children:e[1].atk}),Object(f.jsx)(R,{id:"mouseover-tooltip"+e[0].id+"_"+e[1].id+"_"+e[2].id+"_"+e[3].id,tooltip:Object(f.jsx)(f.Fragment,{children:e[3].map((function(e,t){return Object(f.jsxs)(s.a.Fragment,{children:[0!==t&&Object(f.jsx)("br",{}),e.name,": ",e.description?e.description.split("\\n").map((function(e,t){return Object(f.jsxs)(s.a.Fragment,{children:[e,Object(f.jsx)("br",{})," "]},t)})):Object(f.jsx)(s.a.Fragment,{},t)]},t)}))}),children:Object(f.jsx)("span",{className:"pot",children:e[2].name})})]})]})}}),Object(f.jsx)(H,{title:"Armor Selection - Slot "+xt,modalOpen:$e,setModalOpen:et,GetData:e.GetData,pageNames:[],sortItems:["Standard Sort","Rarity","HP","PP","Melee Potency","Range Potency","Tech Potency"],filter:!0,dataFunction:function(){var t=e.GetData("armor");return"object"===typeof t&&null!==t?Object.keys(t).map((function(e){return t[e]})):[]},filterFunction:function(e,t){return t.slot===xt},searchFieldFunction:function(e,t){return!(e.length>0)||t.name.toLowerCase().includes(e.toLowerCase())},sortOrderFunction:function(e,t,a){switch(e){case"Rarity":return a.rarity-t.rarity;case"HP":return a.hp-t.hp;case"PP":return a.pp-t.pp;case"Melee Potency":return a.mel_dmg-t.mel_dmg;case"Range Potency":return a.rng_dmg-t.rng_dmg;case"Tech Potency":return a.tec_dmg-t.tec_dmg;default:return 0}},displayFunction:function(e){return Object(f.jsxs)("div",{className:"itemWrapper r"+e.rarity,onClick:function(){switch(xt){case 1:rt(e);break;case 2:ot(e);break;case 3:pt(e);break;default:rt(e)}et(!1)},children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z(null===e||void 0===e?void 0:e.icon)})}),Object(f.jsx)("div",{className:"itemNameWrapper rifle",children:e.name}),Object(f.jsx)("div",{className:"itemRarityWrapper",style:{gridArea:"rarity"},children:"\xa0"}),Object(f.jsx)("div",{className:"itemPropertiesWrapper",children:Object(f.jsx)("span",{className:"atk",children:e.def})})]})}}),Object(f.jsxs)(H,{title:"Food Menu",modalOpen:Me,setModalOpen:_e,GetData:e.GetData,children:[Object(f.jsxs)("div",{className:"itemWrapperActive r1",children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z("icons/food/aelio_meat.png")})}),Object(f.jsx)("div",{className:"itemNameWrapper meat",children:"XXXL Super Duper Extra Crispy Delicious Sweet Mouth-Watering Meat"}),Object(f.jsx)("div",{className:"itemRarityWrapper",children:"\xa0"}),Object(f.jsxs)("div",{className:"itemPropertiesWrapper",children:[Object(f.jsx)("span",{className:"atk",children:"9999"}),Object(f.jsx)("span",{className:"pot",children:"Indomitable Unit"})]}),Object(f.jsxs)("div",{className:"itemControlsWrapper",children:[Object(f.jsx)("span",{children:"-"}),Object(f.jsx)("span",{children:"0"}),Object(f.jsx)("span",{children:"+"})]})]}),Object(f.jsxs)("div",{className:"itemWrapper r2",children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z("icons/food/light_aelio_mushroom.png")})}),Object(f.jsx)("div",{className:"itemNameWrapper meat",children:"Potato 2"}),Object(f.jsx)("div",{className:"itemRarityWrapper",children:"\xa0"}),Object(f.jsxs)("div",{className:"itemPropertiesWrapper",children:[Object(f.jsx)("span",{className:"atk",children:"9999"}),Object(f.jsx)("span",{className:"pot",children:"Indomitable Unit"})]}),Object(f.jsxs)("div",{className:"itemControlsWrapper",children:[Object(f.jsx)("span",{children:"-"}),Object(f.jsx)("span",{children:"0"}),Object(f.jsx)("span",{children:"+"})]})]}),Object(f.jsxs)("div",{className:"itemWrapperActive r3",children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z("icons/food/robust_aelio_lobster.png")})}),Object(f.jsx)("div",{className:"itemNameWrapper meat",children:"Dog with Claws"}),Object(f.jsx)("div",{className:"itemRarityWrapper",children:"\xa0"}),Object(f.jsxs)("div",{className:"itemPropertiesWrapper",children:[Object(f.jsx)("span",{className:"atk",children:"9999"}),Object(f.jsx)("span",{className:"pot",children:"Indomitable Unit"})]}),Object(f.jsxs)("div",{className:"itemControlsWrapper",children:[Object(f.jsx)("span",{children:"-"}),Object(f.jsx)("span",{children:"0"}),Object(f.jsx)("span",{children:"+"})]})]}),Object(f.jsxs)("div",{className:"itemWrapperActive r4",children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z("icons/food/light_aelio_turban_shell.png")})}),Object(f.jsx)("div",{className:"itemNameWrapper meat",children:"If you put your ear to it you can hear the PSO2 lobby music"}),Object(f.jsx)("div",{className:"itemRarityWrapper",children:"\xa0"}),Object(f.jsxs)("div",{className:"itemPropertiesWrapper",children:[Object(f.jsx)("span",{className:"atk",children:"9999"}),Object(f.jsx)("span",{className:"pot",children:"Indomitable Unit"})]}),Object(f.jsxs)("div",{className:"itemControlsWrapper",children:[Object(f.jsx)("span",{children:"-"}),Object(f.jsx)("span",{children:"0"}),Object(f.jsx)("span",{children:"+"})]})]}),Object(f.jsxs)("div",{className:"itemWrapper r1",children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z("icons/food/aelio_meat.png")})}),Object(f.jsx)("div",{className:"itemNameWrapper meat",children:"XXXL Super Duper Extra Crispy Delicious Sweet Mouth-Watering Meat"}),Object(f.jsx)("div",{className:"itemRarityWrapper",children:"\xa0"}),Object(f.jsxs)("div",{className:"itemPropertiesWrapper",children:[Object(f.jsx)("span",{className:"atk",children:"9999"}),Object(f.jsx)("span",{className:"pot",children:"Indomitable Unit"})]}),Object(f.jsxs)("div",{className:"itemControlsWrapper",children:[Object(f.jsx)("span",{children:"-"}),Object(f.jsx)("span",{children:"0"}),Object(f.jsx)("span",{children:"+"})]})]}),Object(f.jsxs)("div",{className:"itemWrapper r2",children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z("icons/food/light_aelio_mushroom.png")})}),Object(f.jsx)("div",{className:"itemNameWrapper meat",children:"Potato 2"}),Object(f.jsx)("div",{className:"itemRarityWrapper",children:"\xa0"}),Object(f.jsxs)("div",{className:"itemPropertiesWrapper",children:[Object(f.jsx)("span",{className:"atk",children:"9999"}),Object(f.jsx)("span",{className:"pot",children:"Indomitable Unit"})]}),Object(f.jsxs)("div",{className:"itemControlsWrapper",children:[Object(f.jsx)("span",{children:"-"}),Object(f.jsx)("span",{children:"0"}),Object(f.jsx)("span",{children:"+"})]})]}),Object(f.jsxs)("div",{className:"itemWrapper r3",children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z("icons/food/robust_aelio_lobster.png")})}),Object(f.jsx)("div",{className:"itemNameWrapper meat",children:"Dog with Claws"}),Object(f.jsx)("div",{className:"itemRarityWrapper",children:"\xa0"}),Object(f.jsxs)("div",{className:"itemPropertiesWrapper",children:[Object(f.jsx)("span",{className:"atk",children:"9999"}),Object(f.jsx)("span",{className:"pot",children:"Indomitable Unit"})]}),Object(f.jsxs)("div",{className:"itemControlsWrapper",children:[Object(f.jsx)("span",{children:"-"}),Object(f.jsx)("span",{children:"0"}),Object(f.jsx)("span",{children:"+"})]})]}),Object(f.jsxs)("div",{className:"itemWrapper r4",children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z("icons/food/light_aelio_turban_shell.png")})}),Object(f.jsx)("div",{className:"itemNameWrapper meat",children:"If you put your ear to it you can hear the PSO2 lobby music"}),Object(f.jsx)("div",{className:"itemRarityWrapper",children:"\xa0"}),Object(f.jsxs)("div",{className:"itemPropertiesWrapper",children:[Object(f.jsx)("span",{className:"atk",children:"9999"}),Object(f.jsx)("span",{className:"pot",children:"Indomitable Unit"})]}),Object(f.jsxs)("div",{className:"itemControlsWrapper",children:[Object(f.jsx)("span",{children:"-"}),Object(f.jsx)("span",{children:"0"}),Object(f.jsx)("span",{children:"+"})]})]}),Object(f.jsxs)("div",{className:"itemWrapper r1",children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z("icons/food/aelio_meat.png")})}),Object(f.jsx)("div",{className:"itemNameWrapper meat",children:"XXXL Super Duper Extra Crispy Delicious Sweet Mouth-Watering Meat"}),Object(f.jsx)("div",{className:"itemRarityWrapper",children:"\xa0"}),Object(f.jsxs)("div",{className:"itemPropertiesWrapper",children:[Object(f.jsx)("span",{className:"atk",children:"9999"}),Object(f.jsx)("span",{className:"pot",children:"Indomitable Unit"})]}),Object(f.jsxs)("div",{className:"itemControlsWrapper",children:[Object(f.jsx)("span",{children:"-"}),Object(f.jsx)("span",{children:"0"}),Object(f.jsx)("span",{children:"+"})]})]}),Object(f.jsxs)("div",{className:"itemWrapper r2",children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z("icons/food/light_aelio_mushroom.png")})}),Object(f.jsx)("div",{className:"itemNameWrapper meat",children:"Potato 2"}),Object(f.jsx)("div",{className:"itemRarityWrapper",children:"\xa0"}),Object(f.jsxs)("div",{className:"itemPropertiesWrapper",children:[Object(f.jsx)("span",{className:"atk",children:"9999"}),Object(f.jsx)("span",{className:"pot",children:"Indomitable Unit"})]}),Object(f.jsxs)("div",{className:"itemControlsWrapper",children:[Object(f.jsx)("span",{children:"-"}),Object(f.jsx)("span",{children:"0"}),Object(f.jsx)("span",{children:"+"})]})]}),Object(f.jsxs)("div",{className:"itemWrapper r3",children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z("icons/food/robust_aelio_lobster.png")})}),Object(f.jsx)("div",{className:"itemNameWrapper meat",children:"Dog with Claws"}),Object(f.jsx)("div",{className:"itemRarityWrapper",children:"\xa0"}),Object(f.jsxs)("div",{className:"itemPropertiesWrapper",children:[Object(f.jsx)("span",{className:"atk",children:"9999"}),Object(f.jsx)("span",{className:"pot",children:"Indomitable Unit"})]}),Object(f.jsxs)("div",{className:"itemControlsWrapper",children:[Object(f.jsx)("span",{children:"-"}),Object(f.jsx)("span",{children:"0"}),Object(f.jsx)("span",{children:"+"})]})]}),Object(f.jsxs)("div",{className:"itemWrapper r4",children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z("icons/food/light_aelio_turban_shell.png")})}),Object(f.jsx)("div",{className:"itemNameWrapper meat",children:"If you put your ear to it you can hear the PSO2 lobby music"}),Object(f.jsx)("div",{className:"itemRarityWrapper",children:"\xa0"}),Object(f.jsxs)("div",{className:"itemPropertiesWrapper",children:[Object(f.jsx)("span",{className:"atk",children:"9999"}),Object(f.jsx)("span",{className:"pot",children:"Indomitable Unit"})]}),Object(f.jsxs)("div",{className:"itemControlsWrapper",children:[Object(f.jsx)("span",{children:"-"}),Object(f.jsx)("span",{children:"0"}),Object(f.jsx)("span",{children:"+"})]})]})]})]})},te=a(22),ae=a.n(te),ie=a(50),se=a(16),ce=a(120),ne=Object({NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}).REACT_APP_GITPOD_WORKSPACE_URL||Object({NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}).REACT_APP_BACKENDURL||"https://projectdivar.com:4504",le="NGS Planner";function re(e){return ne+(e.TESTMODE?"/test":"")}function je(e){return Object(f.jsx)(f.Fragment,{children:Object(f.jsxs)("div",{className:"box",children:[Object(f.jsx)("div",{className:"boxTitleBar",children:Object(f.jsx)("h1",{children:e.title})}),e.children]})})}function de(e){return Object(f.jsx)("span",{className:e.classes,children:e.children})}function be(e){var t=Object(i.useState)(e.value),a=Object(d.a)(t,2),s=a[0],c=a[1],n=Object(i.useState)(!1),l=Object(d.a)(n,2),r=l[0],j=l[1],b=Object(i.useState)(!1),o=Object(d.a)(b,2),h=o[0],O=o[1];function u(t){c(t.currentTarget.value),e.callback4&&e.callback4(t.currentTarget.value)}function p(t){e.callback?(O(!0),j(!1),e.callback(t.currentTarget.value).then((function(){j(!1)})).catch((function(){j(!0)})).then((function(){O(!1)}))):e.callback3&&e.callback3(t.currentTarget.value)}function g(t){e.callback2&&e.callback2(t,s)}return e.data?Object(f.jsxs)("select",{disabled:e.lockSubmission,className:r?"failedInput":h?"submitting":"",value:s,onKeyDown:function(e){g(e)},onChange:function(e){u(e)},onBlur:function(e){p(e)},children:[e.includeBlankValue&&Object(f.jsx)("option",{}),e.data.map((function(e){return Object(f.jsxs)("option",{value:e.id,children:[e.id," - ",e.name||e.username]},e.id)}))]}):Object(f.jsx)("input",{disabled:e.lockSubmission,className:r?"failedInput":h?"submitting":"",value:s,onKeyDown:function(e){g(e)},onChange:function(e){u(e)},onBlur:function(e){p(e)}})}function oe(e){var t={},a=e.TESTMODE;var c=Object(i.useState)([]),n=Object(d.a)(c,2),b=n[0],o=n[1],h=Object(i.useState)([]),p=Object(d.a)(h,2),g=p[0],m=p[1],x=Object(i.useState)(!1),v=Object(d.a)(x,2),S=v[0],N=v[1],y=Object(i.useReducer)((function(e,a){return"Clear"===a?t:(e[a.field]=a.value,e)}),t),k=Object(d.a)(y,2),D=k[0],C=k[1],E=Object(i.useState)(!1),P=Object(d.a)(E,2),z=P[0],T=P[1],A=Object(i.useState)([]),M=Object(d.a)(A,2),_=M[0],I=M[1],G=Object(i.useState)(!1),w=Object(d.a)(G,2),R=w[0],X=w[1],W=Object(i.useState)(!1),Y=Object(d.a)(W,2),L=Y[0],F=Y[1];return Object(i.useEffect)((function(){N(!0)}),[e.path,a]),Object(i.useEffect)((function(){var e,t=Object(l.a)(b);try{for(t.s();!(e=t.n()).done;){if("name"===e.value.name){X(!0);break}}}catch(a){t.e(a)}finally{t.f()}}),[b]),Object(i.useEffect)((function(){if(S){T(!0);var t={};se.get(e.BACKENDURL+e.path+"?pass="+e.password).then((function(a){var i=a.data.fields,s=a.data.rows;o(i.filter((function(e,t){return"id"!==e.name&&!(0===t&&"name"===e.name)})));var c=[];return i.filter((function(e){return"id"!==e.name&&e.name.includes("_id")})).forEach((function(a){c.push(se.get(e.BACKENDURL+"/"+a.name.replace("_id","")+"?pass="+e.password).then((function(e){t[a.name]=e.data.rows.sort((function(e,t){return t.id-e.id}))})))})),m(s),Promise.allSettled(c)})).then((function(){I(t),T(!1)})),N(!1)}}),[S,e.path,e.BACKENDURL,e.password]),Object(f.jsx)(f.Fragment,{children:z?Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""})]}):Object(f.jsxs)(f.Fragment,{children:[" ",R&&Object(f.jsxs)("caption",{children:[Object(f.jsx)("label",{className:"buttonLabel",htmlFor:"uploads",children:"Import CSV"}),Object(f.jsx)("input",{onChange:function(t){var a=new FileReader;a.onload=function(t){var a=[];ce(t.target.result,{columns:!0,skip_empty_lines:!0}).forEach((function(t){var i,s=Object(l.a)(b);try{for(s.s();!(i=s.n()).done;){var c=i.value;23!==c.dataTypeID&&701!==c.dataTypeID&&16!==c.dataTypeID||""!==t[c.name]||(t[c.name]=0)}}catch(n){s.e(n)}finally{s.f()}a.push(se.post(e.BACKENDURL+e.path,Object(r.a)(Object(r.a)({},t),{},{pass:e.password})))})),Promise.allSettled(a).then((function(){N(!0)}))},a.readAsText(t.target.files[0])},style:{opacity:0},id:"uploads",type:"file",accept:".txt,.csv"})]}),Object(f.jsx)("div",{children:Object(f.jsxs)("table",{children:[Object(f.jsx)("thead",{children:Object(f.jsxs)("tr",{children:[Object(f.jsx)("th",{className:"table-padding",children:Object(f.jsx)(O.a,{onClick:function(){!function(){if(!L){F(!0);var t,a=[],i=Object(l.a)(g);try{for(i.s();!(t=i.n()).done;){var s=t.value;document.getElementById("delete_"+s.id).checked&&a.push(se.delete(e.BACKENDURL+e.path,{data:{pass:e.password,id:s.id}}))}}catch(c){i.e(c)}finally{i.f()}Promise.allSettled(a).catch((function(e){alert(e.message)})).then((function(e){F(!1),N(!0)}))}}()},className:"trashButton"})}),b.map((function(e,t){return Object(f.jsx)(s.a.Fragment,{children:Object(f.jsx)("th",{scope:"col",className:"table-padding",children:e.name})},t)}))]})}),Object(f.jsxs)("tbody",{children:[Object(f.jsxs)("tr",{children:[Object(f.jsx)("td",{}),b.map((function(e,t){return Object(f.jsx)("td",{children:Object(f.jsx)(be,{includeBlankValue:!0,data:_[e.name],callback4:function(t){C({field:e.name,value:t})}})},t)})),Object(f.jsxs)("td",{children:[Object(f.jsx)("input",{style:{display:"none"}}),Object(f.jsx)(u.a,{onClick:function(){L||(F(!0),se.post(e.BACKENDURL+e.path,Object(r.a)(Object(r.a)({},D),{},{pass:e.password})).then((function(){C("Clear"),N(!0)})).catch((function(e){alert(JSON.stringify(e.response.data))})).then((function(){F(!1)})))},className:"submitbutton"})]})]}),g.map((function(t){return Object(f.jsxs)("tr",{children:[Object(f.jsx)("td",{children:Object(f.jsx)("input",{id:"delete_"+t.id,type:"checkbox"})}),b.map((function(a,i){return Object(f.jsx)("td",{className:"table-padding table",children:Object(f.jsx)(be,{lockSubmission:L,data:_[a.name],callback:function(i){return function(e,t,a,i){var s;return se.patch(t.BACKENDURL+t.path,(s={},Object(j.a)(s,a.name,"null"===e?null:e),Object(j.a)(s,"id",i.id),Object(j.a)(s,"pass",t.password),s))}(i,e,a,t)},callback2:function(e,t){if("Enter"!==e.key)return"Chill";e.currentTarget.blur()},value:String(t[a.name])})},t.id+"_"+i)}))]},t.id)}))]})]})})]})})}function he(e){var t=Object(i.useState)(!0),a=Object(d.a)(t,2),c=a[0],n=a[1],l=Object(i.useState)(Object(f.jsx)("span",{style:{color:"black"}})),r=Object(d.a)(l,2),j=r[0],b=r[1],o=Object(i.useState)([]),h=Object(d.a)(o,2),O=h[0],u=h[1],x=Object(i.useState)(!0),v=Object(d.a)(x,2),S=v[0],N=v[1];return Object(i.useEffect)((function(){S&&(se.get(e.BACKENDURL+"/databases?pass="+e.password).then((function(e){u(e.data)})).catch((function(e){console.log(e.message)})).then((function(){n(!1)})),N(!1))}),[S,e.BACKENDURL,e.password]),Object(f.jsxs)(f.Fragment,{children:[c?Object(f.jsx)("img",{src:"/spinner.gif",alt:""}):Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)("button",{className:"basichover",style:{backgroundColor:"navy"},onClick:function(){n(!0),b(Object(f.jsx)("span",{style:{color:"black"},children:"Uploading Test Database to Production..."})),se.post(e.BACKENDURL+"/databases/testtolive",{pass:e.password}).then((function(){b(Object(f.jsx)("span",{style:{color:"green"},children:"Success! Test Database is now live!"}))})).catch((function(e){b(Object(f.jsx)("span",{style:{color:"red"},children:e.message}))})).then((function(){n(!1)}))},children:"Apply TEST Database to LIVE Database"}),Object(f.jsx)("br",{}),Object(f.jsx)("br",{}),Object(f.jsx)("button",{className:"basichover",style:{backgroundColor:"maroon"},onClick:function(){n(!0),b(Object(f.jsx)("span",{style:{color:"black"},children:"Restoring Test Database using Live Database..."})),se.post(e.BACKENDURL+"/databases/livetotest",{pass:e.password}).then((function(){b(Object(f.jsx)("span",{style:{color:"green"},children:"Success! Live Database has been applied to the Test Database!"}))})).catch((function(e){b(Object(f.jsx)("span",{style:{color:"red"},children:e.message}))})).then((function(){n(!1)}))},children:"Reset TEST database using current LIVE Database"}),Object(f.jsx)("br",{}),Object(f.jsx)("br",{}),Object(f.jsx)("button",{className:"basichover",style:{backgroundColor:"darkgreen"},onClick:function(){n(!0),b(Object(f.jsx)("span",{style:{color:"black"},children:"Backing up the Live database..."})),se.post(e.BACKENDURL+"/databases/backup",{pass:e.password}).then((function(){b(Object(f.jsx)("span",{style:{color:"green"},children:"Success! Live Database has been saved!"}))})).catch((function(e){b(Object(f.jsx)("span",{style:{color:"red"},children:e.message}))})).then((function(){N(!0)}))},children:"Backup current LIVE Database"}),Object(f.jsx)("br",{}),Object(f.jsx)("br",{})]}),j,Object(f.jsx)("hr",{}),Object(f.jsx)("br",{}),Object(f.jsx)("br",{}),Object(f.jsx)("h2",{children:Object(f.jsx)("u",{children:"Current Databases"})}),Object(f.jsx)("br",{}),Object(f.jsx)("br",{}),Object(f.jsxs)("span",{style:{fontSize:"24px",top:"-16px",position:"relative",height:"64px",lineHeight:"64px",textAlign:"center"},children:[Object(f.jsx)(p.a,{className:"databaseIcon",style:{color:"green"}}),"Live Database"]}),"\xa0\xa0\xa0",Object(f.jsxs)("span",{style:{fontSize:"24px",top:"-16px",position:"relative",height:"64px",lineHeight:"64px",textAlign:"center"},children:[Object(f.jsx)(p.a,{className:"databaseIcon",style:{color:"red"}}),"Test Database"]}),Object(f.jsx)("br",{}),O.map((function(t,a){var i="";if("ngsplanner"!==t.datname&&"ngsplanner2"!==t.datname){var c=t.datname.replace("ngsplanner",""),l=new Date(c.slice(0,4),c.slice(4,6),c.slice(6,8),c.slice(8,10),c.slice(10,12),c.slice(12,14));return i=Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)(g.a,{className:"databaseIcon",style:{color:"blue"}}),"Backup from "+l]}),Object(f.jsxs)(s.a.Fragment,{children:[Object(f.jsxs)("span",{style:{fontSize:"24px",top:"-16px",position:"relative",height:"64px",lineHeight:"64px",textAlign:"center"},children:[i,Object(f.jsxs)("button",{style:{background:"blue"},onClick:function(){n(!0),se.post(e.BACKENDURL+"/databases/restorefrombackup",{database:t.datname,pass:e.password}).then((function(e){b(Object(f.jsx)("span",{style:{color:"green"},children:"Success! Database has been set to the state from "+l}))})).catch((function(e){b(Object(f.jsx)("span",{style:{color:"red"},children:e.message}))})).then((function(){n(!1)}))},children:[Object(f.jsx)(m.a,{})," Restore"]})]}),Object(f.jsx)("br",{})]},a)}return Object(f.jsx)(s.a.Fragment,{},a)}))]})}function Oe(e){var t=Object(i.useState)(!1),a=Object(d.a)(t,2),c=a[0],n=a[1],l=Object(i.useState)(""),r=Object(d.a)(l,2),j=r[0],b=r[1],O=[{page:"Class",url:"/admin/class",table:"/class"},{page:"Class Data",url:"/admin/classdata",table:"/class_level_data"},{page:"Class-Weapon Compatibility",url:"/admin/classweaponcompatibility",table:"/class_weapon_type_data"},{page:"Class Skills",url:"/admin/classskills",table:"/class_skill"},{page:"Class Skill Data",url:"/admin/classskilldata",table:"/class_skill_data"},{hr:!0},{page:"Weapons",url:"/admin/weapons",table:"/weapon"},{page:"Weapon Existence Data",url:"/admin/weaponexistencedata",table:"/weapon_existence_data"},{page:"Weapon Types",url:"/admin/weapontypes",table:"/weapon_type"},{page:"Class-Weapon Compatibility",url:"/admin/classweaponcompatibility",table:"/class_weapon_type_data",duplicate:!0},{page:"Photon Arts",url:"/admin/photonarts",table:"/photon_art"},{hr:!0},{page:"Armor",url:"/admin/armor",table:"/armor"},{page:"Potentials",url:"/admin/potentials",table:"/potential"},{page:"Potential Data",url:"/admin/potentialdata",table:"/potential_data"},{hr:!0},{page:"Builds",url:"/admin/builds",table:"/builds"},{hr:!0},{page:"Skills",url:"/admin/skills",table:"/skill"},{page:"Skill Types",url:"/admin/skilltypes",table:"/skill_type"},{page:"Skill Data",url:"/admin/skilldata",table:"/skill_data"},{page:Object(f.jsx)("span",{style:{color:"gold"},children:"Skill Tree Editor"}),url:"/admin/skilltreeeditor",render:Object(f.jsx)(k,{setUpdate:e.setUpdate,password:j,BACKENDURL:re(e),GetData:e.DATA})},{page:"Skill Tree Data",url:"/admin/skilltreedata",table:"/skill_tree_data"},{page:"Photon Arts",url:"/admin/photonarts",table:"/photon_art",duplicate:!0},{page:"Class Skills",url:"/admin/classskills",table:"/class_skill",duplicate:!0},{page:"Class Skill Data",url:"/admin/classskilldata",table:"/class_skill_data",duplicate:!0},{hr:!0},{page:"Augment Types",url:"/admin/augmenttypes",table:"/augment_type"},{page:"Augments",url:"/admin/augments",table:"/augment"},{page:"Elements",url:"/admin/elements",table:"/element"},{hr:!0},{page:"Enemy Data",url:"/admin/enemydata",table:"/enemy_data"},{hr:!0},{page:"Food",url:"/admin/food",table:"/food"},{page:"Food Multipliers",url:"/admin/foodmultipliers",table:"/food_mult"},{hr:!0},{page:"Roles",url:"/admin/roles",table:"/roles"},{page:"Users",url:"/admin/users",table:"/users"},{hr:!0},{page:"Misc. Site Data",url:"/admin/sitedata",table:"/site_data"},{page:"Database Audit",url:"/admin/database_audit",table:"/database_audit"}];return Object(f.jsx)("div",{className:"adminMain",children:c?Object(f.jsxs)(f.Fragment,{children:[Object(f.jsxs)("div",{className:"box boxAdminNav",children:[Object(f.jsx)("div",{className:"boxTitleBar",children:Object(f.jsx)("h1",{children:"Navigation"})}),Object(f.jsxs)("p",{children:["Testing Mode ",Object(f.jsxs)("span",{children:[Object(f.jsx)(o.a,{checked:e.TESTMODE,onChange:function(t){e.setTESTMODE(t.target.checked)}})," ",e.TESTMODE?Object(f.jsx)("b",{children:"ON"}):Object(f.jsx)("b",{children:"OFF"})]})]}),Object(f.jsx)("div",{className:"adminNavContainer customScrollbar",children:Object(f.jsxs)(de,{classes:"adminNav",children:[O.map((function(e,t){return e.hr?Object(f.jsx)("hr",{},t):Object(f.jsxs)(s.a.Fragment,{children:[Object(f.jsx)(P.a,{to:""+e.url,children:e.page}),Object(f.jsx)("br",{})]},t)})),Object(f.jsx)(P.a,{to:"/admin/database_manager",children:"Database Manager"}),Object(f.jsx)("br",{})]})})]}),O.map((function(t,a){var i;return void 0===t.duplicate&&void 0===t.hr&&Object(f.jsx)(C.a,{path:""+t.url,children:Object(f.jsxs)("div",{className:"box boxAdminContent",children:[Object(f.jsx)("div",{className:"boxTitleBar",children:Object(f.jsx)("h1",{children:t.page})}),Object(f.jsxs)("div",{className:"adminContainer adminScrollbar",children:[Object(f.jsx)(h.a,{children:Object(f.jsx)("title",{children:"NGS Planner - Admin Panel: "+t.page})}),null!==(i=t.render)&&void 0!==i?i:Object(f.jsx)(oe,{TESTMODE:e.TESTMODE,password:j,BACKENDURL:re(e),path:t.table})]})]})},a)})),Object(f.jsx)(C.a,{path:"/admin/database_manager",children:Object(f.jsxs)("div",{className:"box boxAdminContent",children:[Object(f.jsx)("div",{className:"boxTitleBar",children:Object(f.jsx)("h1",{children:"Database Editor"})}),Object(f.jsx)("div",{className:"adminContainer",children:Object(f.jsx)(he,{password:j,BACKENDURL:re(e)})})]})})]}):Object(f.jsx)("div",{className:"modalOverlay",children:Object(f.jsx)("div",{className:"modal",children:Object(f.jsxs)("div",{className:"box boxAdmin",children:[Object(f.jsx)("div",{className:"boxTitleBar",children:Object(f.jsx)("h1",{children:"Admin"})}),Object(f.jsx)("p",{}),Object(f.jsx)("input",{type:"password",value:j,onChange:function(e){b(e.currentTarget.value)},onKeyDown:function(t){"Enter"===t.key&&se.post(re(e)+"/passwordcheck",{pass:j}).then((function(e){e.data.verified&&n(e.data.verified)})).catch((function(e){n(!1),b("")}))}})]})})})})}function ue(e){var t=Object(i.useState)(e.value),a=Object(d.a)(t,2),s=a[0],c=a[1];return Object(i.useEffect)((function(){c(e.value)}),[e.value]),Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)("input",{value:s,onChange:function(t){c(t.currentTarget.value),e.callback(t.currentTarget.value)}})," (",s,")",Object(f.jsx)("br",{})]})}function pe(e){var t=Object(i.useState)({}),a=Object(d.a)(t,2),s=a[0],c=a[1];Object(i.useEffect)((function(){se.get(e.BACKENDURL+"/augment").then((function(e){var t={};e.data.rows.forEach((function(e){t[e.name]=e})),c(t)}))}),[e.BACKENDURL]);var n={weapon:{augments:["1","2"]},armor1:{augments:["2"]},armor2:{augments:[]},armor3:{augments:[]}};Object(i.useEffect)((function(){if(Object.keys(s).length>0){for(var e=[{field:"variance",variable:0},{field:"mel_dmg",variable:0}],t=0,a=[n.weapon,n.armor1,n.armor2,n.armor3];t20)throw new Error("Username must be less than 21 characters in length.");if(j.length<6)throw new Error("Password must contain at least 6 characters.");if(j!==O)throw new Error("Password fields must match.");if(!m.includes("@"))throw new Error("Invalid E-mail.")}catch(a){var t;return P(null!==(t=null===a||void 0===a?void 0:a.message)&&void 0!==t?t:a),void M(!1)}se.post(re(e)+"/register",{username:s,password:ae()(j),email:m}).then((function(t){t.data.verified?(e.setLOGGEDINUSER(s),e.setLOGGEDINHASH(ae()(j)),c(""),b(""),y(!1)):P("Could not authenticate!")})).catch((function(e){var t;P(null!==(t=null===e||void 0===e?void 0:e.message)&&void 0!==t?t:e)})).then((function(){M(!1)}))},children:"Login"})]})})})}var ve=function(){var e=Object(i.useState)("Dudley"),t=Object(d.a)(e,1)[0],a=Object(i.useState)("Fatimah"),s=Object(d.a)(a,1)[0],c=Object(i.useState)("Ranger"),n=Object(d.a)(c,1)[0],l=Object(i.useState)("Force"),r=Object(d.a)(l,1)[0],j=Object(i.useState)(20),b=Object(d.a)(j,1)[0],o=Object(i.useState)(15),O=Object(d.a)(o,1)[0],u=Object(i.useState)(1330),p=Object(d.a)(u,1)[0],g=Object(i.useState)(388),m=Object(d.a)(g,1)[0],x=Object(i.useState)(154),v=Object(d.a)(x,1)[0],S=Object(i.useState)(282),N=Object(d.a)(S,1)[0],y=Object(i.useState)(650),k=Object(d.a)(y,1)[0],D=Object(i.useState)(282),P=Object(d.a)(D,2),z=P[0],T=P[1];Object(i.useEffect)((function(){T(Number(N)+Number(k))}),[N,k]);var A=Object(i.useState)(932),_=Object(d.a)(A,1)[0],I=Object(i.useState)(.317),G=Object(d.a)(I,1)[0],w=Object(i.useState)(.241),R=Object(d.a)(w,1)[0],X=Object(i.useState)(.241),W=Object(d.a)(X,1)[0],Y=Object(i.useState)(.18),L=Object(d.a)(Y,1)[0],F=Object(i.useState)(0),B=Object(d.a)(F,1)[0],U=Object(i.useState)(0),H=Object(d.a)(U,1)[0],K=Object(i.useState)(0),q=Object(d.a)(K,1)[0],V=Object(i.useState)(0),J=Object(d.a)(V,1)[0],Q=Object(i.useState)(0),Z=Object(d.a)(Q,1)[0],$=Object(i.useState)(0),te=Object(d.a)($,1)[0],ae=Object(i.useState)(0),ce=Object(d.a)(ae,1)[0],je=Object(i.useState)(!1),de=Object(d.a)(je,2),be=de[0],oe=de[1],he=Object(i.useState)(void 0),ue=Object(d.a)(he,2),ge=ue[0],me=ue[1],ve=Object(i.useState)({GetData:function(){}}),Se=Object(d.a)(ve,2),Ne=Se[0],ye=Se[1],ke=Object(i.useState)(!1),De=Object(d.a)(ke,2),Ce=De[0],Ee=De[1],Pe=Object(i.useState)(ie.get("username")),ze=Object(d.a)(Pe,2),Te=ze[0],Ae=ze[1],Me=Object(i.useState)(ie.get("password")),_e=Object(d.a)(Me,2),Ie=_e[0],Ge=_e[1],we="/test/:BUILDID",Re="/test";function Xe(e,t,a,i){void 0===t&&(t=""),void 0===a&&(a="");var s=i?Ne:ge;return s&&void 0!==s?void 0!==s[e]?void 0!==s[e][t]?void 0!==s[e][t][a]?s[e][t][a]:s[e][t]:s[e]:s:"no data"}return Object(i.useEffect)((function(){Ce&&(Ee(!1),se.get(re({TESTMODE:be})+"/data").then((function(e){me(e.data)})),se.get(re({TESTMODE:be})+"/dataid").then((function(e){ye(e.data)})))}),[Ce,be]),Object(i.useEffect)((function(){Ae(ie.get("username")),Ge(ie.get("password")),se.get(re({TESTMODE:be})+"/data").then((function(e){me(e.data)})),se.get(re({TESTMODE:be})+"/dataid").then((function(e){ye(e.data)}))}),[be]),Object(f.jsx)(f.Fragment,{children:Object(f.jsx)(E.a,{children:Object(f.jsxs)(C.c,{children:[Object(f.jsxs)(C.a,{path:"/admin",children:[Object(f.jsx)(h.a,{children:Object(f.jsx)("title",{children:"NGS Planner - Admin Panel"})}),Object(f.jsx)(Oe,{setUpdate:Ee,setTESTMODE:oe,BACKENDURL:ne,TESTMODE:be,DATA:Xe})]}),Object(f.jsxs)(C.a,{path:we,children:[Object(f.jsx)(M,{LOGGEDINUSER:Te,LOGGEDINHASH:Ie,BACKENDURL:re(ne)}),Object(f.jsx)(ee,{APP_TITLE:le,path:we,author:t,buildName:s,className:n,secondaryClassName:r,classLv:b,secondaryClassLv:O,bp:p,hp:m,pp:v,def:_,weaponUp1:G,weaponUp2:R,weaponUp3:W,damageResist:L,burnResist:B,shockResist:H,panicResist:q,stunResist:J,freezeResist:Z,blindResist:te,poisonResist:ce,statDisplayAtk:z,GetData:Xe,LOGGEDINUSER:Te,LOGGEDINHASH:Ie,BACKENDURL:re(ne)})]}),Object(f.jsxs)(C.a,{path:Re,children:[Object(f.jsx)(M,{LOGGEDINUSER:Te,LOGGEDINHASH:Ie,BACKENDURL:re(ne)}),Object(f.jsx)(ee,{APP_TITLE:le,path:Re,author:t,buildName:s,className:n,secondaryClassName:r,classLv:b,secondaryClassLv:O,bp:p,hp:m,pp:v,def:_,weaponUp1:G,weaponUp2:R,weaponUp3:W,damageResist:L,burnResist:B,shockResist:H,panicResist:q,stunResist:J,freezeResist:Z,blindResist:te,poisonResist:ce,statDisplayAtk:z,GetData:Xe,LOGGEDINUSER:Te,LOGGEDINHASH:Ie,BACKENDURL:re(ne)})]}),Object(f.jsxs)(C.a,{path:"/login",children:[Object(f.jsx)(h.a,{children:Object(f.jsx)("title",{children:"NGS Planner - Login"})}),Object(f.jsx)(M,{LOGGEDINUSER:Te,LOGGEDINHASH:Ie,BACKENDURL:re(ne)}),Object(f.jsx)(xe,{BACKENDURL:ne,TESTMODE:be,LOGGEDINUSER:Te,LOGGEDINHASH:Ie,setLOGGEDINHASH:Ge,setLOGGEDINUSER:Ae})]}),Object(f.jsxs)(C.a,{path:"/register",children:[Object(f.jsx)(h.a,{children:Object(f.jsx)("title",{children:"NGS Planner - Register"})}),Object(f.jsx)(M,{LOGGEDINUSER:Te,LOGGEDINHASH:Ie,BACKENDURL:re(ne)}),Object(f.jsx)(fe,{BACKENDURL:ne,TESTMODE:be,LOGGEDINUSER:Te,LOGGEDINHASH:Ie,setLOGGEDINHASH:Ge,setLOGGEDINUSER:Ae})]}),Object(f.jsx)(C.a,{path:"/formula",children:Object(f.jsx)(pe,{})}),Object(f.jsxs)(C.a,{path:"/",children:[Object(f.jsx)(h.a,{children:Object(f.jsx)("title",{children:le})}),Object(f.jsxs)("div",{className:"modalOverlaySplash",children:[Object(f.jsx)("div",{className:"modal",children:Object(f.jsxs)("div",{className:"box boxMisc",children:[Object(f.jsx)("div",{className:"boxTitleBar",children:Object(f.jsx)("h1",{children:Xe("site_data","h1","data")})}),Object(f.jsx)("h2",{children:Xe("site_data","h2","data")}),Object(f.jsxs)("p",{children:[Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Xe("site_data","UNDER_CONSTRUCTION_TEXT","data")]}),Object(f.jsx)("br",{style:{clear:"both"}})]})}),Object(f.jsxs)("footer",{children:[Object(f.jsx)("a",{href:"https://github.com/sigonasr2/ngsplanner/",children:Object(f.jsx)("span",{className:"github",children:"\xa0"})}),Object(f.jsx)("a",{href:"https://twitter.com/ngsplanner",children:Object(f.jsx)("span",{className:"twitter",children:"@NGSPlanner"})})]})]})]})]})})})},Se=function(e){e&&e instanceof Function&&a.e(3).then(a.bind(null,162)).then((function(t){var a=t.getCLS,i=t.getFID,s=t.getFCP,c=t.getLCP,n=t.getTTFB;a(e),i(e),s(e),c(e),n(e)}))};n.a.render(Object(f.jsx)(s.a.StrictMode,{children:Object(f.jsx)(ve,{})}),document.getElementById("root")),Se()},80:function(e,t,a){},81:function(e,t,a){},82:function(e,t,a){}},[[153,1,2]]]);
-//# sourceMappingURL=main.de74fa0f.chunk.js.map
\ No newline at end of file
diff --git a/static/js/main.de74fa0f.chunk.js.map b/static/js/main.de74fa0f.chunk.js.map
deleted file mode 100644
index 369f94d..0000000
--- a/static/js/main.de74fa0f.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["skilltree/skillTree.js","skilltree/skillTreeSelector.js","skilltree/skillTreeEditor.js","DEFAULTS.js","TestHeader.js","components/ExpandTooltip.js","TestPanel.js","App.js","reportWebVitals.js","index.js"],"names":["SkillTree","p","canvasRef","useRef","useState","width","setWidth","height","setHeight","useEffect","gridSizeX","gridDimensionsX","gridPaddingX","gridSizeY","Math","ceil","gridDimensionsY","halflineheight","gridPaddingY","skillLines","context","current","getContext","clearRect","fillStyle","strokeStyle","lineWidth","setLineDash","lineDash","y","line","x","split","char","padX","padY","beginPath","moveTo","lineTo","stroke","fillRect","ref","style","className","children","SkillTreeSelector","GetData","skillList","setSkillList","cl","onChange","f","callback","currentTarget","value","Number","position","left","ADJUSTMENT","top","defaultValue","map","ch","skillCallback","skill","Object","keys","filter","class_id","id","name","SkillTreeEditor","useMemo","firstLoad","setFirstLoad","classList","setClassList","skillTreeData","setSkillTreeData","setCl","lineColor","setLineColor","setLineWidth","dimensionX","setDimensionX","dimensionY","setDimensionY","setGridSizeX","setGridSizeY","setGridPaddingX","setGridPaddingY","renderedInputs","setRenderedInputs","skillLinesTemp","setSkillLinesTemp","setSkillLines","skillData","setSkillData","message","setMessage","loading","setLoading","setHalfLineHeight","GetSkills","useCallback","filtered","length","undefined","found","data","skill_data","line_color","line_width","gridsizex","gridsizey","gridpaddingx","gridpaddingy","skillTreeString","push","repeat","controls","string","stringLine","newSkillData","s","join","newSkill","src","alt","htmlFor","isNaN","c","onClick","axios","post","BACKENDURL","pass","password","slice","str","then","color","setUpdate","catch","err","control","i","Fragment","type","DisplayIcon","icon","includes","process","require","cookies","TestHeader","LOGGEDINUSER","LOGGEDINHASH","avatar","setAvatar","username","setUsername","recoveryhash","get","verified","href","ExpandTooltip","data-tip","data-tip-disable","tooltip","data-for","overridePosition","currentEvent","node","d","document","documentElement","min","clientWidth","clientHeight","max","EditBox","timer1","setTimeout","getElementById","focus","select","clearTimeout","edit","onKeyDown","e","key","setEdit","maxLength","maxlength","onBlur","setName","originalName","EditBoxInput","setData","prefix","PageControlButton","onPageChange","pageName","setCurrentPage","page","currentPage","pageDisplay","PageControl","pages","pageNames","Class","CLASSES","class_obj","EditableClass","setClassNameSetter","editClass","setClassSelectWindowOpen","PopupWindow","ariaHideApp","isOpen","modalOpen","onRequestClose","setModalOpen","shouldFocusAfterRender","shouldCloseOnOverlayClick","shouldCloseOnEsc","overlayClassName","title","showCloseButton","setPage","SelectorWindow","onModalOpen","itemList","setItemList","tabPage","setTabPage","sortItems","sortSelector","setSortSelector","setFilter","dataFunction","item","placeholder","filterFunction","searchFieldFunction","sort","a","b","sortOrderFunction","displayFunction","LeftButton","RightButton","ClassSelectorWindow","setTitle","setEditClass","pageSetter","dat1","class","subClass","setClassName","setSubClassName","GetSpecialWeaponName","special_name","fontStyle","SkillBox","gridArea","String","fromCharCode","charCodeAt","skillPointData","boxId","maxPoints","temp","points","tempData","setPoints","setSkillPointData","SkillTreeBoxes","GetHighestLevel","skillInfo","highestLevel","class_skill_id","level","skillTreeSkillData","splitter","numb","SkillTreeContainer","setSkillTreeSkillData","skillTreeLineColor","setSkillTreeLineColor","skillTreeLineWidth","setSkillTreeLineWidth","skillTreeDimensionX","setSkillTreeDimensionX","skillTreeDimensionY","setSkillTreeDimensionY","skillTreeGridSizeX","setSkillTreeGridSizeX","skillTreeGridSizeY","setSkillTreeGridSizeY","skillTreeGridPaddingX","setSkillTreeGridPaddingX","skillTreeGridPaddingY","setSkillTreeGridPaddingY","skillTree","TestPanel","BUILDID","useParams","history","useHistory","location","useLocation","APP_TITLE","bpGraphMax","setbpGraphMax","hpGraphMax","sethpGraphMax","ppGraphMax","setppGraphMax","atkGraphMax","setatkGraphMax","defGraphMax","setdefGraphMax","author","setAuthor","buildName","setbuildName","subclassName","setLevel","secondaryLevel","setsecondaryLevel","effectPage","setEffectPage","weaponPage","setWeaponPage","statPage","setStatPage","foodMenuWindowOpen","setFoodMenuWindowOpen","classSelectWindowOpen","classSkillTreeWindowOpen","setClassSkillTreeWindowOpen","treePage","setTreePage","weaponSelectWindowOpen","setWeaponSelectWindowOpen","armorSelectWindowOpen","setArmorSelectWindowOpen","selectedWeapon","setSelectedWeapon","selectedArmor1","setSelectedArmor1","selectedArmor2","setSelectedArmor2","selectedArmor3","setSelectedArmor3","armorSlotSelection","setArmorSlotSelection","classNameSetter","rarityCheck","v","rarity","bp","pointsArr","pointsDataArr","creator","build_name","class1","class2","dat","JSON","parse","weapon_type","weaponType","weapon","weaponBaseName","potential","potential_id","potential_all","potential_tooltip","pot","existence_data","Array","isArray","weapon_existence_data","weapon_type_id","weapon_id","armor1Name","armor2Name","armor3Name","console","log","Helmet","textAlign","border","hp","pp","statDisplayAtk","def","weaponUp1","toFixed","weaponUp3","burnResist","shockResist","panicResist","stunResist","damageResist","background","weaponUp2","freezeResist","blindResist","poisonResist","saveObj","stringify","match","matchPath","pathname","path","exact","strict","replace","SaveData","searchText","toLowerCase","itemA","itemB","atk","description","it","ii","armor","slot","mel_dmg","rng_dmg","tec_dmg","REACT_APP_GITPOD_WORKSPACE_URL","REACT_APP_BACKENDURL","GetBackendURL","TESTMODE","Box","Table","classes","InputBox","setValue","failed","setFailed","sending","setSending","changeFunc","callback4","blurFunc","callback3","keydownFunc","callback2","disabled","lockSubmission","includeBlankValue","TableEditor","initialVals","fields","setFields","update","useReducer","state","field","submitVals","setSubmitVal","dependencies","setDependencies","importAllowed","setImportAllowed","setLockSubmission","dependency_map","cols","rows","col","promise_list","forEach","Promise","allSettled","reader","FileReader","onload","ev","promises","target","result","columns","skip_empty_lines","entry","dataTypeID","readAsText","files","opacity","accept","checked","delete","alert","SubmitDeletion","scope","display","response","patch","patchValue","blur","DatabaseEditor","databases","setDatabases","backgroundColor","fontSize","lineHeight","db","label","datname","dateStr","date","Date","database","AdminPanel","setVerified","setPassword","navigationData","url","table","hr","duplicate","render","DATA","setTESTMODE","nav","to","EditStatBox","DamageCalculator","augmentData","setAugmentData","character","augments","armor1","armor2","armor3","searchFields","variable","equip","variance","setAugDmgVariance","rawDmg","setRawDmg","weaponTotalAtk","setWeaponTotalAtk","weaponBaseAtk","setWeaponBaseAtk","weaponEnhanceLv","setweaponEnhanceLv","dmgVariance","setDmgVariance","weaponDmgVariance","setWeaponDmgVariance","augDmgVariance","baseAtk","setBaseAtk","enemyDef","setEnemyDef","multipliers","setMultipliers","atkmult","setAtkMult","partmult","setPartMult","elementalWeaknessMult","setElementalWeaknessMult","mainClassWeaponBoost","setMainClassWeaponBoost","classSkillMult","setClassSkillMult","equipMult","setEquipMult","augmentEquipMult","setAugmentEquipMult","potencyFloorEquipMult","setPotencyFloorEquipMult","elementalWeaponEquipMult","setElementalWeaponEquipMult","critMult","setCritMult","appropriateDistance","setAppropriateDistance","foodBoost","setFoodBoost","fieldEffects","setFieldEffects","statusAilments","setStatusAilments","enemyCorrectionMult","setEnemyCorrectionMult","highLevelEnemy","setHighLevelEnemy","val","FormField","for","VerifyLogin","LoginForm","rememberMe","setRememberMe","error","setError","SubmitLogin","md5","setLOGGEDINUSER","setLOGGEDINHASH","set","responseGoogle","profileObj","googleId","imageUrl","email","tokenId","userID","remove","marginTop","theme","clientId","buttonText","onSuccess","onFailure","cookiePolicy","RegisterForm","password2","setPassword2","setEmail","Error","App","secondaryClassName","classLv","secondaryClassLv","setstatDisplayAtk","setDATA","DATAID","setDATAID","PANELPATHWBUILD","PANELPATH","row","clear","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","StrictMode"],"mappings":"uUAEA,SAASA,EAAUC,GACf,IAAMC,EAAYC,iBAAO,MACzB,EAAyBC,mBAAS,GAAlC,mBAAOC,EAAP,KAAaC,EAAb,KACA,EAA2BF,mBAAS,GAApC,mBAAOG,EAAP,KAAcC,EAAd,KA0CA,OAxCAC,qBAAU,WACRH,EAASL,EAAES,UAAUT,EAAEU,gBAAgBV,EAAEW,cAAcX,EAAEU,gBAAgB,IACzEH,EAAUP,EAAEY,UAAUC,KAAKC,KAAKd,EAAEe,gBAAgB,GAAGf,EAAEgB,eAAeH,KAAKC,MAAMd,EAAEe,gBAAgB,GAAG,GAAGf,EAAEiB,cAAcjB,EAAEe,gBAAgB,MAC1I,CAACf,EAAEgB,eAAehB,EAAEkB,WAAWlB,EAAES,UAAUT,EAAEY,UAAUZ,EAAEW,aAAaX,EAAEiB,aAAajB,EAAEU,gBAAgBV,EAAEe,kBAE5GP,qBAAU,WACR,IACMW,EADSlB,EAAUmB,QACFC,WAAW,MAClCF,EAAQG,UAAU,EAAE,EAAElB,EAAME,GAC5Ba,EAAQI,UAAY,wBACpBJ,EAAQK,YAAYxB,EAAEwB,YACtBL,EAAQM,UAAUzB,EAAEyB,UACpBN,EAAQO,YAAY1B,EAAE2B,UACtB,IARY,EAQRC,EAAE,EARM,cASK5B,EAAEkB,YATP,IASZ,2BAA+B,CAAC,IAAD,EAAtBW,EAAsB,QACzBC,EAAE,EADuB,cAEZD,EAAKE,MAAM,KAFC,IAE7B,2BAAiC,CAAC,IAAzBC,EAAwB,QACzBC,EAAW,IAAJH,EAAM9B,EAAEW,aAAamB,EAAE,EAC9BI,EAAW,IAAJN,EAAM5B,EAAEiB,aAAaW,EAAE,EAClC,OAAQI,GACJ,IAAK,SAAIb,EAAQgB,YAAYhB,EAAQiB,OAAON,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAEW,aAAaE,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAUT,EAAEW,aAAaE,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQmB,SAAS,MAChY,IAAK,SAAInB,EAAQgB,YAAYhB,EAAQiB,OAAON,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,EAAMlC,EAAEiB,cAAcE,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,EAAMlC,EAAEY,UAAUZ,EAAEiB,cAAcE,EAAQmB,SAAS,MAC1U,IAAK,SAAInB,EAAQgB,YAAYhB,EAAQiB,OAAON,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,EAAMlC,EAAEiB,cAAcE,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAUT,EAAEW,aAAaE,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQmB,SAAS,MACvgB,IAAK,SAAInB,EAAQgB,YAAYhB,EAAQiB,OAAON,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAUT,EAAEW,aAAaE,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,EAAMlC,EAAEY,UAAUZ,EAAEiB,cAAcE,EAAQmB,SAAS,MACnhB,IAAK,SAAInB,EAAQgB,YAAYhB,EAAQiB,OAAON,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,EAAMlC,EAAEiB,cAAcE,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAEW,aAAaE,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQmB,SAAS,MAC3f,IAAK,SAAInB,EAAQgB,YAAYhB,EAAQiB,OAAON,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAEW,aAAaE,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,EAAMlC,EAAEY,UAAUZ,EAAEiB,cAAcE,EAAQmB,SAAS,MACvgB,IAAK,SAAInB,EAAQgB,YAAYhB,EAAQiB,OAAON,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,EAAMlC,EAAEiB,cAAcE,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAUT,EAAEW,aAAaE,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQmB,SAASnB,EAAQgB,YAAYhB,EAAQiB,OAAON,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAUT,EAAEW,aAAaE,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,EAAMlC,EAAEY,UAAUZ,EAAEiB,cAAcE,EAAQmB,SAAS,MACjhC,IAAK,SAAInB,EAAQgB,YAAYhB,EAAQiB,OAAON,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAEW,aAAaE,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,EAAMlC,EAAEY,UAAUZ,EAAEiB,cAAcE,EAAQmB,SAASnB,EAAQgB,YAAYhB,EAAQiB,OAAON,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,EAAMlC,EAAEiB,cAAcE,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAEW,aAAaE,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQmB,SAAS,MACz/B,IAAK,SAAInB,EAAQgB,YAAYhB,EAAQiB,OAAON,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAEW,aAAaE,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,EAAMlC,EAAEY,UAAUZ,EAAEiB,cAAcE,EAAQmB,SAASnB,EAAQgB,YAAYhB,EAAQiB,OAAON,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAUT,EAAEW,aAAaE,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,EAAMlC,EAAEY,UAAUZ,EAAEiB,cAAcE,EAAQmB,SAAS,MACjhC,IAAK,SAAInB,EAAQgB,YAAYhB,EAAQiB,OAAON,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,EAAMlC,EAAEiB,cAAcE,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAUT,EAAEW,aAAaE,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQmB,SAASnB,EAAQgB,YAAYhB,EAAQiB,OAAON,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,EAAMlC,EAAEiB,cAAcE,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAEW,aAAaE,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQmB,SAAS,MACz/B,IAAK,SAAInB,EAAQgB,YAAYhB,EAAQiB,OAAON,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,EAAMlC,EAAEiB,cAAcE,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAU,EAAEI,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,EAAMlC,EAAEY,UAAUZ,EAAEiB,cAAcE,EAAQiB,OAAON,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAEW,aAAaE,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQkB,OAAOP,EAAE9B,EAAES,UAAWwB,EAAMjC,EAAES,UAAUT,EAAEW,aAAaE,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,GAAON,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAGO,EAAQmB,SAAS,MAC5pB,IAAK,SAAInB,EAAQG,UAAUQ,EAAE9B,EAAES,UAAWwB,EAAOpB,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,EAAOlC,EAAES,UAAWmB,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAAWO,EAAQoB,SAAST,EAAE9B,EAAES,UAAWwB,EAAOpB,KAAKC,KAAKc,EAAE,GAAG5B,EAAEY,UAAUC,KAAKC,MAAMc,EAAE,GAAG,GAAG5B,EAAEgB,eAAgBkB,EAAOlC,EAAES,UAAWmB,EAAE,IAAI,EAAE5B,EAAEgB,eAAehB,EAAEY,WAGrUkB,KApByB,8BAsB7BF,KA/BU,iCAiCZ,CAACxB,EAAME,EAAON,EAAES,UAAUT,EAAEY,UAAUZ,EAAEW,aAAaX,EAAEiB,aAAajB,EAAE2B,SAAS3B,EAAEyB,UAAUzB,EAAEkB,WAAWlB,EAAEwB,YAAYxB,EAAEgB,iBAEnH,wBACPZ,MAAOA,EACPE,OAAQA,EAAQkC,IAAKvC,EAAWwC,MAAOzC,EAAEyC,MAAOC,UAAW1C,EAAE0C,UAFtD,SAEkE1C,EAAE2C,WC/C/E,SAASC,EAAkB5C,GAEvB,IAAQ6C,EAAY7C,EAAZ6C,QAER,EAAiC1C,mBAAS,IAA1C,mBAAO2C,EAAP,KAAiBC,EAAjB,KAMA,OAJAvC,qBAAU,WACNuC,EAAaF,EAAQ,kBACvB,CAAC7C,EAAEgD,GAAGH,IAED,qCACH,wBAAQI,SAAU,SAACC,GAAKlD,EAAEmD,SAASD,EAAEE,cAAcC,MAAMC,OAAOtD,EAAE8B,GAAGwB,OAAOtD,EAAE4B,KAAMa,MAAO,CAACc,SAAS,WAAWC,KAAKxD,EAAEyD,WAAW,IAAIzD,EAAE8B,EAAE9B,EAAES,UAAUT,EAAEiC,KAAKjC,EAAES,UAAU,GAAGiD,IAAI1D,EAAEyD,WAAW,IAAKzD,EAAE4B,EAAE,EAAG5B,EAAEY,WAAWZ,EAAE4B,EAAE,EAAE,GAAG5B,EAAEgB,eAAehB,EAAEkC,MAAY,IAANlC,EAAE4B,EAAM5B,EAAEgB,eAAehB,EAAEY,WAAW,IAAKyC,MAAOrD,EAAE2D,aAA5S,SACK,CAAC,IAAI,SAAI,SAAI,SAAI,SAAI,SAAI,SAAI,SAAI,SAAI,SAAI,SAAI,SAAI,UAAKC,KAAI,SAACC,GAAD,OACvD,wBAAQR,MAAOQ,EAAf,SAA6BA,GAALA,QAGd,WAAjB7D,EAAE2D,cAAoB,wBAAQlB,MAAO,CAACrC,MAAM,OAAOmD,SAAS,WAAWC,KAAKxD,EAAEyD,WAAW,IAAIzD,EAAE8B,EAAE9B,EAAES,UAAUT,EAAEiC,KAAKjC,EAAES,UAAU,GAAGiD,IAAI1D,EAAEyD,WAAW,IAAKzD,EAAE4B,EAAE,EAAG5B,EAAEY,WAAWZ,EAAE4B,EAAE,EAAE,GAAG5B,EAAEgB,eAAehB,EAAEkC,MAAY,IAANlC,EAAE4B,EAAM5B,EAAEgB,eAAehB,EAAEY,WAAW,GAAG,IAAKqC,SAAU,SAACC,GAAKlD,EAAE8D,cAAc9D,EAAE8B,EAAE9B,EAAE4B,EAAEsB,EAAEE,cAAcC,QAASA,MAAOrD,EAAE+D,MAAMhC,MAAM,KAAK,GAAlU,SAClB,CAAC,IAAD,mBAAOiC,OAAOC,KAAMnB,GAAYoB,QAAO,SAACH,GAAD,OAASjB,EAAUiB,GAAOI,WAAWnE,EAAEgD,QAAKY,KAAI,SAACG,GAAD,OAAS,wBAAoBV,MAAQP,EAAUiB,GAAQjB,EAAUiB,GAAOK,GAAG,GAAlE,SAAwEtB,EAAUiB,GAAQjB,EAAUiB,GAAOM,KAAK,IAAnGN,W,qBCd1H,SAASO,EAAgBtE,GAAI,IAAD,IAChB6C,EAAY7C,EAAZ6C,QAEFY,EAAac,mBAAQ,iBAAI,EAAE,GAAG,MAAI,IAExC,EAAiCpE,oBAAS,GAA1C,mBAAOqE,EAAP,KAAiBC,EAAjB,KAEA,EAAiCtE,mBAAS,IAA1C,mBAAOuE,EAAP,KAAiBC,EAAjB,KACA,EAAyCxE,mBAAS,IAAlD,mBAAOyE,EAAP,KAAqBC,EAArB,KACA,EAAmB1E,oBAAU,GAA7B,mBAAO6C,EAAP,KAAU8B,EAAV,KACA,EAAiC3E,mBAAS,WAA1C,mBAAO4E,EAAP,KAAiBC,EAAjB,KACA,EAAiC7E,mBAAS,GAA1C,mBAAOsB,EAAP,KAAiBwD,EAAjB,KACA,EAAmC9E,mBAAS,GAA5C,mBAAO+E,EAAP,KAAkBC,EAAlB,KACA,EAAmChF,mBAAS,GAA5C,mBAAOiF,EAAP,KAAkBC,EAAlB,KACA,EAAiClF,mBAAS,IAA1C,mBAAOM,EAAP,KAAiB6E,EAAjB,KACA,EAAiCnF,mBAAS,IAA1C,mBAAOS,EAAP,KAAiB2E,EAAjB,KACA,EAAuCpF,mBAAS,IAAhD,oBAAOQ,GAAP,MAAoB6E,GAApB,MACA,GAAuCrF,mBAAS,IAAhD,qBAAOc,GAAP,MAAoBwE,GAApB,MACA,GAA2CtF,mBAAS,IAApD,qBAAOuF,GAAP,MAAsBC,GAAtB,MACA,GAA2CxF,mBAAS,IAApD,qBAAOyF,GAAP,MAAsBC,GAAtB,MACA,GAAmC1F,mBAAS,IAA5C,qBAAOe,GAAP,MAAkB4E,GAAlB,MACA,GAAiC3F,mBAAS,IAA1C,qBAAO4F,GAAP,MAAiBC,GAAjB,MACA,GAA6B7F,mBAAS,IAAtC,qBAAO8F,GAAP,MAAeC,GAAf,MACA,GAA6B/F,oBAAS,GAAtC,qBAAOgG,GAAP,MAAeC,GAAf,MACA,GAA2CjG,mBAAS,IAApD,qBAAOa,GAAP,MAAsBqF,GAAtB,MAEMC,GAAYC,uBAAY,SAACzE,EAAEF,GAC7B,IAAI4E,EAAWT,GAAU7B,QAAO,SAACH,GAAD,OAAST,OAAOS,EAAMhC,MAAM,KAAK,MAAMuB,OAAOxB,IAAIwB,OAAOS,EAAMhC,MAAM,KAAK,MAAMuB,OAAO1B,MACvH,OAAK4E,EAASC,OAAO,EACVD,EAAS,GAET,KAEb,CAACT,KAuIH,OAzGAvF,qBAAU,WACNmE,EAAa9B,EAAQ,aAAQ6D,OAAUA,GAAU,IACjD7B,EAAiBhC,EAAQ,uBAAkB6D,OAAUA,GAAU,MACjE,CAAC7D,IAEHrC,qBAAU,WAGN,IAFA,IACImG,GAAQ,EACZ,MAFW3C,OAAOC,KAAKW,GAEvB,eAAqB,CAAhB,IAAIR,EAAE,KAEP,GAAId,OAAOsB,EAAcR,GAAID,YAAYb,OAAON,GAAK,CAAC,IAAD,IAC7C4D,EAAI,UAAGhC,EAAcR,GAAIwC,YAArB,aAAG,EAAwB7E,MAAM,KACrCgC,EAAK,UAAGa,EAAcR,GAAIyC,kBAArB,aAAG,EAA8B9E,MAAM,KAChD8D,GAAkBe,GAClBZ,GAAajC,GACboB,EAAcyB,EAAK,GAAGH,QACtBpB,EAAcuB,EAAKH,QACnBzB,EAAaJ,EAAcR,GAAI0C,YAC/B7B,EAAaL,EAAcR,GAAI2C,YAC/BzB,EAAaV,EAAcR,GAAI4C,WAC/BzB,EAAaX,EAAcR,GAAI6C,WAC/BzB,GAAgBZ,EAAcR,GAAI8C,cAClCzB,GAAgBb,EAAcR,GAAI+C,cAClCd,GAAkBzB,EAAcR,GAAIpD,gBACpC2F,GAAM,GAGTA,IACDd,GAAkB,IAClBG,GAAa,IACbb,EAAc,GACdE,EAAc,MAEpB,CAACT,EAAc5B,IAEjBxC,qBAAU,WACFgE,IACAM,EAAMxB,OAAOU,OAAOC,KAAKS,GAAW,KACpCD,GAAa,MAEnB,CAACC,EAAUF,IAEbhE,qBAAU,WAGN,IAFA,IAAI4G,EAAe,YAAOxB,IAEnBwB,EAAgBX,OAAOrB,GAC1BgC,EAAgBC,KAAK,IAAIC,OAAOpC,IAGpC,IAAK,IAAIrD,EAAK,EAAEA,EAAKuF,EAAgBX,OAAO5E,IACpCuF,EAAgBvF,GAAM4E,OAAOvB,IAC7BkC,EAAgBvF,IAAO,IAAIyF,OAAOpC,EAAWkC,EAAgBvF,GAAM4E,SAG3EX,GAAcsB,KAChB,CAAClC,EAAWE,EAAWQ,KAEzBpF,qBAAU,WAEN,IADA,IAAI+G,EAAW,GACN3F,EAAE,EAAEA,EAAEV,GAAWuF,OAAO7E,IAC7B,IAAK,IAAIE,EAAE,EAAEA,EAAEZ,GAAWU,GAAG6E,OAAO3E,IAAK,CACrC,IAAIG,EAAW,IAAJH,EAAMnB,GAAamB,EAAE,EAC5BI,EAAW,IAAJN,EAAMX,GAAaW,EAAE,EAC5BA,EAAEwD,GAAYtD,EAAEoD,GAChBqC,EAASF,KAAK,cAACzE,EAAD,CAAmBC,QAASA,EAASG,GAAIM,OAAON,GAAKW,aAAczC,GAAWU,GAAGE,GAAIqB,SAAU,SAACnB,EAAKF,EAAEF,GAC7G,IAAI4F,EAAM,YAAOtG,IACbuG,EAAaD,EAAO5F,GAAGG,MAAM,IAC7B2F,EAAY,YAAO3B,IAEvB,GADA0B,EAAW3F,GAAKE,EACL,WAAPA,EACA,IAAK,IAAI2F,KAAKD,EAAc,CACxB,IAAI3F,EAAQ2F,EAAaC,GAAG5F,MAAM,KAClC,GAAIuB,OAAOvB,EAAM,MAAMuB,OAAOxB,IAAIwB,OAAOvB,EAAM,MAAMuB,OAAO1B,GAAI,CAC5D8F,EAAaC,GAAG,GAChB3B,GAAa0B,GACb,OAIZF,EAAO5F,GAAK6F,EAAWG,KAAK,IAC5B/B,GAAkB2B,IAExBzD,MAAOuC,GAAUxE,EAAEF,GAAIkC,cAAe,SAAChC,EAAEF,EAAEmC,GACzC,IAAI2D,EAAY,YAAO3B,IACnBY,GAAM,EACNkB,EAAW/F,EAAE,IAAIF,EAAE,IAAImC,EAC3B,IAAK,IAAI4D,KAAKD,EAAc,CACxB,IAAI3F,EAAQ2F,EAAaC,GAAG5F,MAAM,KAClC,GAAIuB,OAAOvB,EAAM,MAAMuB,OAAOxB,IAAIwB,OAAOvB,EAAM,MAAMuB,OAAO1B,GAAI,CAC5D8F,EAAaC,GAAGE,EAChBlB,GAAM,EACN,OAGHA,GACDe,EAAaL,KAAKQ,GAEtB7B,GAAa0B,IACdjE,WAAYA,EAAY3B,EAAGA,EAAGF,EAAGA,EAAGnB,UAAWA,EAAWG,UAAWA,EAAWqB,KAAMA,EAAMC,KAAMA,EAAMlB,eAAgBA,MAIvI2E,GAAkB4B,KACpB,CAACrG,GAAWT,EAAUG,EAAUD,GAAaM,GAAa+B,EAAGoC,EAAWF,EAAWa,GAAU/E,GAAe6B,EAAQY,EAAW6C,KAE1H,mCACEH,GAAQ,qBAAK2B,IAA4B,eAAgBC,IAAI,KAAK,qCACnE,6BAAK9B,KACL,uBAAO+B,QAAQ,cAAf,2BAAkD,yBAAQ5D,GAAG,cAAcf,MAAOC,OAAO2E,MAAM3E,OAAON,IAAK,IAAIA,EAAIC,SAAU,SAACC,GAAK4B,EAAMxB,OAAOJ,EAAEE,cAAcC,SAA9G,UAC9C,wBAAQA,MAAM,KACbW,OAAOC,KAAKS,GAAWd,KAAI,SAACsE,GAAD,OAAK,wBAAgC7E,MAAO6E,EAAvC,SAA2CA,EAAE,MAAMxD,EAAUwD,GAAG7D,MAAnDK,EAAUwD,GAAG7D,YAE/D,uBACA,wBACC,UAAArE,EAAE6C,QAAQ,aAAQ6D,OAAUA,GAAU,GAAM1D,UAA5C,eAAiDqB,OAAM,wBAAQ8D,QAAS,WACrE/B,IAAW,GA9InBgC,IAAMC,KAAKrI,EAAEsI,WAAW,iBAAiB,CACrCC,KAAKvI,EAAEwI,SACP5B,KAAK1F,GAAWuH,MAAM,EAAErD,GAAYxB,KAAI,SAAC8E,GAAD,OAAOA,EAAID,MAAM,EAAEvD,MAAa0C,KAAK,KAC7Ef,WAAWd,GAAU6B,KAAK,KAC1Bd,WAAW/B,EACXgC,WAAWtF,EACXuF,UAAUvG,EACVwG,UAAUrG,EACVsG,aAAavG,GACbwG,aAAalG,GACbD,eAAeA,GACfmD,SAASnB,IAEZ2F,MAAK,SAAC/B,GACa,QAAZA,EAAKA,OACLV,GAAW,sBAAMzD,MAAO,CAACmG,MAAM,SAApB,SAA+B,qCAAqC5I,EAAE6C,QAAQ,aAAQ6D,OAAUA,GAAU,GAAM1D,GAAIqB,KAAK,OACpIrE,EAAE6I,WAAU,OAGnBC,OAAM,SAACC,GACJ7C,GAAW,sBAAMzD,MAAO,CAACmG,MAAM,OAApB,SAA6BG,EAAI9C,cAE/C0C,MAAK,WACFvC,IAAW,OAsH6C,SAGpD,mBAAQpG,EAAE6C,QAAQ,aAAQ6D,OAAUA,GAAU,GAAM1D,UAApD,aAAQ,EAAiDqB,MAAK,gBAClE,sBAAK5B,MAAO,CAACrC,MAAM,QAAQmD,SAAS,WAAWC,KAAK,SAApD,UACA,cAACzD,EAAD,CAAWyB,YAAauD,EAAWtD,UAAWA,EAAWE,SAAU,GAC/DjB,gBAAiBwE,EAAYnE,gBAAiBqE,EAAY3E,UAAWA,EAAWG,UAAWA,EAAWD,aAAcA,GAAcM,aAAcA,GAChJC,WAAYA,GAAYF,eAAgBA,KAE3C0E,GAAe9B,KAAI,SAACoF,EAAQC,GAAT,OAAa,cAAC,IAAMC,SAAP,UAAyBF,GAAJC,MACtD,uBACA,uBACA,uBACA,uBAAOjB,QAAQ,YAAf,yBAA8C,uBAAOmB,KAAK,QAAQ/E,GAAG,YAAYf,MAAO0B,EAAW9B,SAAU,SAACC,GAAK8B,EAAa9B,EAAEE,cAAcC,UAAU,uBAC1J,uBAAO2E,QAAQ,YAAf,yBAA8C,uBAAOmB,KAAK,SAAS/E,GAAG,YAAYf,MAAO5B,EAAWwB,SAAU,SAACC,GAAK+B,EAAa/B,EAAEE,cAAcC,UAAU,uBAC3J,uBAAO2E,QAAQ,YAAf,0BAA+C,uBAAOmB,KAAK,SAAS/E,GAAG,YAAYf,MAAO6B,EAAYjC,SAAU,SAACC,GAAKiC,EAAcjC,EAAEE,cAAcC,UAAU,uBAC9J,uBAAO2E,QAAQ,YAAf,0BAA+C,uBAAOmB,KAAK,SAAS/E,GAAG,YAAYf,MAAO+B,EAAYnC,SAAU,SAACC,GAAKmC,EAAcnC,EAAEE,cAAcC,UAAU,uBAC9J,uBAAO2E,QAAQ,eAAf,6BAAqD,uBAAOmB,KAAK,SAAS/E,GAAG,eAAef,MAAOrC,GAAgBiC,SAAU,SAACC,GAAKmD,GAAkBnD,EAAEE,cAAcC,UAAU,uBAC/K,uBAAO2E,QAAQ,WAAf,yBAA6C,uBAAOmB,KAAK,SAAS/E,GAAG,WAAWf,MAAO5C,EAAWwC,SAAU,SAACC,GAAKoC,EAAapC,EAAEE,cAAcC,UAAU,uBACzJ,uBAAO2E,QAAQ,WAAf,yBAA6C,uBAAOmB,KAAK,SAAS/E,GAAG,WAAWf,MAAOzC,EAAWqC,SAAU,SAACC,GAAKqC,EAAarC,EAAEE,cAAcC,UAAU,uBACzJ,uBAAO2E,QAAQ,eAAf,6BAAqD,uBAAOmB,KAAK,SAAS/E,GAAG,eAAef,MAAO1C,GAAcsC,SAAU,SAACC,GAAKsC,GAAgBtC,EAAEE,cAAcC,UAAU,uBAC3K,uBAAO2E,QAAQ,eAAf,6BAAqD,uBAAOmB,KAAK,SAAS/E,GAAG,eAAef,MAAOpC,GAAcgC,SAAU,SAACC,GAAKuC,GAAgBvC,EAAEE,cAAcC,UAAU,+B,mCCzMvL,SAAS+F,EAAYC,GAEjB,OAAOA,GAAMA,EAAK5C,OAAO,EAAE4C,EAAKC,SAAS,QAAQD,EAAKE,GAAuBF,EAJtC,4BCI3C,IAAMjB,EAAQoB,EAAQ,IAChBC,EAAUD,EAAQ,IA2CTE,MAzCf,SAAoB1J,GAEhB,IAAOsI,EAAwCtI,EAAxCsI,WAAWqB,EAA6B3J,EAA7B2J,aAAaC,EAAgB5J,EAAhB4J,aAE/B,EAA2BzJ,wBAASuG,GAApC,mBAAOmD,EAAP,KAAcC,EAAd,KACA,EAA+B3J,wBAASuG,GAAxC,mBAAOqD,EAAP,KAAgBC,EAAhB,KAgBA,OAdAxJ,qBAAU,WACN4H,EAAMC,KAAKC,EAAW,aAAa,CAC/ByB,SAASJ,EACTnB,SAASoB,EACTK,aAAaR,EAAQS,IAAI,YAE5BvB,MAAK,SAAC/B,GACCA,EAAKA,KAAKuD,WACVL,EAAUlD,EAAKA,KAAKiD,QACpBG,EAAYL,SAGvB,CAACrB,EAAWqB,EAAaC,IAGtB,iCACI,sBAAKlH,UAAU,gBAAf,UACI,qBAAKA,UAAU,OAAf,SAAsB,oBAAG0H,KAAK,IAAR,UAAY,qBAAKrC,IAAI,GAAGD,IAA8B,uBAAtD,YAAuF,gDAC7G,sBAAKpF,UAAU,aAAf,UAA4B,+BACxB,oBAAIA,UAAU,iBAAd,SAA+B,mBAAG0H,KAAK,IAAR,sBAC/B,oBAAI1H,UAAU,iBAAd,SAA+B,mBAAG0H,KAAK,IAAR,sBAC/B,oBAAI1H,UAAU,iBAAd,SAA+B,mBAAG0H,KAAK,IAAR,oBAC/B,oBAAI1H,UAAU,iBAAd,SAA+B,mBAAG0H,KAAK,IAAR,wBAC/B,yBAAS1H,UAAU,UAAnB,SAA6B,mBAAG0H,KAAK,IAAR,yBAEjC,sBAAK1H,UAAU,WAAf,UACI,yBAASA,UAAU,WAAnB,SAA8B,oBAAG0H,KAAK,IAAR,UAAY,qBAAKrC,IAAI,IAAID,IAAKsB,EAAYS,KAA1C,WAAuDE,QAAvD,IAAuDA,IAAU,QAAjE,WAAiF,sBAAMrH,UAAU,UAAhB,+BAC/G,yBAASA,UAAU,UAAnB,SAA6B,mBAAG0H,KAAK,IAAR,SAAY,qBAAKrC,IAAI,IAAID,IAAKsB,EAAYS,kB,kCCvC3F,SAASQ,EAAcrK,GAAI,IAAD,EAEzB,OAAO,qCAAE,sBAAMsK,YAAA,EAASC,mBAAsC,KAApB,UAAAvK,EAAEwK,eAAF,eAAW/D,QAAYgE,WAAUzK,EAAEoE,GAApE,SAAyEpE,EAAE2C,WAAgB,cAAC,IAAD,CAAcyB,GAAIpE,EAAEoE,GAAI1B,UAAU,WAAWgI,iBAAmB,WAEjKC,EAAcvH,EAAewH,GAAU,IADrCpH,EACoC,EADpCA,KAAME,EAC8B,EAD9BA,IAEJmH,EAAIC,SAASC,gBAKnB,OAJAvH,EAAO3C,KAAKmK,IAAIH,EAAEI,YAAcL,EAAKK,YAAazH,GAClDE,EAAM7C,KAAKmK,IAAIH,EAAEK,aAAeN,EAAKM,aAAcxH,GACnDF,EAAO3C,KAAKsK,IAAI,EAAG3H,GAEZ,CAAEE,IADTA,EAAM7C,KAAKsK,IAAI,EAAGzH,GACJF,SARqF,SAShGxD,EAAEwK,aCCP,SAASY,EAAQpL,GAUhB,OATAQ,qBAAU,WACT,IAAI6K,EAASC,YAAW,WACpBR,SAASS,eAAe,gBAAgBC,QACxCV,SAASS,eAAe,gBAAgBE,WAC1C,KACF,OAAO,WACNC,aAAaL,MAEb,CAACrL,EAAE2L,OACE,uBAAOvH,GAAG,eAAe+E,KAAMnJ,EAAEmJ,KAAMgC,IAAc,WAATnL,EAAEmJ,KAAgB,QAAGzC,EAAWsE,IAAc,WAAThL,EAAEmJ,KAAgB,OAAEzC,EAAWkF,UAAW,SAACC,IACtH,UAARA,EAAEC,KACW,WAARD,EAAEC,MADW9L,EAAE+L,SAAQ,IAE9BC,UAAWhM,EAAEiM,UAAUjM,EAAEiM,UAAU,GAAIC,OAAQ,WAAKlM,EAAE+L,SAAQ,IAAS1I,MAAOrD,EAAEqD,MAAOJ,SAAU,SAACC,GAAKA,EAAEE,cAAcC,MAAMoD,OAAO,EAAEzG,EAAEmM,QAAQjJ,EAAEE,cAAcC,OAAOrD,EAAEmM,QAAQnM,EAAEoM,iBAIvL,SAASC,EAAarM,GACrB,MAAuBG,oBAAS,GAAhC,mBAAOwL,EAAP,KAAYI,EAAZ,KAQA,OANAvL,qBAAU,WACLR,EAAEmD,UACLnD,EAAEmD,aAEF,CAACwI,EAAK3L,IAED,mCACN,qBAAK0C,UAAWiJ,EAAK,gBAAgB,UAAWxD,QAAS,SAACjF,GAAK6I,GAAQ,IAAvE,SACEJ,EACD,cAACP,EAAD,CAASO,KAAMA,EAAMM,UAAWjM,EAAEiM,UAAW9C,KAAMnJ,EAAEmJ,KAAM4C,QAASA,EAASK,aAAcpM,EAAE4G,KAAMuF,QAASnM,EAAEsM,QAASjJ,MAAOrD,EAAE4G,OAC/H,qCAAG5G,EAAEuM,OAAQvM,EAAE4G,YAKnB,SAAS4F,EAAkBxM,GAC1B,OAAO,oBAAImI,QAAS,WAASnI,EAAEyM,cAAezM,EAAEyM,aAAazM,EAAE0M,UAAW1M,EAAE2M,eAAe3M,EAAE4M,OAAQlK,UAAY1C,EAAE6M,cAAc7M,EAAE4M,KAAM,WAAW,aAA7I,SAA4J5M,EAAE8M,YAAY9M,EAAE8M,YAAY9M,EAAE4M,KAAK,GAAG5M,EAAE0M,SAAS1M,EAAE0M,SAAS1M,EAAE4M,OAGlO,SAASG,EAAY/M,GAEpB,IADA,IAAIgN,EAAQ,GACH/D,EAAE,EAAEA,EAAEjJ,EAAEgN,MAAM/D,IACtB+D,EAAM3F,KAAK,cAACmF,EAAD,CAAmBC,aAAczM,EAAEyM,aAAcK,YAAa9M,EAAE8M,YAAaJ,SAAU1M,EAAEiN,UAAUjN,EAAEiN,UAAUhE,QAAGvC,EAAWmG,YAAa7M,EAAE6M,YAAaF,eAAgB3M,EAAE2M,eAAgBC,KAAM3D,EAAE,KAM/M,YAJkBvC,IAAb1G,EAAE2C,UACFqK,EAAM3F,KAAK,oBAAI3E,UAAU,qBAAd,SAAoC1C,EAAE2C,YAG/CqK,EAAMvG,OAAO,GAAG,oBAAI/D,UAAU,UAAd,SACpBsK,EAAMpJ,KAAI,SAACgJ,EAAK3D,GAAK,OAAO,cAAC,IAAMC,SAAP,UAAyB0D,GAAJ3D,QAIrD,SAASiE,EAAMlN,GACb,IAAMmN,EAAUnN,EAAE6C,QAAQ,SACrBuK,EAAYD,EAAQnN,EAAEqE,MAC5B,MAAiB,YAAV8I,EAAoBC,EAAU,qCAAE,qBAAKrF,IAAI,GAAGD,IAAKyB,GAAuB6D,EAAU/D,OAAQ+D,EAAU/I,QAAS,6BAAM,yCAG3H,SAASgJ,EAAcrN,GACtB,OAAO,mCAAE,qBAAK0C,UAAU,YAAYyF,QAAS,WAAKnI,EAAEsN,mBAAmBtN,EAAEuN,WAAWvN,EAAEwN,0BAAyB,IAAtG,SAA8G,cAACN,EAAD,CAAOrK,QAAS7C,EAAE6C,QAASwB,KAAMrE,EAAEqE,WAK3J,SAASoJ,EAAYzN,GAEpB,OAAO,cAAC,IAAD,CAAO0N,aAAa,EAAOC,OAAQ3N,EAAE4N,UAAWC,eAAgB,WAAK7N,EAAE8N,cAAa,IAASC,wBAAwB,EAAMC,2BAA2B,EAAMC,kBAAkB,EAAMvL,UAAU,QAAQwL,iBAAiB,eAAvN,SACJ,sBAAKxL,UAAU,eAAf,UACA,sBAAKA,UAAU,cAAf,UACA,6BAAK1C,EAAEmO,QACNnO,EAAEoO,iBAAiB,qBAAK1L,UAAU,UAAUyF,QAAS,WAAKnI,EAAE8N,cAAa,SAE1E,cAACf,EAAD,CAAaN,aAAczM,EAAEyM,aAAcO,MAAOhN,EAAEiN,UAAUjN,EAAEiN,UAAUxG,OAAO,EAAGwG,UAAWjN,EAAEiN,UAAYJ,YAAa7M,EAAE4M,KAAMD,eAAgB3M,EAAEqO,UAEnJrO,EAAE2C,cAKP,SAAS2L,EAAetO,GAEtB,IAAQuO,EAAgBvO,EAAhBuO,YAER,EAA+BpO,mBAAS,IAAxC,mBAAOqO,EAAP,KAAgBC,EAAhB,KAEA,EAA6BtO,mBAAS,GAAtC,mBAAOuO,EAAP,KAAeC,EAAf,KACA,EAAuCxO,mBAASH,EAAE4O,UAAU5O,EAAE4O,UAAU,GAAG,IAA3E,mBAAOC,EAAP,KAAoBC,EAApB,KACA,EAA2B3O,mBAAS,IAApC,mBAAO+D,EAAP,KAAc6K,EAAd,KAcA,OAZAvO,qBAAU,WACJR,EAAEgP,cACJP,EAAYzO,EAAEgP,kBAEhB,CAAChP,IAEHQ,qBAAU,WACJ+N,GACFA,EAAYI,KAEd,CAACJ,IAEI,eAACd,EAAD,CAAab,KAAM8B,EAASL,QAASM,EAAYf,UAAW5N,EAAE4N,UAAWE,aAAc9N,EAAE8N,aAAcM,iBAAiB,EAAMD,MAAOnO,EAAEmO,MAC1IlB,UAAWjN,EAAEiN,UACb/I,QAAQ,EACRuI,aAAczM,EAAEyM,aAHb,WAKHzM,EAAE4O,WAAW5O,EAAEkE,SAAS,sBAAKxB,UAAU,UAAf,UACtB,qBAAKA,UAAU,cAAf,SACG1C,EAAE4O,WAAW,wBAAQlM,UAAU,cAAcW,MAAOwL,EAAc5L,SAAU,SAACC,GAAK4L,EAAgB5L,EAAEE,cAAcC,QAArG,SACXrD,EAAE4O,UAAUhL,KAAI,SAACqL,GAAD,OAAQ,wBAAmB5L,MAAO4L,EAA1B,SAAiCA,GAApBA,UAG1C,qBAAKvM,UAAU,gBAAf,SACG1C,EAAEkE,OAAO,uBAAOxB,UAAU,cAAcyG,KAAK,OAAO+F,YAAY,SAAS7L,MAAOa,EAAQjB,SAAU,SAACC,GAAK6L,EAAU7L,EAAEE,cAAcC,UAAY,kCAIrJ,sBAAKX,UAAU,yCAAf,UACC1C,EAAEkE,OAAOsK,EAAStK,QAAO,SAAC+K,GAAD,OAAQjP,EAAEmP,eAAeT,EAAQO,MAAO/K,QAAO,SAAC+K,GAAD,OAAQjP,EAAEoP,oBAAoBlL,EAAO+K,MAAOI,MAAK,SAACC,EAAEC,GAAH,OAAOvP,EAAEwP,kBAAkBX,EAAaS,EAAEC,MAAI3L,KAAI,SAACqL,EAAKhG,GAAN,OAAU,cAAC,IAAMC,SAAP,UAAyBlJ,EAAEyP,gBAAgBR,IAAtBhG,MAA+CuF,EAAS5K,KAAI,SAACqL,EAAKhG,GAAN,OAAU,cAAC,IAAMC,SAAP,UAAyBlJ,EAAEyP,gBAAgBR,IAAtBhG,MACrSjJ,EAAE2C,eAKP,SAAS+M,EAAW1P,GACnB,OAAO,gDAAUA,GAAV,IAAa0C,UAAU,qBAI/B,SAASiN,EAAY3P,GACpB,OAAO,gDAAUA,GAAV,IAAa0C,UAAU,sBAG/B,SAASkN,EAAoB5P,GAC3B,MAAyBG,mBAAS,qBAAlC,mBAAOgO,EAAP,KAAa0B,EAAb,KAIA,OAHArP,qBAAU,WACRqP,EAAU7P,EAAEuN,UAAW,mBAAmB,uBAC1C,CAACvN,EAAEuN,YACE,cAACe,EAAD,CAAgBH,MAAOA,EAAOP,UAAW5N,EAAE4N,UAAWE,aAAc9N,EAAE8N,aAAcjL,QAAS7C,EAAE6C,QACtGoK,UAAW,CAAC,aAAa,aACzBR,aAAc,SAACG,GACF,eAAPA,EACF5M,EAAE8P,aAAa,GAEf9P,EAAE8P,aAAa,IAGnBvB,YAAa,SAACwB,GACZA,EAAY/P,EAAEuN,UAAW,EAAE,IAE7ByB,aAAc,WACZ,IAAIgB,EAAOhQ,EAAE6C,QAAQ,SACrB,OAAOmB,OAAOC,KAAK+L,IAGrBP,gBAAiB,SAAC3D,GAChB,OAAO,qBAAIpJ,UAAW1C,EAAEiQ,QAAQnE,EAAI,eAAe9L,EAAEkQ,WAAWpE,EAAI,cAAc,GAAI3D,QAAS,WAAyB,IAAdnI,EAAEuN,WAAevN,EAAEmQ,aAAarE,GAAK9L,EAAEoQ,gBAAgBpQ,EAAEkQ,WAAWpE,EAAI9L,EAAEiQ,MAAMjQ,EAAEkQ,YAAelQ,EAAEoQ,gBAAgBtE,GAAK9L,EAAEmQ,aAAanQ,EAAEiQ,QAAQnE,EAAI9L,EAAEkQ,SAASlQ,EAAEiQ,QAASjQ,EAAE8N,cAAa,IAA7R,UAAuS,qBAAK/F,IAAI,GAAGD,IAAKsB,EAAYpJ,EAAE6C,QAAQ,QAASiJ,EAAK,WAA5V,IAA0W9L,EAAE6C,QAAQ,QAASiJ,EAAK,cAK7Y,SAASuE,EAAqBpB,GAAO,IAAD,EAClC,YAAqCvI,IAA9BuI,EArK6H,IAqKpF,UAAAA,EArKoF,GAqKxDqB,oBAA5B,eAA0C7J,QAAO,EAAGwI,EArKgC,GAqKJqB,aAAcrB,EArKlG,GAqKsH5K,KAAK,IAAI4K,EArKrJ,GAqK6K5K,KAAM,mCAAE,sBAAM5B,MAAO,CAAC8N,UAAU,UAAxB,6BAO7M,SAASC,EAASxQ,GACd,OAAO,sBAAK0C,UAAW1C,EAAE0C,UAAWD,MAAO,CAAEgO,UALtB3O,EAKkDwB,OAAOtD,EAAE+D,MAAM,IAL/DnC,EAKmE0B,OAAOtD,EAAE+D,MAAM,IAJnG2M,OAAOC,aAAarN,OAAOxB,GAAG,IAAI8O,WAAW,KAAMhP,EAAE,EAAE,KAIxD,UAA4G,qBAAKc,UAAU,YAAYqF,IAAI,GAAGD,IAAKsB,EAAYpJ,EAAE6C,QAAQ,cAAc7C,EAAE+D,MAAM,GAAG,QAAO,MAAU,sBAAMrB,UAAU,iBAAhB,UAAmC1C,EAAE6Q,eAAe7Q,EAAE4M,KAAK,GAAG5M,EAAE8Q,OAAO9Q,EAAE6Q,eAAe7Q,EAAE4M,KAAK,GAAG5M,EAAE8Q,OAAO,GAAG,IAAI9Q,EAAE+Q,YAAiB,oBAAIrO,UAAU,YAAd,SAAoF,kBAAlD1C,EAAE6C,QAAQ,cAAc7C,EAAE+D,MAAM,GAAG,QAAO,IAAkB/D,EAAE6C,QAAQ,cAAc7C,EAAE+D,MAAM,GAAG,QAAO,KAAW,sBAAKrB,UAAU,eAAf,UAChf,cAACgN,EAAD,CAAYvH,QAAS,WACnB,IAAI6I,EAAK,YAAIhR,EAAEiR,QACXC,EAAS,YAAIlR,EAAE6Q,gBACdK,EAASlR,EAAE4M,KAAK,GAAG5M,EAAE8Q,SACxBI,EAASlR,EAAE4M,KAAK,GAAG5M,EAAE8Q,OAAO,GAE1BI,EAASlR,EAAE4M,KAAK,GAAG5M,EAAE8Q,OAAO,IAC9BE,EAAKhR,EAAE4M,KAAK,IAAI,EAChBsE,EAASlR,EAAE4M,KAAK,GAAG5M,EAAE8Q,QAAQ,EAC7B9Q,EAAEmR,UAAUH,GACZhR,EAAEoR,kBAAkBF,OAExB,cAACvB,EAAD,CAAcxH,QAAS,WACrB,IAAI6I,EAAK,YAAIhR,EAAEiR,QACXC,EAAS,YAAIlR,EAAE6Q,gBACdK,EAASlR,EAAE4M,KAAK,GAAG5M,EAAE8Q,SACxBI,EAASlR,EAAE4M,KAAK,GAAG5M,EAAE8Q,OAAO,GAE1BI,EAASlR,EAAE4M,KAAK,GAAG5M,EAAE8Q,OAAO9Q,EAAE+Q,YAChCC,EAAKhR,EAAE4M,KAAK,IAAI,EAChBsE,EAASlR,EAAE4M,KAAK,GAAG5M,EAAE8Q,QAAQ,EAC7B9Q,EAAEmR,UAAUH,GACZhR,EAAEoR,kBAAkBF,aA5B9B,IAA2BpP,EAAEF,EAgC7B,SAASyP,EAAerR,GAEtB,SAASsR,EAAgBvN,GAGvB,IAFA,IAAIwN,EAAYvN,OAAOC,KAAKjE,EAAE6C,QAAQ,qBAClC2O,EAAe,EACVvI,EAAE,EAAEA,EAAEsI,EAAU9K,OAAOwC,IAAK,CACnC,IAAIlD,EAAY/F,EAAE6C,QAAQ,mBAAmB0O,EAAUtI,IACnDlD,GAAWzC,OAAOyC,EAAU0L,kBAAkBnO,OAAOS,IAAQgC,EAAU2L,MAAMF,IAC/EA,EAAazL,EAAU2L,OAG3B,OAAOF,EAOT,OAAO,mCACJxR,EAAE2R,oBAAoB3R,EAAE2R,mBAAmB/N,KAAI,SAACG,EAAMkF,GACrD,IAAI2I,EAAW7N,EAAMhC,MAAM,KAC3B,MAAqB,KAAd6P,EAAS,IAAuB,KAAdA,EAAS,IAAuB,KAAdA,EAAS,IAAS,cAACpB,EAAD,CAAkB9N,WAAoBkP,EAAS,GAAkB5R,EAAE6Q,eAAe7Q,EAAE4M,KAAK,GAAGgF,EAAS,GAAG,IAAIA,EAAS,MAAMN,EAAgBM,EAAS,IAAI,aAAa5R,EAAE6Q,eAAe7Q,EAAE4M,KAAK,GAAGgF,EAAS,GAAG,IAAIA,EAAS,IAAI,EAAE,cAAc,IAAId,MAAOc,EAAS,GAAG,IAAIA,EAAS,GAAIf,eAAgB7Q,EAAE6Q,eAAgBO,kBAAmBpR,EAAEoR,kBAAmBxE,KAAM5M,EAAE4M,KAAM5J,GAAIhD,EAAEgD,GAAI+N,UAAWO,EAAgBM,EAAS,IAAKX,OAAQjR,EAAEiR,OAAQE,UAAWnR,EAAEmR,UAAWtO,QAAS7C,EAAE6C,QAASkB,MAAO6N,EAAShO,KAAI,SAACiO,GAAD,OAAQvO,OAAOuO,OAAlf5I,QAKlF,SAAS6I,EAAmB9R,GAE1B,IAAQ6C,EAAY7C,EAAZ6C,QAER,EAAyC1C,mBAAS,IAAlD,mBAAOyE,EAAP,KAAqBC,EAArB,KACA,EAAmD1E,mBAAS,IAA5D,mBAAOwR,EAAP,KAA0BI,EAA1B,KACA,EAAmD5R,mBAAS,IAA5D,mBAAO6R,EAAP,KAA0BC,EAA1B,KACA,EAAmD9R,mBAAS,GAA5D,mBAAO+R,EAAP,KAA0BC,EAA1B,KACA,EAAqDhS,mBAAS,GAA9D,mBAAOiS,EAAP,KAA2BC,EAA3B,KACA,EAAqDlS,mBAAS,GAA9D,mBAAOmS,EAAP,KAA2BC,EAA3B,KACA,EAAmDpS,mBAAS,KAA5D,mBAAOqS,EAAP,KAA0BC,EAA1B,KACA,EAAmDtS,mBAAS,KAA5D,mBAAOuS,EAAP,KAA0BC,EAA1B,KACA,EAAyDxS,mBAAS,IAAlE,mBAAOyS,EAAP,KAA6BC,EAA7B,KACA,EAAyD1S,mBAAS,IAAlE,mBAAO2S,EAAP,KAA6BC,EAA7B,KACA,EAA2C5S,mBAAS,IAApD,mBAAOa,EAAP,KAAsBqF,EAAtB,KAyBA,OAvBA7F,qBAAU,WACR,GAAIwD,OAAOC,KAAKpB,EAAQ,oBAAoB4D,OAAO,EAAG,CAAC,IAAD,gBAC9B5D,EAAQ,oBADsB,IACpD,2BAAkD,CAAC,IAA1CmQ,EAAyC,QAC9C,GAAIA,EAAU7O,WAAWtB,EAAQ,QAAQ7C,EAAEgD,GAAG,MAAO,CACnD,IAAI4D,EAAOoM,EAAUpM,KAAK7E,MAAM,KAC5BgE,EAAYiN,EAAUnM,WAAW9E,MAAM,KAC3C8C,EAAiB+B,GACjBmL,EAAsBhM,GACtBkM,EAAsBe,EAAUlM,YAChCqL,EAAsBa,EAAUjM,YAChCsL,EAAuBzL,EAAK,GAAGH,QAC/B8L,EAAuB3L,EAAKH,QAC5BgM,EAAsBO,EAAUhM,WAChC2L,EAAsBK,EAAU/L,WAChC4L,EAAyBG,EAAU9L,cACnC6L,EAAyBC,EAAU7L,cACnCd,EAAkB2M,EAAUhS,gBAC5B,QAhB8C,kCAoBtD,CAAChB,EAAEgD,GAAGH,IAED,qBAAKH,UAAU,qCAAf,SACP,sBAAKD,MAAO,CAAEc,SAAU,YAAxB,UACG,cAACxD,EAAD,CAAW0C,MAAO,CAAEc,SAAU,YAAc/B,YAAawQ,EAAoBvQ,UAAWyQ,EAAoBvQ,SAAU,GACrHjB,gBAAiB0R,EAAqBrR,gBAAiBuR,EAAqB7R,UAAW+R,EAAoB5R,UAAW8R,EAAoB/R,aAAciS,EAAuB3R,aAAc6R,EAC7L5R,WAAY0D,EAAe5D,eAAgBA,IAE7C,qBAAK0B,UAAU,gBAAf,SACE,cAAC2O,EAAD,CAAgBR,eAAgB7Q,EAAE6Q,eAAgBO,kBAAmBpR,EAAEoR,kBAAmBxE,KAAM5M,EAAE4M,KAAMqE,OAAQjR,EAAEiR,OAAQjO,GAAIhD,EAAEgD,GAAImO,UAAWnR,EAAEmR,UAAWtO,QAAS7C,EAAE6C,QAAS8O,mBAAoBA,WAuiB3LsB,OAjiBf,SAAmBjT,GAAI,IAAD,IAGhBkT,EAAYC,cAAZD,QACFE,EAAUC,cACVC,EAAWC,cAEP1Q,EAA2D7C,EAA3D6C,QAAQ8G,EAAmD3J,EAAnD2J,aAAaC,EAAsC5J,EAAtC4J,aAAatB,EAAyBtI,EAAzBsI,WAAWkL,EAAcxT,EAAdwT,UAErD,EAAmCrT,mBAAS,KAA5C,mBAAOsT,EAAP,KAAkBC,EAAlB,KACA,EAAmCvT,mBAAS,KAA5C,mBAAOwT,EAAP,KAAkBC,EAAlB,KACA,EAAmCzT,mBAAS,KAA5C,mBAAO0T,EAAP,KAAkBC,EAAlB,KACA,EAAqC3T,mBAAS,KAA9C,mBAAO4T,EAAP,KAAmBC,EAAnB,KACA,EAAqC7T,mBAAS,KAA9C,mBAAO8T,EAAP,KAAmBC,EAAnB,KAEA,EAA2B/T,mBAAS,UAApC,mBAAOgU,EAAP,KAAcC,EAAd,KACA,EAAiCjU,mBAAS,aAA1C,oBAAOkU,GAAP,MAAiBC,GAAjB,MACA,GAAiCnU,mBAAS,UAA1C,qBAAOuC,GAAP,MAAiByN,GAAjB,MACA,GAAuChQ,mBAAS,SAAhD,qBAAOoU,GAAP,MAAoBnE,GAApB,MACA,GAAyBjQ,mBAAS,IAAlC,qBAAOuR,GAAP,MAAa8C,GAAb,MACA,GAA2CrU,mBAAS,IAApD,qBAAOsU,GAAP,MAAsBC,GAAtB,MAEA,GAAmCvU,mBAAS,GAA5C,qBAAOwU,GAAP,MAAkBC,GAAlB,MACA,GAAmCzU,mBAAS,GAA5C,qBAAO0U,GAAP,MAAkBC,GAAlB,MACA,GAA+B3U,mBAAS,GAAxC,qBAAO4U,GAAP,MAAgBC,GAAhB,MAEA,GAAmD7U,oBAAS,GAA5D,qBAAO8U,GAAP,MAA0BC,GAA1B,MACA,GAAyD/U,oBAAS,GAAlE,qBAAOgV,GAAP,MAA6B3H,GAA7B,MACA,GAA+DrN,oBAAS,GAAxE,qBAAOiV,GAAP,MAAgCC,GAAhC,MACA,GAA+BlV,mBAAS,GAAxC,qBAAOmV,GAAP,MAAgBC,GAAhB,MACA,GAA2DpV,oBAAS,GAApE,qBAAOqV,GAAP,MAA8BC,GAA9B,MACA,GAAyDtV,oBAAS,GAAlE,qBAAOuV,GAAP,MAA6BC,GAA7B,MAEA,GAA2CxV,mBAAS,IAApD,qBAAOyV,GAAP,MAAsBC,GAAtB,MACA,GAA2C1V,mBAAS,IAApD,qBAAO2V,GAAP,MAAsBC,GAAtB,MACA,GAA2C5V,mBAAS,IAApD,qBAAO6V,GAAP,MAAsBC,GAAtB,MACA,GAA2C9V,mBAAS,IAApD,qBAAO+V,GAAP,MAAsBC,GAAtB,MACA,GAAmDhW,mBAAS,GAA5D,qBAAOiW,GAAP,MAA0BC,GAA1B,MAEA,GAA6ClW,mBAAS,GAAtD,qBAAOmW,GAAP,MAAuBhJ,GAAvB,MAEA,GAA2BnN,mBAAS,IAApC,qBAAO8Q,GAAP,MAAcE,GAAd,MACA,GAA2ChR,mBAAS,IAApD,qBAAO0Q,GAAP,MAAsBO,GAAtB,MAiCA,SAASmF,GAAYC,GACnB,YAAW9P,IAAJ8P,QAAyB9P,IAAX8P,EAAEC,OAAmB,KAAKD,EAAEC,OAAU,GAyEzD,OAtEJjW,qBAAU,WACJR,EAAE0W,GAAG,KACPhD,EAAc,KACdE,EAAc,KACdE,EAAc,KACdE,EAAe,KACfE,EAAe,OAEfR,EAAc,KACdE,EAAc,KACdE,EAAc,KACdE,EAAe,KACfE,EAAe,QAEjB,CAAClU,EAAE0W,KAELlW,qBAAU,WAIR,IAHA,IAAIyD,EAAOD,OAAOC,KAAKpB,EAAQ,UAC3B8T,EAAY,GACZC,EAAgB,GACX3N,EAAE,EAAEA,EAAEhF,EAAKwC,OAAOwC,IACzB0N,EAAUtP,KAAK,GACfuP,EAAcvP,KAAK,IACfpD,EAAKgF,KAAKvG,IACZ6S,GAAYtM,EAAE,GAGlBkI,GAAUwF,GACVvF,GAAkBwF,KAClB,CAAClU,GAAUG,IAEbrC,qBAAU,WACJ0S,GACF9K,IAAM8B,IAAI5B,EAAW,gBAAgB4K,GAClCvK,MAAK,SAAC/B,GACLwN,EAAUxN,EAAKA,KAAKiQ,SACpBvC,GAAa1N,EAAKA,KAAKkQ,YACvB3G,GAAatN,EAAQ,QAAQ+D,EAAKA,KAAKmQ,OAAO,QAAO,IACrD3G,GAAgBvN,EAAQ,QAAQ+D,EAAKA,KAAKoQ,OAAO,QAAO,IACxD,IAAIC,EAAMC,KAAKC,MAAMvQ,EAAKA,KAAKA,MAC/B4N,GAASyC,EAAIvF,OACbgD,GAAkBuC,EAAIxC,gBACtBtD,GAAU8F,EAAIhG,QACdG,GAAkB6F,EAAIpG,gBACtB,IAAIb,EAAKhQ,EAAE6C,QAAQ,yBACfuU,EAAYvU,EAAQ,cAAcoU,EAAII,YACtCC,EAAOzU,EAAQ,SAASoU,EAAIM,gBAC5BC,EAAU3U,EAAQ,YAAYyU,EAAOG,kBAAa/Q,GAAU,GAC5DgR,EAAc7U,EAAQ,kBACtB8U,EAAkB,GACtB,IAAK,IAAIC,KAAOF,EACVE,EAAItO,SAASkO,EAAUnT,OACzBsT,EAAkBtQ,KAAKrH,EAAE6C,QAAQ,iBAAiB+U,IAGtD,IAAIC,EAAiBC,MAAMC,QAAQ/H,GAAMA,EAAK9L,QAAO,SAAC8T,GAAD,OAAyBA,EAAsBC,iBAAiBb,EAAYhT,IAAI4T,EAAsBE,YAAYZ,EAAOlT,MAAI,QAAGsC,EAErLmP,GAAkB,CAACuB,EAAYE,EAAOE,EAAUG,EAAkBE,IAClE9B,GAAkBlT,EAAQ,QAAQoU,EAAIkB,aACtClC,GAAkBpT,EAAQ,QAAQoU,EAAImB,aACtCjC,GAAkBtT,EAAQ,QAAQoU,EAAIoB,gBAEvCvP,OAAM,SAACC,GACNuP,QAAQC,IAAIxP,EAAI9C,cAGtB,CAACiN,EAAQrQ,EAAQyF,EAAWtI,IAIlB,qCAER,cAACwY,EAAA,EAAD,UACE,gCAAQ,UAAUhF,GAAWN,EAAQ,WAAWA,EAAQ,QAE9D,sBAAKxQ,UAAU,OAAf,UACE,sBAAKA,UAAU,aAAf,UAIE,sBAAKA,UAAU,mBAAf,UACE,qBAAKA,UAAU,cAAf,SACA,qDACA,sBAAKA,UAAU,YAAf,UACN,qBAAKD,MAAO,CAACgO,SAAS,UAAtB,oBACA,qBAAKhO,MAAO,CAACgO,SAAS,SAAtB,wBACA,qBAAKhO,MAAO,CAACgO,SAAS,SAAUtI,QAAS,WAAKqF,IAAyB,IAAvE,mBACA,qBAAK/K,MAAO,CAACgO,SAAS,YAAatI,QAAS,WAAKkN,IAA4B,IAA7E,uBAEA,qBAAK5S,MAAO,CAACgO,SAAS,UAAtB,SAAiC,cAACpD,EAAD,CAAeE,UAAW,EAAGD,mBAAoBA,GAAoBzK,QAAS7C,EAAE6C,QAASsN,aAAcA,GAAc9L,KAAM3B,GAAW8K,yBAA0BA,OACjM,qBAAK/K,MAAO,CAACgO,SAAS,aAAtB,SAAoC,cAACpD,EAAD,CAAeE,UAAW,EAAGD,mBAAoBA,GAAqBzK,QAAS7C,EAAE6C,QAASsN,aAAcC,GAAiB/L,KAAMkQ,GAAc/G,yBAA0BA,OAE3M,qBAAK/K,MAAO,CAACgO,SAAS,SAASgI,UAAU,SAAzC,SAAmD,cAACpM,EAAD,CAAcC,QAAS8H,EAAWxN,KAAMuN,MAC3F,qBAAK1R,MAAO,CAACgO,SAAS,YAAYgI,UAAU,SAA5C,SAAsD,cAACpM,EAAD,CAAcC,QAASgI,GAAc1N,KAAMyN,OACjG,qBAAK5R,MAAO,CAACgO,SAAS,UAAUgI,UAAU,SAA1C,SAAoD,cAACpM,EAAD,CAAcE,OAAO,MAAMD,QAASkI,GAAU5N,KAAM8K,GAAOvI,KAAK,aACpH,qBAAK1G,MAAO,CAACgO,SAAS,aAAagI,UAAU,SAA7C,SAAuD,cAACpM,EAAD,CAAcE,OAAO,MAAMD,QAASoI,GAAmB9N,KAAM6N,GAAgBtL,KAAK,gBAEnI,sBAAKzG,UAAU,YAAf,UACN,qBAAKD,MAAO,CAACgO,SAAS,MAAtB,0BACA,qBAAKhO,MAAO,CAACgO,SAAS,MAAtB,gBACA,qBAAKhO,MAAO,CAACgO,SAAS,MAAtB,gBACA,qBAAKhO,MAAO,CAACgO,SAAS,OAAtB,oBACA,qBAAKhO,MAAO,CAACgO,SAAS,OAAtB,qBACA,qBAAKhO,MAAO,CAACgO,SAAS,SAAtB,uBACA,qBAAKhO,MAAO,CAACgO,SAAS,OAAtB,6BACA,qBAAKhO,MAAO,CAACgO,SAAS,SAASiI,OAAO,KAAtC,4BAEA,qBAAKjW,MAAO,CAACgO,SAAS,OAAtB,SAA+BzQ,EAAE0W,KACjC,qBAAKjU,MAAO,CAACgO,SAAS,OAAtB,SAA+BzQ,EAAE2Y,KACjC,qBAAKlW,MAAO,CAACgO,SAAS,OAAtB,SAA+BzQ,EAAE4Y,KACjC,qBAAKnW,MAAO,CAACgO,SAAS,QAAtB,SAAgCzQ,EAAE6Y,iBAClC,qBAAKpW,MAAO,CAACgO,SAAS,QAAtB,SAAgCzQ,EAAE8Y,MAClC,sBAAKrW,MAAO,CAACgO,SAAS,SAAS7H,MAAM,WAArC,UAAiD,qBAAKb,IAAI,GAAGD,IAA4B,mBAAzF,MAA6H,IAAZ9H,EAAE+Y,WAAeC,QAAQ,GAA1I,IAA8I,uBAAM,qBAAKjR,IAAI,GAAGD,IAA4B,mBAA5L,MAAgO,IAAZ9H,EAAEiZ,WAAeD,QAAQ,GAA7O,OACA,sBAAKvW,MAAO,CAACgO,SAAS,QAAtB,UAA+B,qBAAK1I,IAAI,GAAGD,IAA4B,2BAAvE,KAAmH,IAAb9H,EAAEkZ,YAAgBF,QAAQ,GAAhI,IAAoI,uBAAM,qBAAKjR,IAAI,GAAGD,IAA4B,4BAAlL,KAAgO,IAAd9H,EAAEmZ,aAAiBH,QAAQ,GAA7O,IAAiP,uBAAM,qBAAKjR,IAAI,GAAGD,IAA4B,4BAA/R,KAA6U,IAAd9H,EAAEoZ,aAAiBJ,QAAQ,GAA1V,IAA8V,uBAAM,qBAAKjR,IAAI,GAAGD,IAA4B,2BAA5Y,KAAwb,IAAb9H,EAAEqZ,YAAgBL,QAAQ,GAArc,IAAyc,0BACzc,sBAAKvW,MAAO,CAACgO,SAAS,UAAUiI,OAAO,KAAvC,WAA8D,IAAf1Y,EAAEsZ,cAAkBN,QAAQ,GAA3E,OAEA,qBAAKvW,MAAO,CAACgO,SAAS,WAAtB,SAAkC,qBAAK/N,UAAU,WAAf,SAA0B,sBAAMA,UAAU,aAAaD,MAAO,CAAC8W,WAAW,wCAA0CvZ,EAAE0W,GAAGjD,EAAY,IAAK,WAAazT,EAAE0W,GAAGjD,EAAY,IAAK,MAAnJ,sBAC5D,qBAAKhR,MAAO,CAACgO,SAAS,WAAtB,SAAkC,qBAAK/N,UAAU,WAAf,SAA0B,sBAAMA,UAAU,aAAaD,MAAO,CAAC8W,WAAW,wCAA0CvZ,EAAE2Y,GAAGhF,EAAY,IAAK,WAAa3T,EAAE2Y,GAAGhF,EAAY,IAAK,MAAnJ,sBAC5D,qBAAKlR,MAAO,CAACgO,SAAS,WAAtB,SAAkC,qBAAK/N,UAAU,WAAf,SAA0B,sBAAMA,UAAU,aAAaD,MAAO,CAAC8W,WAAW,wCAA0CvZ,EAAE4Y,GAAG/E,EAAY,IAAK,WAAa7T,EAAE4Y,GAAG/E,EAAY,IAAK,MAAnJ,sBAC5D,qBAAKpR,MAAO,CAACgO,SAAS,YAAtB,SAAmC,qBAAK/N,UAAU,WAAf,SAA0B,sBAAMA,UAAU,aAAaD,MAAO,CAAC8W,WAAW,wCAA0CvZ,EAAE6Y,eAAe9E,EAAa,IAAK,WAAa/T,EAAE6Y,eAAe9E,EAAa,IAAK,MAA7K,sBAC7D,qBAAKtR,MAAO,CAACgO,SAAS,YAAtB,SAAmC,qBAAK/N,UAAU,WAAf,SAA0B,sBAAMA,UAAU,aAAaD,MAAO,CAAC8W,WAAW,wCAA0CvZ,EAAE8Y,IAAI7E,EAAa,IAAK,WAAajU,EAAE8Y,IAAI7E,EAAa,IAAK,MAAvJ,sBAC7D,qBAAKxR,MAAO,CAACgO,SAAS,SAAS7H,MAAM,WAArC,SAAkD,gCAAK,qBAAKb,IAAI,GAAGD,IAA4B,mBAA7C,MAAiF,IAAZ9H,EAAEwZ,WAAeR,QAAQ,GAA9F,SAClD,qBAAKvW,MAAO,CAACgO,SAAS,QAAtB,SAA+B,gCAAK,qBAAK1I,IAAI,GAAGD,IAA4B,6BAA7C,KAA6F,IAAf9H,EAAEyZ,cAAkBT,QAAQ,GAA1G,IAA8G,uBAAM,qBAAKjR,IAAI,GAAGD,IAA4B,4BAA5J,KAA0M,IAAd9H,EAAE0Z,aAAiBV,QAAQ,GAAvN,IAA2N,uBAAM,qBAAKjR,IAAI,GAAGD,IAA4B,6BAAzQ,KAAyT,IAAf9H,EAAE2Z,cAAkBX,QAAQ,GAAtU,IAA0U,+BAE7V,yBAAStW,UAAU,eAAnB,SACN,wBAAQyF,QAAS,YAhKvB,WAAqB,IAAD,IACdyR,EAAU,CACZlI,MAAMA,GACN+C,eAAeA,GACf8C,eAAc,UAAC3B,GAtU2B,UAsU5B,aAAC,EAA+BvR,KAC9CgT,WAAU,UAACzB,GAvUS,UAuUV,aAAC,EAAmCvR,KAC9C8T,WAAU,OAACrC,SAAD,IAACA,QAAD,EAACA,GAAgBzR,KAC3B+T,WAAU,OAACpC,SAAD,IAACA,QAAD,EAACA,GAAgB3R,KAC3BgU,WAAU,OAACnC,SAAD,IAACA,QAAD,EAACA,GAAgB7R,KAC3B4M,OAAOA,GACPJ,eAAeA,IAEjBzI,IAAMC,KAAKC,EAAW,eAAe,CACnClE,GAAG8O,EACHnJ,SAASJ,EACTpB,KAAKqB,EACLiN,QAAQ1C,EACR2C,WAAWzC,GACX0C,OAAOrU,GACPsU,OAAOzC,GACP3N,KAAKsQ,KAAK2C,UAAUD,KACrBjR,MAAK,SAAC/B,GACL,IAAMkT,EAAMC,YAAUzG,EAAS0G,SAAS,CACtCC,KAAKja,EAAEia,KACPC,OAAM,EACNC,QAAO,IAET/G,EAAQ/L,KAAKyS,EAAMG,KAAKG,QAAQ,YAAY,IAAI,IAAIxT,EAAKA,KAAKxC,OAqItCiW,IAAtB,6BAIA,sBAAK3X,UAAU,MAAf,UACI,qBAAKA,UAAU,cAAf,SACA,yCACA,sBAAKA,UAAU,eAAf,UACV,sBAAKA,UAAU,mBAAf,UAAkC,yCAAgB,sBAAKA,UAAW,0BAA0B6T,GAAYX,GA1e1D,IA0eI,UAAsF,qCAAc,qBAAK7N,IAAI,GAAGrF,UAAU,KAAKoF,IAAKsB,EAAW,UAACwM,GA1e5D,UA0e2D,aAAC,EAAuCvM,cACzN,sBAAKlB,QAAS,WAAKkO,GAAsB,GAAGV,IAAyB,IAAQjT,UAAW,mBAAmB6T,GAAYT,IAAvH,UAAwI,yCAAgB,qBAAKpT,UAAU,0BAAf,SAAyC,qBAAKqF,IAAI,GAAGrF,UAAU,KAAKoF,IAAKsB,EAAY0M,GAAezM,aAC1P,sBAAKlB,QAAS,WAAKkO,GAAsB,GAAGV,IAAyB,IAAQjT,UAAW,mBAAmB6T,GAAYP,IAAvH,UAAwI,yCAAgB,qBAAKtT,UAAU,0BAAf,SAAyC,qBAAKqF,IAAI,GAAGrF,UAAU,KAAKoF,IAAKsB,EAAY4M,GAAe3M,aAC5P,sBAAKlB,QAAS,WAAKkO,GAAsB,GAAGV,IAAyB,IAAQjT,UAAW,mBAAmB6T,GAAYL,IAAvH,UAAwI,yCAAgB,qBAAKxT,UAAU,0BAAf,SAAyC,qBAAKqF,IAAI,GAAGrF,UAAU,KAAKoF,IAAKsB,EAAY8M,GAAe7M,sBAQxQ,sBAAK3G,UAAU,aAAf,UACI,sBAAKA,UAAU,kBAAf,UACE,qBAAKA,UAAU,cAAf,SACE,mDACF,qBAAIA,UAAU,wBAAd,UAAuC2N,EAAqBuF,IAA5D,SACA,eAAC7I,EAAD,CAAaC,MAAO,EAAGH,YAAagI,GAAYlI,eAAgBmI,GAAhE,UAA+E,cAAC,IAAD,IAA/E,mBACgB,IAAfD,GAEb,qCACA,sBAAKnS,UAAU,qBAAf,UACA,sBAAKA,UAAW,qCAAqC6T,GAAYX,GA/fnB,IA+fmDzN,QAAS,WAAKsN,IAA0B,IAAzI,UACA,qBAAK/S,UAAU,cAAf,SAA6B,8BAAG,cAAC,IAAD,IAAH,aAC7B,qBAAKqF,IAAI,GAAGD,IAAKsB,EAAW,UAACwM,GAjgByG,UAigB1G,aAAC,EAAuCvM,WACpE,qBAAK3G,UAAU,wBAAf,SACA,sBAAKA,UAAU,+BAAf,UAEA,qBAAKD,MAAO,CAACgO,SAAS,UAAtB,oBACA,qBAAKhO,MAAO,CAACgO,SAAS,SAAS/N,UAAW6T,GAAYX,GAtgBR,IAsgB9C,SAAsF,qBAAKlT,UAAU,oBAAf,iBAEtF,qBAAKD,MAAO,CAACgO,SAAS,UAAtB,oBACA,qBAAKhO,MAAO,CAACgO,SAAS,iBAAtB,iBAEA,qBAAKhO,MAAO,CAACgO,SAAS,WAAtB,qBACA,qBAAKhO,MAAO,CAACgO,SAAS,kBAAtB,eAEA,qBAAKhO,MAAO,CAACgO,SAAS,cAAtB,6BACA,qBAAKhO,MAAO,CAACgO,SAAS,qBAAtB,2CAIA,sBAAK/N,UAAU,2CAAf,UACA,qBAAKA,UAAU,cAAf,SAA6B,8BAAG,cAAC,IAAD,IAAH,aAC7B,qBAAKA,UAAU,gBAAf,SAA+B,sBAAMA,UAAU,MAAhB,oCAC/B,qBAAKA,UAAU,WAAf,SAA0B,sBAAMA,UAAU,OAAhB,gCAC1B,sBAAKA,UAAU,qBAAf,UACA,sBAAMA,UAAU,MAAhB,qBACA,sBAAKA,UAAU,4BAAf,UAEA,8BAAK,mDACL,wBACA,wBACA,oCAS4B,IAAfmS,GACC,sBAAKnS,UAAU,eAAf,UACE,sBAAKA,UAAU,YAAf,UACE,iDACA,+BACE,+BAAI,sBAAKA,UAAU,0BAAf,UAAyC,qBAAKqF,IAAI,GAAGD,IAAI,yBAAyB,iDAAmB,uBAAnB,0EAAuG,sBAAMpF,UAAU,MAAhB,iCAC7L,+BAAI,sBAAKA,UAAU,0BAAf,UAAyC,qBAAKqF,IAAI,GAAGD,IAAI,yBAAyB,kDAA8B,sBAAMpF,UAAU,OAAhB,iCACpH,+BAAI,sBAAKA,UAAU,0BAAf,UAAyC,qBAAKqF,IAAI,GAAGD,IAAI,yBAAyB,yCAAW,uBAAX,oCAAyD,sBAAMpF,UAAU,MAAhB,+BAC/I,+BAAI,sBAAKA,UAAU,0BAAf,UAAyC,qBAAKqF,IAAI,GAAGD,IAAI,yBAAyB,0DAA4B,uBAA5B,+BAA8D,uBAA9D,gCAAwG,sBAAMpF,UAAU,MAAhB,gCAC9L,+BAAI,sBAAKA,UAAU,0BAAf,UAAyC,qBAAKqF,IAAI,GAAGD,IAAI,yBAAyB,0CAAY,uBAAZ,oCAA0D,sBAAMpF,UAAU,MAAhB,mCAChJ,+BAAI,sBAAKA,UAAU,0BAAf,UAAyC,qBAAKqF,IAAI,GAAGD,IAAI,yBAAyB,kEAA8C,sBAAMpF,UAAU,MAAhB,8BACpI,6BAAI,qBAAKqF,IAAI,GAAGD,IAAI,iCAGxB,sBAAKpF,UAAU,KAAf,UACE,iDACA,+BACE,uDAAyB,0CACzB,oDAAsB,wCACtB,+CAAiB,iDAKvB,8CASJ,sBAAKA,UAAU,MAAf,UACE,qBAAKA,UAAU,cAAf,SACE,8CACF,qBAAIA,UAAU,WAAd,UACE,oCACE,oBAAIA,UAAU,OAAd,sCACA,yEACA,oBAAIA,UAAU,OAAd,4CACA,iDACA,oBAAIA,UAAU,QAAd,6BACA,oBAAIA,UAAU,QAAd,oCACF,+CACE,iDACA,0CACA,oBAAIA,UAAU,QAAd,6BACA,0CACF,sCACE,oBAAIA,UAAU,OAAd,yBACA,yDAYV,sBAAKA,UAAU,aAAf,UAGA,sBAAKA,UAAU,MAAf,UACA,qBAAKA,UAAU,cAAf,SACA,mDACA,cAACqK,EAAD,CAAaC,MAAO,EAAGH,YAAa8H,GAAYhI,eAAgBiI,KAClD,IAAbD,GAAe,qCAAE,6CAAoB,qBAAIjS,UAAU,YAAd,UAA0B,qBAAIyF,QAAS,WAAK+M,IAAsB,IAAxC,8BAI1D,+BACE,+BAAI,qBAAKnN,IAAI,GAAGD,IAAI,oCAApB,iCACA,+BAAI,qBAAKC,IAAI,GAAGD,IAAI,oCAApB,qDAGJ,iDACE,+BACE,+BAAI,qBAAKC,IAAI,GAAGD,IAAI,oCAApB,yBACA,+BAAI,qBAAKC,IAAI,GAAGD,IAAI,oCAApB,0CAGJ,kDACE,6BACE,+BAAI,qBAAKC,IAAI,GAAGD,IAAI,oCAApB,oCAEU,gCAGlB,sBAAKpF,UAAU,MAAf,UACA,qBAAKA,UAAU,cAAf,SACA,gDACA,cAACqK,EAAD,CAAaC,MAAO,EAAGH,YAAakI,GAAUpI,eAAgBqI,KAC9D,gCACE,gCACc,IAAXD,GAAa,qCACZ,+BACE,mDACA,uCAEF,+BACE,qDACA,yCAEF,+BACE,0CACA,wCAEF,+BACE,0CACA,wCAEF,+BACE,2CACA,6BAAI,sBAAMrS,UAAU,KAAhB,yBAEJ,qCACF,+BACE,mDACA,sCAEF,+BACE,qDACA,sCAEF,+BACE,0CACA,sCAEF,+BACE,0CACA,sCAEF,+BACE,2CACA,6BAAI,sBAAMA,UAAU,KAAhB,oCAUlB,cAACkN,EAAD,CAAqBK,MAAOvN,GAAWwN,SAAUqE,GAAcpE,aAAcA,GAAcL,aAAcxC,GAAoBC,UAAW+I,GAAiBlG,gBAAiBA,GAAiBxC,UAAWuH,GAAuBrH,aAAcN,GAA0B3K,QAAS7C,EAAE6C,UAC1Q,cAAC,IAAD,CAAO6K,aAAa,EAAOC,OAAQyH,GAA0BvH,eAAgB,WAAQwH,IAA4B,IAAUtH,wBAAwB,EAAMC,2BAA2B,EAAMC,kBAAkB,EAAMvL,UAAU,QAAQwL,iBAAiB,eAArP,SACE,sBAAKxL,UAAU,mBAAf,UACE,sBAAKA,UAAU,cAAf,UACE,kDACA,qBAAKA,UAAU,UAAUyF,QAAS,WAAQkN,IAA4B,SAExE,cAACtI,EAAD,CAAaC,MAAOhJ,OAAOC,KAAKjE,EAAE6C,QAAQ,UAAU4D,OAAQwG,UAAWjJ,OAAOC,KAAKjE,EAAE6C,QAAQ,UAAUe,KAAI,SAACZ,GAAD,OAAMA,KAAK8J,YAAa9I,OAAOC,KAAKjE,EAAE6C,QAAQ,UAAUe,KAAI,SAACZ,GAAD,OAAM,qCAAE,qBAAKN,UAAU,mBAAmBqF,IAAI,GAAGD,IAAK9H,EAAE6C,QAAQ,QAAQG,EAAG,UAArE,IAAiFA,QAAS6J,YAAayI,GAAU3I,eAAgB4I,KAC9S,cAACzD,EAAD,CAAoBjB,eAAgBA,GAAgBO,kBAAmBA,GAAmBxE,KAAM0I,GAAUrE,OAAQA,GAAQE,UAAWA,GAAWtO,QAAS7C,EAAE6C,QAASG,GAAIgB,OAAOC,KAAKjE,EAAE6C,QAAQ,UAAUyS,GAAS,KACjN,sBAAK5S,UAAU,cAAf,UACE,oDAAsB,+BAAO,GAAGuO,GAAOqE,GAAS,QAChD,qCAAO,yBAAcrE,GAAOqE,GAAS,SAEvC,sBAAK5S,UAAU,eAAf,UAA8B,2CAAoB,kDAI5D,cAAC4L,EAAD,CAAgBH,MAAM,mBAAmBP,UAAW4H,GAAwB1H,aAAc2H,GAA2B5S,QAAS7C,EAAE6C,QAC9HoK,UAAW,CAAC,MAAM,QAAQ,WAAW,MAAM,SAC3C2B,UAAW,CAAC,gBAAgB,SAAS,SAAS,WAC9C1K,QAAQ,EACR8K,aAAc,WACZ,IAAIgB,EAAKhQ,EAAE6C,QAAQ,yBACjB,OAAOiV,MAAMC,QAAQ/H,GAAMA,EAAKpM,KAAI,SAACoU,GACnC,IAAIZ,EAAYpX,EAAE6C,QAAQ,cAAcmV,EAAsBC,oBAAevR,GAAU,GACnF4Q,EAAOtX,EAAE6C,QAAQ,SAASmV,EAAsBE,eAAUxR,GAAU,GACpE8Q,EAAUxX,EAAE6C,QAAQ,YAAYyU,EAAOG,kBAAa/Q,GAAU,GAC9DgR,EAAc1X,EAAE6C,QAAQ,kBACxB8U,EAAkB,GACtB,IAAK,IAAIC,KAAOF,EACVE,EAAItO,SAASkO,EAAUnT,OACzBsT,EAAkBtQ,KAAKrH,EAAE6C,QAAQ,iBAAiB+U,IAGtD,MAAO,CAACR,EAAYE,EAAOE,EAAUG,EAAkBK,MACtD,IAEP7I,eAAgB,SAACvC,EAAKqC,GACpB,OAAQrC,GACN,KAAK,EAAE,MAAsC,kBAA/BqC,EAluBI,GAkuBoB5K,KACtC,KAAK,EAAE,MAAsC,aAA/B4K,EAnuBI,GAmuBoB5K,KACtC,KAAK,EAAE,MAAsC,QAA/B4K,EApuBI,GAouBoB5K,KACtC,KAAK,EAAE,MAAsC,UAA/B4K,EAruBI,GAquBoB5K,KACtC,QAAQ,OAAO,IAGnB+K,oBAAqB,SAACkL,EAAWrL,GAAZ,QAAmBqL,EAAW7T,OAAO,KAAGwI,EAzuBjB,GAyuBqC5K,KAAKkW,cAAc,IAAItL,EAzuBlF,GAyuB0G5K,KAAKkW,eAAejR,SAASgR,EAAWC,gBACxK/K,kBAAmB,SAACH,EAAKmL,EAAMC,GAC7B,OAAQpL,GACN,IAAK,SAAS,OAAOoL,EAAM,GAAGhE,OAAO+D,EAAM,GAAG/D,OAC9C,IAAK,SAAS,OAAOgE,EAAM,GAAGC,IAAIF,EAAM,GAAGE,IAC3C,QAAQ,OAAO,IAGnBjL,gBAAiB,SAACR,GAAQ,IAAD,EACzB,OAAM,sBAAKvM,UAAW,gBAAgBuM,EAlvBM,GAkvBcwH,OAAQtO,QAAS,WAAK0N,GAAkB5G,GAAMwG,IAA0B,IAA5H,UAAqI,qBAAK/S,UAAU,iBAAf,SAAgC,qBAAKqF,IAAI,GAAGD,IAAKsB,EAAW,UAAC6F,EAlvBpE,UAkvBmE,aAAC,EAA6B5F,UAAe,qBAAK3G,UAAU,wBAAf,SAAwC2N,EAAqBpB,KAAY,qBAAKvM,UAAU,oBAAf,kBAA+C,sBAAKA,UAAU,wBAAf,UAAuC,sBAAMA,UAAU,MAAhB,SAAuBuM,EAlvB9X,GAkvBkZyL,MAE5b,cAACrQ,EAAD,CAAejG,GAAI,oBAAoB6K,EApvBnB,GAovB2C7K,GAAG,IAAI6K,EApvB5B,GAovBgD7K,GAAG,IAAI6K,EApvB9B,GAovBqD7K,GAAG,IAAI6K,EApvB3B,GAovB0D7K,GAAIoG,QAAS,mCAAGyE,EApvB1E,GAovByGrL,KAAI,SAACgU,EAAI3O,GAAL,OAAS,eAAC,IAAMC,SAAP,WAA8B,IAAJD,GAAQ,uBAAO2O,EAAIvT,KAA7C,KAAqDuT,EAAI+C,YAAY/C,EAAI+C,YAAY5Y,MAAM,OAAO6B,KAAI,SAACgX,EAAGC,GAAJ,OAAS,eAAC,IAAM3R,SAAP,WAA0B0R,EAAG,uBAA7B,MAAqBC,MAAiC,cAAC,IAAM3R,SAAP,GAAqBD,KAArKA,QAA/O,SAEA,sBAAMvG,UAAU,MAAhB,SAAuBuM,EAtvB4C,GAsvBrB5K,kBAIlD,cAACiK,EAAD,CAAgBH,MAAO,0BAA0BiI,GAAoBxI,UAAW8H,GAAuB5H,aAAc6H,GAA0B9S,QAAS7C,EAAE6C,QACxJoK,UAAW,GACX2B,UAAW,CAAC,gBAAgB,SAAS,KAAK,KAAK,gBAAgB,gBAAgB,gBAC/E1K,QAAQ,EACR8K,aAAc,WACZ,IAAIgB,EAAKhQ,EAAE6C,QAAQ,SACjB,MAAqB,kBAAPmN,GAAwB,OAAPA,EAAYhM,OAAOC,KAAK+L,GAAMpM,KAAI,SAACkX,GAChE,OAAO9K,EAAK8K,MACX,IAEP3L,eAAgB,SAACvC,EAAKqC,GAAN,OAAaA,EAAK8L,OAAO3E,IACzChH,oBAAqB,SAACkL,EAAWrL,GAAZ,QAAmBqL,EAAW7T,OAAO,IAAEwI,EAAK5K,KAAKkW,cAAcjR,SAASgR,EAAWC,gBACxG/K,kBAAmB,SAACH,EAAKmL,EAAMC,GAC7B,OAAQpL,GACN,IAAK,SAAS,OAAOoL,EAAMhE,OAAO+D,EAAM/D,OACxC,IAAK,KAAK,OAAOgE,EAAM9B,GAAG6B,EAAM7B,GAChC,IAAK,KAAK,OAAO8B,EAAM7B,GAAG4B,EAAM5B,GAChC,IAAK,gBAAgB,OAAO6B,EAAMO,QAAQR,EAAMQ,QAChD,IAAK,gBAAgB,OAAOP,EAAMQ,QAAQT,EAAMS,QAChD,IAAK,eAAe,OAAOR,EAAMS,QAAQV,EAAMU,QAC/C,QAAQ,OAAO,IAGnBzL,gBAAiB,SAACR,GAClB,OAAO,sBAAKvM,UAAW,gBAAgBuM,EAAKwH,OAAQtO,QAAS,WAC3D,OAAOiO,IACL,KAAK,EAAEL,GAAkB9G,GAAM,MAC/B,KAAK,EAAEgH,GAAkBhH,GAAM,MAC/B,KAAK,EAAEkH,GAAkBlH,GAAM,MAC/B,QAAQ8G,GAAkB9G,GAE5B0G,IAAyB,IAPpB,UAQC,qBAAKjT,UAAU,iBAAf,SAAgC,qBAAKqF,IAAI,GAAGD,IAAKsB,EAAW,OAAC6F,QAAD,IAACA,OAAD,EAACA,EAAM5F,UACnE,qBAAK3G,UAAU,wBAAf,SAAwCuM,EAAK5K,OAC7C,qBAAK3B,UAAU,oBAAoBD,MAAO,CAACgO,SAAS,UAApD,kBACA,qBAAK/N,UAAU,wBAAf,SAAuC,sBAAMA,UAAU,MAAhB,SAAuBuM,EAAK6J,cAK7E,eAACxK,EAAD,CAAgBH,MAAO,YAAaP,UAAWqH,GAAoBnH,aAAcoH,GAAuBrS,QAAS7C,EAAE6C,QAAnH,UAEA,sBAAKH,UAAU,uBAAf,UAAsC,qBAAKA,UAAU,iBAAf,SAAgC,qBAAKqF,IAAI,GAAGD,IAAKsB,EAAY,iCAAsC,qBAAK1G,UAAU,uBAAf,+EAA6G,qBAAKA,UAAU,oBAAf,kBAA+C,sBAAKA,UAAU,wBAAf,UAAuC,sBAAMA,UAAU,MAAhB,kBAAiC,sBAAMA,UAAU,MAAhB,iCAAmD,sBAAKA,UAAU,sBAAf,UAAqC,qCAAc,qCAAc,2CACje,sBAAKA,UAAU,iBAAf,UAAgC,qBAAKA,UAAU,iBAAf,SAAgC,qBAAKqF,IAAI,GAAGD,IAAKsB,EAAY,2CAAgD,qBAAK1G,UAAU,uBAAf,sBAAoD,qBAAKA,UAAU,oBAAf,kBAA+C,sBAAKA,UAAU,wBAAf,UAAuC,sBAAMA,UAAU,MAAhB,kBAAiC,sBAAMA,UAAU,MAAhB,iCAAmD,sBAAKA,UAAU,sBAAf,UAAqC,qCAAc,qCAAc,2CAC5a,sBAAKA,UAAU,uBAAf,UAAsC,qBAAKA,UAAU,iBAAf,SAAgC,qBAAKqF,IAAI,GAAGD,IAAKsB,EAAY,2CAAgD,qBAAK1G,UAAU,uBAAf,4BAA0D,qBAAKA,UAAU,oBAAf,kBAA+C,sBAAKA,UAAU,wBAAf,UAAuC,sBAAMA,UAAU,MAAhB,kBAAiC,sBAAMA,UAAU,MAAhB,iCAAmD,sBAAKA,UAAU,sBAAf,UAAqC,qCAAc,qCAAc,2CACxb,sBAAKA,UAAU,uBAAf,UAAsC,qBAAKA,UAAU,iBAAf,SAAgC,qBAAKqF,IAAI,GAAGD,IAAKsB,EAAY,+CAAoD,qBAAK1G,UAAU,uBAAf,yEAAuG,qBAAKA,UAAU,oBAAf,kBAA+C,sBAAKA,UAAU,wBAAf,UAAuC,sBAAMA,UAAU,MAAhB,kBAAiC,sBAAMA,UAAU,MAAhB,iCAAmD,sBAAKA,UAAU,sBAAf,UAAqC,qCAAc,qCAAc,2CACze,sBAAKA,UAAU,iBAAf,UAAgC,qBAAKA,UAAU,iBAAf,SAAgC,qBAAKqF,IAAI,GAAGD,IAAKsB,EAAY,iCAAsC,qBAAK1G,UAAU,uBAAf,+EAA6G,qBAAKA,UAAU,oBAAf,kBAA+C,sBAAKA,UAAU,wBAAf,UAAuC,sBAAMA,UAAU,MAAhB,kBAAiC,sBAAMA,UAAU,MAAhB,iCAAmD,sBAAKA,UAAU,sBAAf,UAAqC,qCAAc,qCAAc,2CAC3d,sBAAKA,UAAU,iBAAf,UAAgC,qBAAKA,UAAU,iBAAf,SAAgC,qBAAKqF,IAAI,GAAGD,IAAKsB,EAAY,2CAAgD,qBAAK1G,UAAU,uBAAf,sBAAoD,qBAAKA,UAAU,oBAAf,kBAA+C,sBAAKA,UAAU,wBAAf,UAAuC,sBAAMA,UAAU,MAAhB,kBAAiC,sBAAMA,UAAU,MAAhB,iCAAmD,sBAAKA,UAAU,sBAAf,UAAqC,qCAAc,qCAAc,2CAC5a,sBAAKA,UAAU,iBAAf,UAAgC,qBAAKA,UAAU,iBAAf,SAAgC,qBAAKqF,IAAI,GAAGD,IAAKsB,EAAY,2CAAgD,qBAAK1G,UAAU,uBAAf,4BAA0D,qBAAKA,UAAU,oBAAf,kBAA+C,sBAAKA,UAAU,wBAAf,UAAuC,sBAAMA,UAAU,MAAhB,kBAAiC,sBAAMA,UAAU,MAAhB,iCAAmD,sBAAKA,UAAU,sBAAf,UAAqC,qCAAc,qCAAc,2CAClb,sBAAKA,UAAU,iBAAf,UAAgC,qBAAKA,UAAU,iBAAf,SAAgC,qBAAKqF,IAAI,GAAGD,IAAKsB,EAAY,+CAAoD,qBAAK1G,UAAU,uBAAf,yEAAuG,qBAAKA,UAAU,oBAAf,kBAA+C,sBAAKA,UAAU,wBAAf,UAAuC,sBAAMA,UAAU,MAAhB,kBAAiC,sBAAMA,UAAU,MAAhB,iCAAmD,sBAAKA,UAAU,sBAAf,UAAqC,qCAAc,qCAAc,2CACne,sBAAKA,UAAU,iBAAf,UAAgC,qBAAKA,UAAU,iBAAf,SAAgC,qBAAKqF,IAAI,GAAGD,IAAKsB,EAAY,iCAAsC,qBAAK1G,UAAU,uBAAf,+EAA6G,qBAAKA,UAAU,oBAAf,kBAA+C,sBAAKA,UAAU,wBAAf,UAAuC,sBAAMA,UAAU,MAAhB,kBAAiC,sBAAMA,UAAU,MAAhB,iCAAmD,sBAAKA,UAAU,sBAAf,UAAqC,qCAAc,qCAAc,2CAC3d,sBAAKA,UAAU,iBAAf,UAAgC,qBAAKA,UAAU,iBAAf,SAAgC,qBAAKqF,IAAI,GAAGD,IAAKsB,EAAY,2CAAgD,qBAAK1G,UAAU,uBAAf,sBAAoD,qBAAKA,UAAU,oBAAf,kBAA+C,sBAAKA,UAAU,wBAAf,UAAuC,sBAAMA,UAAU,MAAhB,kBAAiC,sBAAMA,UAAU,MAAhB,iCAAmD,sBAAKA,UAAU,sBAAf,UAAqC,qCAAc,qCAAc,2CAC5a,sBAAKA,UAAU,iBAAf,UAAgC,qBAAKA,UAAU,iBAAf,SAAgC,qBAAKqF,IAAI,GAAGD,IAAKsB,EAAY,2CAAgD,qBAAK1G,UAAU,uBAAf,4BAA0D,qBAAKA,UAAU,oBAAf,kBAA+C,sBAAKA,UAAU,wBAAf,UAAuC,sBAAMA,UAAU,MAAhB,kBAAiC,sBAAMA,UAAU,MAAhB,iCAAmD,sBAAKA,UAAU,sBAAf,UAAqC,qCAAc,qCAAc,2CAClb,sBAAKA,UAAU,iBAAf,UAAgC,qBAAKA,UAAU,iBAAf,SAAgC,qBAAKqF,IAAI,GAAGD,IAAKsB,EAAY,+CAAoD,qBAAK1G,UAAU,uBAAf,yEAAuG,qBAAKA,UAAU,oBAAf,kBAA+C,sBAAKA,UAAU,wBAAf,UAAuC,sBAAMA,UAAU,MAAhB,kBAAiC,sBAAMA,UAAU,MAAhB,iCAAmD,sBAAKA,UAAU,sBAAf,UAAqC,qCAAc,qCAAc,kD,oBCjyB7d+G,GAAUD,EAAQ,IAClBpB,GAAQoB,EAAQ,IAChB2N,GAAQ3N,EAAQ,KAgBhBlB,GAAWiB,mIAAY4R,gCAAgC5R,mIAAY6R,sBAAsB,gCACzF5H,GAAY,cAElB,SAAS6H,GAAcrb,GACtB,OAAQsI,IAAatI,EAAEsb,SAAS,QAAQ,IAGzC,SAASC,GAAIvb,GACZ,OAAO,mCACN,sBAAK0C,UAAU,MAAf,UACA,qBAAKA,UAAU,cAAf,SACA,6BAAK1C,EAAEmO,UAELnO,EAAE2C,cAKN,SAAS6Y,GAAMxb,GACd,OAAO,sBAAM0C,UAAW1C,EAAEyb,QAAnB,SAEJzb,EAAE2C,WAKN,SAAS+Y,GAAS1b,GACjB,MAAyBG,mBAASH,EAAEqD,OAApC,mBAAOA,EAAP,KAAasY,EAAb,KACA,EAA2Bxb,oBAAS,GAApC,mBAAOyb,EAAP,KAAcC,EAAd,KACA,EAA6B1b,oBAAS,GAAtC,mBAAO2b,EAAP,KAAeC,EAAf,KAEA,SAASC,EAAW9Y,GAAGyY,EAASzY,EAAEE,cAAcC,OAC3CrD,EAAEic,WACLjc,EAAEic,UAAU/Y,EAAEE,cAAcC,OAE9B,SAAS6Y,EAAShZ,GACblD,EAAEmD,UACL4Y,GAAW,GACXF,GAAU,GACV7b,EAAEmD,SAASD,EAAEE,cAAcC,OAC1BsF,MAAK,WAAKkT,GAAU,MACpB/S,OAAM,WAAK+S,GAAU,MACrBlT,MAAK,WAAKoT,GAAW,OAEnB/b,EAAEmc,WACLnc,EAAEmc,UAAUjZ,EAAEE,cAAcC,OAE9B,SAAS+Y,EAAYlZ,GAChBlD,EAAEqc,WACLrc,EAAEqc,UAAUnZ,EAAEG,GAIhB,OAAOrD,EAAE4G,KAAK,yBAAQ0V,SAAUtc,EAAEuc,eAAgB7Z,UAAWkZ,EAAO,cAAcE,EAAQ,aAAa,GAAIzY,MAAOA,EAAOuI,UAAW,SAAC1I,GAAKkZ,EAAYlZ,IAAKD,SAAU,SAACC,GAAK8Y,EAAW9Y,IAAKgJ,OAAQ,SAAChJ,GAAKgZ,EAAShZ,IAApM,UACZlD,EAAEwc,mBAAmB,2BACrBxc,EAAE4G,KAAKhD,KAAI,SAACqL,GAAD,OAAQ,yBAAsB5L,MAAO4L,EAAK7K,GAAlC,UAAuC6K,EAAK7K,GAA5C,MAAmD6K,EAAK5K,MAAM4K,EAAKlF,WAAtDkF,EAAK7K,UAC7B,uBAAOkY,SAAUtc,EAAEuc,eAAgB7Z,UAAWkZ,EAAO,cAAcE,EAAQ,aAAa,GAAIzY,MAAOA,EAAOuI,UAAW,SAAC1I,GAAKkZ,EAAYlZ,IAAKD,SAAU,SAACC,GAAK8Y,EAAW9Y,IAAKgJ,OAAQ,SAAChJ,GAAKgZ,EAAShZ,MAG9M,SAASuZ,GAAYzc,GAEpB,IAAM0c,EAAY,GAEVpB,EAAatb,EAAbsb,SAUR,MAA2Bnb,mBAAS,IAApC,mBAAOwc,EAAP,KAAcC,EAAd,KACA,EAAuBzc,mBAAS,IAAhC,mBAAOyG,EAAP,KAAY0F,EAAZ,KACA,EAA2BnM,oBAAS,GAApC,mBAAO0c,EAAP,KAAchU,EAAd,KACA,EAAkCiU,sBAXlC,SAAoBC,EAAMF,GACzB,MAAa,UAATA,EACIH,GAERK,EAAMF,EAAOG,OAAOH,EAAOxZ,MACpB0Z,KAMgDL,GAAxD,mBAAOO,EAAP,KAAkBC,EAAlB,KACA,EAA6B/c,oBAAS,GAAtC,mBAAOgG,EAAP,KAAeC,EAAf,KACA,EAAuCjG,mBAAS,IAAhD,mBAAOgd,EAAP,KAAoBC,EAApB,KACA,EAAyCjd,oBAAS,GAAlD,mBAAOkd,EAAP,KAAqBC,EAArB,KACA,EAA2Cnd,oBAAS,GAApD,mBAAOoc,EAAP,KAAsBgB,EAAtB,KA0FA,OA3CA/c,qBAAU,WACTqI,GAAU,KACT,CAAC7I,EAAEia,KAAKqB,IAEV9a,qBAAU,WAAK,IAAD,gBACGmc,GADH,IACb,2BAAwB,CACvB,GAAe,SADQ,QACftY,KAAe,CACtBiZ,GAAiB,GACjB,QAJW,iCAOZ,CAACX,IAEHnc,qBAAU,WACT,GAAIqc,EAAQ,CACXzW,GAAW,GACX,IAAIoX,EAAiB,GACrBpV,GAAM8B,IAAIlK,EAAEsI,WAAWtI,EAAEia,KAAK,SAASja,EAAEwI,UACxCG,MAAK,SAAC/B,GACN,IAAI6W,EAAO7W,EAAKA,KAAK+V,OACjBe,EAAO9W,EAAKA,KAAK8W,KAErBd,EAAUa,EAAKvZ,QAAO,SAACyZ,EAAI1U,GAAL,MAAoB,OAAX0U,EAAItZ,QAAmB,IAAJ4E,GAAkB,SAAX0U,EAAItZ,UAE7D,IAAIuZ,EAAe,GASnB,OAPAH,EAAKvZ,QAAO,SAACyZ,GAAD,MAAkB,OAAXA,EAAItZ,MAAasZ,EAAItZ,KAAKiF,SAAS,UAAQuU,SAAQ,SAACF,GACtEC,EAAavW,KAAKe,GAAM8B,IAAIlK,EAAEsI,WAAW,IAAIqV,EAAItZ,KAAK+V,QAAQ,MAAM,IAAI,SAASpa,EAAEwI,UAClFG,MAAK,SAAC/B,GACN4W,EAAeG,EAAItZ,MAAMuC,EAAKA,KAAK8W,KAAKrO,MAAK,SAACC,EAAEC,GAAH,OAAOA,EAAEnL,GAAGkL,EAAElL,aAG7DkI,EAAQoR,GACDI,QAAQC,WAAWH,MAE1BjV,MAAK,WACLyU,EAAgBI,GAChBpX,GAAW,MAEZyC,GAAU,MAEV,CAACgU,EAAO7c,EAAEia,KAAKja,EAAEsI,WAAWtI,EAAEwI,WAEzB,mCACLrC,EAmCS,qCAAE,qBAAK2B,IAA4B,eAAgBC,IAAI,KAAI,qBAAKD,IAA4B,eAAgBC,IAAI,KAAI,qBAAKD,IAA4B,eAAgBC,IAAI,KAAI,qBAAKD,IAA4B,eAAgBC,IAAI,KAAI,qBAAKD,IAA4B,eAAgBC,IAAI,KAAI,qBAAKD,IAA4B,eAAgBC,IAAI,KAAI,qBAAKD,IAA4B,eAAgBC,IAAI,KAAI,qBAAKD,IAA4B,eAAgBC,IAAI,KAAI,qBAAKD,IAA4B,eAAgBC,IAAI,KAAI,qBAAKD,IAA4B,eAAgBC,IAAI,KAAI,qBAAKD,IAA4B,eAAgBC,IAAI,KAAI,qBAAKD,IAA4B,eAAgBC,IAAI,KAAI,qBAAKD,IAA4B,eAAgBC,IAAI,KAAI,qBAAKD,IAA4B,eAAgBC,IAAI,KAAI,qBAAKD,IAA4B,eAAgBC,IAAI,KAAI,qBAAKD,IAA4B,eAAgBC,IAAI,KAAI,qBAAKD,IAA4B,eAAgBC,IAAI,QAnCx8B,6CAAQsV,GAAe,oCAAS,uBAAO3a,UAAU,cAAcsF,QAAQ,UAAvC,wBAAmE,uBAAO/E,SAAU,SAACC,GAC5H,IAAM8a,EAAS,IAAIC,WACnBD,EAAOE,OAAO,SAACC,GACd,IAAIC,EAAS,GACbjH,GAAMgH,EAAGE,OAAOC,OAAO,CAACC,SAAQ,EAAKC,kBAAiB,IAAOX,SAAQ,SAACY,GAAS,IAAD,gBAC7D9B,GAD6D,IAC7E,2BAAwB,CAAC,IAAhBgB,EAAe,QACD,KAAjBA,EAAIe,YAAkC,MAAjBf,EAAIe,YAAmC,KAAjBf,EAAIe,YAAoC,KAAlBD,EAAMd,EAAItZ,QAC/Eoa,EAAMd,EAAItZ,MAAM,IAH2D,8BAM7E+Z,EAAS/W,KAAKe,GAAMC,KAAKrI,EAAEsI,WAAWtI,EAAEia,KAA1B,2BAAmCwE,GAAnC,IAAyClW,KAAKvI,EAAEwI,gBAE/DsV,QAAQC,WAAWK,GAClBzV,MAAK,WACLE,GAAU,OAGZmV,EAAOW,WAAWzb,EAAEmb,OAAOO,MAAM,KAC7Bnc,MAAO,CAACoc,QAAQ,GAAIza,GAAG,UAAU+E,KAAK,OAAO2V,OAAO,iBAC1D,8BACC,kCACE,gCACD,+BACC,oBAAIpc,UAAU,gBAAd,SAA8B,cAAC,IAAD,CAAWyF,QAAS,YAvFtD,WACC,IAAKoU,EAAgB,CACpBgB,GAAkB,GAClB,IAFoB,EAEhBa,EAAW,GAFK,cAGJxX,GAHI,IAGpB,2BAAsB,CAAC,IAAdqQ,EAAa,QACjBnM,SAASS,eAAe,UAAU0L,EAAI7S,IAAI2a,SAC7CX,EAAS/W,KAAKe,GAAM4W,OAAOhf,EAAEsI,WAAWtI,EAAEia,KAAK,CAACrT,KAAK,CAAC2B,KAAKvI,EAAEwI,SAASpE,GAAG6S,EAAI7S,QAL3D,8BAQpB0Z,QAAQC,WAAWK,GAClBtV,OAAM,SAACC,GACPkW,MAAMlW,EAAI9C,YAEV0C,MAAK,SAAC/B,GACN2W,GAAkB,GAClB1U,GAAU,OAwE8CqW,IAAmBxc,UAAU,kBACnFia,EAAO/Y,KAAI,SAACoZ,EAAM/T,GAAP,OAAW,cAAC,IAAMC,SAAP,UAAwB,oBAAIiW,MAAM,MAAMzc,UAAU,gBAA1B,SAA2Csa,EAAM3Y,QAApD4E,WAG5C,kCACE,+BAAI,uBAAU0T,EAAO/Y,KAAI,SAAC+Z,EAAI1U,GAAL,OAAS,6BAAa,cAACyS,GAAD,CAAUc,mBAAmB,EAAM5V,KAAMuW,EAAaQ,EAAItZ,MAAO4X,UAChH,SAAC/Y,GAAKga,EAAa,CAACF,MAAMW,EAAItZ,KAAKhB,MAAMH,QADE+F,MACc,+BAAI,uBAAOxG,MAAO,CAAC2c,QAAQ,UAAU,cAAC,IAAD,CAAYjX,QAAS,WA7GnHoU,IACJgB,GAAkB,GAClBnV,GAAMC,KAAKrI,EAAEsI,WAAWtI,EAAEia,KAA1B,2BAAmCgD,GAAnC,IAA8C1U,KAAKvI,EAAEwI,YACpDG,MAAK,WACLuU,EAAa,SACbrU,GAAU,MAEVC,OAAM,SAACC,GACPkW,MAAM/H,KAAK2C,UAAU9Q,EAAIsW,SAASzY,UAElC+B,MAAK,WACL4U,GAAkB,QAkGyH7a,UAAU,uBACnJkE,EAAKhD,KAAI,SAACqT,GAAD,OAAO,+BACjB,6BAAI,uBAAO7S,GAAI,UAAU6S,EAAI7S,GAAI+E,KAAK,eAAkBwT,EAAO/Y,KAAI,SAAC+Z,EAAI1U,GAAL,OAAS,oBAAuBvG,UAAU,sBAAjC,SAC3E,cAACgZ,GAAD,CAAUa,eAAgBA,EAAgB3V,KAAMuW,EAAaQ,EAAItZ,MAAOlB,SAAU,SAACE,GAAD,OAzHvF,SAAoBA,EAAMrD,EAAE2d,EAAI1G,GAAM,IAAD,EACpC,OAAO7O,GAAMkX,MAAMtf,EAAEsI,WAAWtI,EAAEia,MAA3B,mBACL0D,EAAItZ,KAAc,SAARhB,EAAe,KAAKA,GADzB,mBAEH4T,EAAI7S,IAFD,qBAGDpE,EAAEwI,UAHD,IAwHwF+W,CAAWlc,EAAMrD,EAAE2d,EAAI1G,IAAMoF,UAAW,SAACnZ,EAAEG,GAAS,GAAY,UAARH,EAAE4I,IAA8C,MAAO,QAArC5I,EAAEE,cAAcoc,QAAgCnc,MAAOqN,OAAOuG,EAAI0G,EAAItZ,UADvJ4S,EAAI7S,GAAG,IAAI6E,QADtEgO,EAAI7S,oBASnC,SAASqb,GAAezf,GACvB,MAA6BG,oBAAS,GAAtC,mBAAOgG,EAAP,KAAeC,EAAf,KACA,EAA6BjG,mBAAS,sBAAMsC,MAAO,CAACmG,MAAM,YAA1D,mBAAO3C,EAAP,KAAeC,EAAf,KACA,EAAiC/F,mBAAS,IAA1C,mBAAOuf,EAAP,KAAiBC,EAAjB,KACA,EAA2Bxf,oBAAS,GAApC,mBAAO0c,EAAP,KAAchU,EAAd,KAkBA,OAhBArI,qBAAU,WACLqc,IACHzU,GAAM8B,IAAIlK,EAAEsI,WAAW,mBAAmBtI,EAAEwI,UAC3CG,MAAK,SAAC/B,GACN+Y,EAAa/Y,EAAKA,SAElBkC,OAAM,SAACC,GACPuP,QAAQC,IAAIxP,EAAI9C,YAEhB0C,MAAK,WACLvC,GAAW,MAEZyC,GAAU,MAEV,CAACgU,EAAO7c,EAAEsI,WAAWtI,EAAEwI,WAElB,qCACJrC,EA0CG,qBAAK2B,IAA4B,eAAgBC,IAAI,KA1ChD,qCACR,wBAAQrF,UAAU,aAAaD,MAAO,CAACmd,gBAAgB,QAASzX,QAAS,WACxE/B,GAAW,GACXF,EAAW,sBAAMzD,MAAO,CAACmG,MAAM,SAApB,uDACXR,GAAMC,KAAKrI,EAAEsI,WAAW,wBAAwB,CAACC,KAAKvI,EAAEwI,WACvDG,MAAK,WACLzC,EAAW,sBAAMzD,MAAO,CAACmG,MAAM,SAApB,qDAEXE,OAAM,SAACC,GACP7C,EAAW,sBAAMzD,MAAO,CAACmG,MAAM,OAApB,SAA6BG,EAAI9C,cAE5C0C,MAAK,WACLvC,GAAW,OAXb,kDAagD,uBAAK,uBACrD,wBAAQ1D,UAAU,aAAaD,MAAO,CAACmd,gBAAgB,UAAYzX,QAAS,WAC3E/B,GAAW,GACXF,EAAW,sBAAMzD,MAAO,CAACmG,MAAM,SAApB,6DACXR,GAAMC,KAAKrI,EAAEsI,WAAW,wBAAwB,CAACC,KAAKvI,EAAEwI,WACvDG,MAAK,WACLzC,EAAW,sBAAMzD,MAAO,CAACmG,MAAM,SAApB,+EAEXE,OAAM,SAACC,GACP7C,EAAW,sBAAMzD,MAAO,CAACmG,MAAM,OAApB,SAA6BG,EAAI9C,cAE5C0C,MAAK,WACLvC,GAAW,OAXb,6DAa2D,uBAAK,uBAChE,wBAAQ1D,UAAU,aAAaD,MAAO,CAACmd,gBAAgB,aAAezX,QAAS,WAC9E/B,GAAW,GACXF,EAAW,sBAAMzD,MAAO,CAACmG,MAAM,SAApB,8CACXR,GAAMC,KAAKrI,EAAEsI,WAAW,oBAAoB,CAACC,KAAKvI,EAAEwI,WACnDG,MAAK,WACLzC,EAAW,sBAAMzD,MAAO,CAACmG,MAAM,SAApB,wDAEXE,OAAM,SAACC,GACP7C,EAAW,sBAAMzD,MAAO,CAACmG,MAAM,OAApB,SAA6BG,EAAI9C,cAE5C0C,MAAK,WACLE,GAAU,OAXZ,0CAY2C,uBAAK,0BAGjD5C,EACD,uBACA,uBAAK,uBACL,6BAAI,oDACJ,uBAAK,uBACL,uBAAMxD,MAAO,CAACod,SAAS,OAAOnc,IAAI,QAAQH,SAAS,WAAWjD,OAAO,OAAOwf,WAAW,OAAOrH,UAAU,UAAxG,UAAmH,cAAC,IAAD,CAAe/V,UAAU,eAAeD,MAAO,CAACmG,MAAM,WAAzK,mBAlDM,eAmDY,uBAAMnG,MAAO,CAACod,SAAS,OAAOnc,IAAI,QAAQH,SAAS,WAAWjD,OAAO,OAAOwf,WAAW,OAAOrH,UAAU,UAAxG,UAAmH,cAAC,IAAD,CAAe/V,UAAU,eAAeD,MAAO,CAACmG,MAAM,SAAzK,mBAAsM,uBACvN8W,EAAU9b,KAAI,SAACmc,EAAG9W,GAClB,IAAI+W,EAAQ,GACZ,GAAiB,eAAbD,EAAGE,SAAqC,gBAAbF,EAAGE,QAAyB,CAC1D,IAAIC,EAAUH,EAAGE,QAAQ7F,QAAQ,aAAa,IAC1C+F,EAAO,IAAIC,KAAKF,EAAQzX,MAAM,EAAE,GAAGyX,EAAQzX,MAAM,EAAE,GAAGyX,EAAQzX,MAAM,EAAE,GAAGyX,EAAQzX,MAAM,EAAE,IAAIyX,EAAQzX,MAAM,GAAG,IAAIyX,EAAQzX,MAAM,GAAG,KAEvI,OADAuX,EAAM,qCAAE,cAAC,IAAD,CAAQtd,UAAU,eAAeD,MAAO,CAACmG,MAAM,UAAW,eAAeuX,KAC1E,eAAC,IAAMjX,SAAP,WAAwB,uBAAMzG,MAAO,CAACod,SAAS,OAAOnc,IAAI,QAAQH,SAAS,WAAWjD,OAAO,OAAOwf,WAAW,OAAOrH,UAAU,UAAxG,UAAoHuH,EAAM,yBAAQvd,MAAO,CAAC8W,WAAW,QACpLpR,QAAS,WACR/B,GAAW,GACXgC,GAAMC,KAAKrI,EAAEsI,WAAW,+BAA+B,CACtD+X,SAASN,EAAGE,QACZ1X,KAAKvI,EAAEwI,WAEPG,MAAK,SAAC/B,GACNV,EAAW,sBAAMzD,MAAO,CAACmG,MAAM,SAApB,SAA+B,oDAAoDuX,QAE9FrX,OAAM,SAACC,GACP7C,EAAW,sBAAMzD,MAAO,CAACmG,MAAM,OAApB,SAA6BG,EAAI9C,cAE5C0C,MAAK,WACLvC,GAAW,OAd4I,UAgBtJ,cAAC,IAAD,IAhBsJ,iBAgB5G,yBAhBjB6C,GAkB5B,OAAO,cAAC,IAAMC,SAAP,GAAqBD,SAMhC,SAASqX,GAAWtgB,GACnB,MAA+BG,oBAAS,GAAxC,mBAAOgK,EAAP,KAAgBoW,EAAhB,KACA,EAA+BpgB,mBAAS,IAAxC,mBAAOqI,EAAP,KAAgBgY,EAAhB,KAEMC,EAAe,CACpB,CAAC7T,KAAK,QAAQ8T,IAAI,eAAeC,MAAM,UACvC,CAAC/T,KAAK,aAAa8T,IAAI,mBAAmBC,MAAM,qBAChD,CAAC/T,KAAK,6BAA6B8T,IAAI,kCAAkCC,MAAM,2BAC/E,CAAC/T,KAAK,eAAe8T,IAAI,qBAAqBC,MAAM,gBACpD,CAAC/T,KAAK,mBAAmB8T,IAAI,wBAAwBC,MAAM,qBAC3D,CAACC,IAAG,GACJ,CAAChU,KAAK,UAAU8T,IAAI,iBAAiBC,MAAM,WAC3C,CAAC/T,KAAK,wBAAwB8T,IAAI,6BAA6BC,MAAM,0BACrE,CAAC/T,KAAK,eAAe8T,IAAI,qBAAqBC,MAAM,gBACpD,CAAC/T,KAAK,6BAA6B8T,IAAI,kCAAkCC,MAAM,0BAA0BE,WAAU,GACnH,CAACjU,KAAK,cAAc8T,IAAI,oBAAoBC,MAAM,eAClD,CAACC,IAAG,GACJ,CAAChU,KAAK,QAAQ8T,IAAI,eAAeC,MAAM,UACvC,CAAC/T,KAAK,aAAa8T,IAAI,oBAAoBC,MAAM,cACjD,CAAC/T,KAAK,iBAAiB8T,IAAI,uBAAuBC,MAAM,mBACxD,CAACC,IAAG,GACJ,CAAChU,KAAK,SAAS8T,IAAI,gBAAgBC,MAAM,WACzC,CAACC,IAAG,GACJ,CAAChU,KAAK,SAAS8T,IAAI,gBAAgBC,MAAM,UACzC,CAAC/T,KAAK,cAAc8T,IAAI,oBAAoBC,MAAM,eAClD,CAAC/T,KAAK,aAAa8T,IAAI,mBAAmBC,MAAM,eAChD,CAAC/T,KAAK,sBAAMnK,MAAO,CAACmG,MAAM,QAApB,+BAAsD8X,IAAI,yBAAyBI,OAAO,cAACxc,EAAD,CAAiBuE,UAAW7I,EAAE6I,UAAWL,SAAUA,EAAUF,WAAY+S,GAAcrb,GAAI6C,QAAS7C,EAAE+gB,QACtM,CAACnU,KAAK,kBAAkB8T,IAAI,uBAAuBC,MAAM,oBACzD,CAAC/T,KAAK,cAAc8T,IAAI,oBAAoBC,MAAM,cAAcE,WAAU,GAC1E,CAACjU,KAAK,eAAe8T,IAAI,qBAAqBC,MAAM,eAAeE,WAAU,GAC7E,CAACjU,KAAK,mBAAmB8T,IAAI,wBAAwBC,MAAM,oBAAoBE,WAAU,GACzF,CAACD,IAAG,GACJ,CAAChU,KAAK,gBAAgB8T,IAAI,sBAAsBC,MAAM,iBACtD,CAAC/T,KAAK,WAAW8T,IAAI,kBAAkBC,MAAM,YAC7C,CAAC/T,KAAK,WAAW8T,IAAI,kBAAkBC,MAAM,YAC7C,CAACC,IAAG,GACJ,CAAChU,KAAK,aAAa8T,IAAI,mBAAmBC,MAAM,eAChD,CAACC,IAAG,GACJ,CAAChU,KAAK,OAAO8T,IAAI,cAAcC,MAAM,SACrC,CAAC/T,KAAK,mBAAmB8T,IAAI,yBAAyBC,MAAM,cAC5D,CAACC,IAAG,GACJ,CAAChU,KAAK,QAAQ8T,IAAI,eAAeC,MAAM,UACvC,CAAC/T,KAAK,QAAQ8T,IAAI,eAAeC,MAAM,UACvC,CAACC,IAAG,GACJ,CAAChU,KAAK,kBAAkB8T,IAAI,kBAAkBC,MAAM,cACpD,CAAC/T,KAAK,iBAAiB8T,IAAI,wBAAwBC,MAAM,oBAG1D,OAAO,qBAAKje,UAAU,YAAf,SACJyH,EAuBH,qCAEC,sBAAKzH,UAAU,kBAAf,UACA,qBAAKA,UAAU,cAAf,SACA,8CAEA,8CAAgB,iCAAM,cAAC,IAAD,CAAQqc,QAAS/e,EAAEsb,SAAUrY,SAAU,SAACC,GAAKlD,EAAEghB,YAAY9d,EAAEmb,OAAOU,YAA1E,IAAwF/e,EAAEsb,SAAS,mCAAU,0CAC7H,qBAAK5Y,UAAU,oCAAf,SACE,eAAC8Y,GAAD,CAAOC,QAAQ,WAAf,UACCgF,EAAe7c,KAAI,SAACqd,EAAIhY,GAAL,OAAUgY,EAAIL,GAAI,sBAAS3X,GAAK,eAAC,IAAMC,SAAP,WAAwB,cAAC,IAAD,CAAMgY,GAAI3X,GAAuB0X,EAAIP,IAArC,SAA2CO,EAAIrU,OAAY,yBAA9D3D,MACzE,cAAC,IAAD,CAAMiY,GAA2B,0BAAjC,8BAAmF,+BAQnFT,EAAe7c,KAAI,SAACqd,EAAIhY,GAAL,kBAA0BvC,IAAhBua,EAAIJ,gBAAgCna,IAATua,EAAIL,IAAiB,cAAC,IAAD,CAAe3G,KAAM1Q,GAAuB0X,EAAIP,IAAhD,SAC9E,sBAAKhe,UAAU,sBAAf,UACD,qBAAKA,UAAU,cAAf,SACA,6BAAKue,EAAIrU,SACT,sBAAKlK,UAAU,gCAAf,UACA,cAAC8V,EAAA,EAAD,UACG,gCAAQhF,8BAA6ByN,EAAIrU,SAF5C,UAIGqU,EAAIH,cAJP,QAIe,cAACrE,GAAD,CAAanB,SAAUtb,EAAEsb,SAAU9S,SAAUA,EAAUF,WAAY+S,GAAcrb,GAAIia,KAAMgH,EAAIN,eARnB1X,MAW1F,cAAC,IAAD,CAAOgR,KAA6B,0BAApC,SACA,sBAAKvX,UAAU,sBAAf,UACA,qBAAKA,UAAU,cAAf,SACD,mDACA,qBAAKA,UAAU,iBAAf,SACG,cAAC+c,GAAD,CAAgBjX,SAAUA,EAAUF,WAAY+S,GAAcrb,eAxD7D,qBAAK0C,UAAU,eAAf,SACA,qBAAKA,UAAU,QAAf,SACA,sBAAKA,UAAU,eAAf,UACA,qBAAKA,UAAU,cAAf,SAA6B,yCAC7B,sBACH,uBAAOyG,KAAK,WAAW9F,MAAOmF,EAAUvF,SAAU,SAACC,GAAKsd,EAAYtd,EAAEE,cAAcC,QAASuI,UAAW,SAACC,GAC5F,UAARA,EAAEC,KACL1D,GAAMC,KAAKgT,GAAcrb,GAAG,iBAAiB,CAC5CuI,KAAKC,IAELG,MAAK,SAAC/B,GACFA,EAAKA,KAAKuD,UACboW,EAAY3Z,EAAKA,KAAKuD,aAGvBrB,OAAM,SAACC,GACPwX,GAAY,GACZC,EAAY,mBAqDlB,SAASW,GAAYnhB,GAEpB,MAAyBG,mBAASH,EAAEqD,OAApC,mBAAOA,EAAP,KAAasY,EAAb,KAMA,OAJAnb,qBAAU,WACTmb,EAAS3b,EAAEqD,SACV,CAACrD,EAAEqD,QAEE,qCAAE,uBAAOA,MAAOA,EAAOJ,SAAU,SAACC,GAAKyY,EAASzY,EAAEE,cAAcC,OAAOrD,EAAEmD,SAASD,EAAEE,cAAcC,UAAlG,KAA+GA,EAA/G,IAAsH,0BAG9H,SAAS+d,GAAiBphB,GAEzB,MAAqCG,mBAAS,IAA9C,mBAAOkhB,EAAP,KAAmBC,EAAnB,KAGA9gB,qBAAU,WACT4H,GAAM8B,IAAIlK,EAAEsI,WAAW,YACtBK,MAAK,SAAC/B,GACN,IAAIya,EAAc,GAClBza,EAAKA,KAAK8W,KAAKG,SAAQ,SAACY,GAAS4C,EAAY5C,EAAMpa,MAAMoa,KACzD6C,EAAeD,QAEf,CAACrhB,EAAEsI,aAEL,IAAMiZ,EAAY,CACjBjK,OAAO,CACNkK,SAAS,CAAC,IAAI,MAEfC,OAAO,CACND,SAAS,CAAC,MAEXE,OAAO,CACNF,SAAS,IAEVG,OAAO,CACNH,SAAS,KAIXhhB,qBAAU,WACT,GAAIwD,OAAOC,KAAKod,GAAa5a,OAAO,EAAG,CAEtC,IADA,IAAImb,EAAe,CAAC,CAAC5E,MAAM,WAAW6E,SAAS,GAAG,CAAC7E,MAAM,UAAU6E,SAAS,IAC5E,MAAkB,CAACN,EAAUjK,OAAOiK,EAAUE,OAAOF,EAAUG,OAAOH,EAAUI,QAAhF,eAAyF,CAApF,IAAoF,EAAhFG,EAAK,KAA2E,cACtEF,GADsE,IACxF,2BACC,IADgC,IAAxB5E,EAAuB,QACtB/T,EAAE,EAAEA,EAAE6Y,EAAMN,SAAS/a,OAAOwC,IAAK,CACzC,IAAI8Y,EAAWV,EAAYS,EAAMN,SAASvY,IAAI+T,EAAMA,OACpDA,EAAM6E,UAAUE,GAJsE,+BAQzFC,EAAkBJ,EAAa,GAAGC,aAElC,CAACR,EAAYE,EAAUE,OAAOF,EAAUG,OAAOH,EAAUI,OAAOJ,EAAUjK,SAE5E,MAA2BnX,mBAAS,GAApC,mBAAO8hB,EAAP,KAAcC,EAAd,KAEA,EAA2C/hB,mBAAS,KAApD,mBAAOgiB,EAAP,KAAsBC,EAAtB,KAEC,EAAyCjiB,mBAAS,GAAlD,mBAAOkiB,EAAP,KAAqBC,EAArB,KACA,EAA6CniB,mBAAS,GAAtD,mBAAOoiB,EAAP,KAAuBC,EAAvB,KAEDhiB,qBAAU,WACT4hB,EAAkB9e,OAAO+e,GAAe/e,OAAOif,MAC9C,CAACF,EAAcE,IAEjB,MAAqCpiB,mBAAS,GAA9C,mBAAOsiB,EAAP,KAAmBC,EAAnB,KAEC,EAAiDviB,mBAAS,GAA1D,mBAAOwiB,EAAP,KAAyBC,EAAzB,KACA,EAA2CziB,mBAAS,GAApD,mBAAO0iB,EAAP,KAAsBb,EAAtB,KAEDxhB,qBAAU,WACTkiB,EAAepf,OAAOqf,GAAmBrf,OAAOuf,MAC/C,CAACF,EAAkBE,IAErB,MAA6B1iB,mBAAS,KAAtC,mBAAO2iB,EAAP,KAAeC,EAAf,KACA,EAA+B5iB,mBAAS,GAAxC,mBAAO6iB,EAAP,KAAgBC,EAAhB,KACA,EAAqC9iB,mBAAS,GAA9C,mBAAO+iB,EAAP,KAAmBC,EAAnB,KAEA3iB,qBAAU,WACT0hB,GAAY5e,OAAO6e,GAAgB7e,OAAOmf,GAAcnf,OAAOwf,GAASxf,OAAO0f,IAAW1f,OAAO4f,GAAa,KAC7G,CAACf,EAAeM,EAAYK,EAAQE,EAASE,IAE/C,MAA6B/iB,mBAAS,GAAtC,mBAAOijB,EAAP,KAAeC,EAAf,KACA,GAA+BljB,mBAAS,GAAxC,qBAAOmjB,GAAP,MAAgBC,GAAhB,MACA,GAAyDpjB,mBAAS,KAAlE,qBAAOqjB,GAAP,MAA6BC,GAA7B,MACA,GAAuDtjB,mBAAS,KAAhE,qBAAOujB,GAAP,MAA4BC,GAA5B,MACA,GAA2CxjB,mBAAS,GAApD,qBAAOyjB,GAAP,MAAsBC,GAAtB,MACA,GAAiC1jB,mBAAS,GAA1C,qBAAO2jB,GAAP,MAAiBC,GAAjB,MAEA,GAA+C5jB,mBAAS,GAAxD,qBAAO6jB,GAAP,MAAwBC,GAAxB,MACA,GAAyD9jB,mBAAS,GAAlE,qBAAO+jB,GAAP,MAA6BC,GAA7B,MACA,GAA+DhkB,mBAAS,KAAxE,qBAAOikB,GAAP,MAAgCC,GAAhC,MAEA,GAA+BlkB,mBAAS,KAAxC,qBAAOmkB,GAAP,MAAgBC,GAAhB,MACA,GAAqDpkB,mBAAS,GAA9D,qBAAOqkB,GAAP,MAA2BC,GAA3B,MAEA,GAAiCtkB,mBAAS,GAA1C,qBAAOukB,GAAP,MAAiBC,GAAjB,MACA,GAAuCxkB,mBAAS,MAAhD,qBAAOykB,GAAP,MAAoBC,GAApB,MACA,GAA2C1kB,mBAAS,GAApD,qBAAO2kB,GAAP,MAAsBC,GAAtB,MAEA,GAAqD5kB,mBAAS,GAA9D,qBAAO6kB,GAAP,MAA2BC,GAA3B,MAEA,GAA2C9kB,mBAAS,GAApD,qBAAO+kB,GAAP,MAAsBC,GAAtB,MAMA,OAJA3kB,qBAAU,WACT2iB,EAAe7f,OAAO8f,GAAS9f,OAAOggB,IAAUhgB,OAAOkgB,IAAuBlgB,OAAOogB,IAAsBpgB,OAAOsgB,IAAgBtgB,OAAOwgB,IAAWxgB,OAAO0gB,IAAkB1gB,OAAO4gB,IAAuB5gB,OAAO8gB,IAA0B9gB,OAAOghB,IAAUhhB,OAAOkhB,IAAqBlhB,OAAOohB,IAAWphB,OAAOshB,IAActhB,OAAOwhB,IAAgBxhB,OAAO0hB,IAAqB1hB,OAAO4hB,OACzX,CAAC9B,EAAQE,GAASE,GAAsBE,GAAqBE,GAAeE,GAAUE,GAAiBE,GAAsBE,GAAyBE,GAASE,GAAoBE,GAAUE,GAAaE,GAAeE,GAAoBE,KAExO,mCACN,sBAAKziB,MAAO,CAAC8W,WAAW,uBAAxB,8BACkB,cAAC4H,GAAD,CAAa9d,MAAO8e,EAAgBhf,SAAU,SAACiiB,GAAOhD,EAAkBgD,MACzF,+BACC,wDAAqB,cAACjE,GAAD,CAAa9d,MAAOgf,EAAelf,SAAU,SAACiiB,GAAO9C,EAAiB8C,SAC3F,0DAAuB,cAACjE,GAAD,CAAa9d,MAAOkf,EAAiBpf,SAAU,SAACiiB,GAAO5C,EAAmB4C,YAElG,uBAAK,uBAAK,uBANX,mBAOiB,cAACjE,GAAD,CAAa9d,MAAOof,EAAatf,SAAU,SAACiiB,GAAO1C,EAAe0C,MAClF,+BACC,+DAA4B,cAACjE,GAAD,CAAa9d,MAAOsf,EAAmBxf,SAAU,SAACiiB,GAAOxC,EAAqBwC,SAC1G,gEAA6B,cAACjE,GAAD,CAAa9d,MAAOwf,EAAgB1f,SAAU,SAACiiB,GAAOpD,EAAkBoD,YAEtG,uBAAK,uBAAK,uBAZX,eAaa,cAACjE,GAAD,CAAa9d,MAAOyf,EAAS3f,SAAU,SAACiiB,GAAOrC,EAAWqC,MAbvE,iBAce,cAACjE,GAAD,CAAa9d,MAAO2f,EAAU7f,SAAU,SAACiiB,GAAOnC,EAAYmC,MAd3E,eAea,cAACjE,GAAD,CAAa9d,MAAO6f,EAAa/f,SAAU,SAACiiB,GAAOjC,EAAeiC,MAC9E,+BACC,iDAAc,cAACjE,GAAD,CAAa9d,MAAO+f,EAASjgB,SAAU,SAACiiB,GAAO/B,EAAW+B,SACxE,kDAAe,cAACjE,GAAD,CAAa9d,MAAOigB,GAAUngB,SAAU,SAACiiB,GAAO7B,GAAY6B,SAC3E,gEAA6B,cAACjE,GAAD,CAAa9d,MAAOmgB,GAAuBrgB,SAAU,SAACiiB,GAAO3B,GAAyB2B,SACnH,gEAA6B,cAACjE,GAAD,CAAa9d,MAAOqgB,GAAsBvgB,SAAU,SAACiiB,GAAOzB,GAAwByB,SACjH,yDAAsB,cAACjE,GAAD,CAAa9d,MAAOugB,GAAgBzgB,SAAU,SAACiiB,GAAOvB,GAAkBuB,SAC9F,mDAAgB,cAACjE,GAAD,CAAa9d,MAAOygB,GAAW3gB,SAAU,SAACiiB,GAAOrB,GAAaqB,SAC9E,6BACC,+BACC,2DAAwB,cAACjE,GAAD,CAAa9d,MAAO2gB,GAAkB7gB,SAAU,SAACiiB,GAAOnB,GAAoBmB,SACpG,iEAA8B,cAACjE,GAAD,CAAa9d,MAAO6gB,GAAuB/gB,SAAU,SAACiiB,GAAOjB,GAAyBiB,SACpH,oEAAiC,cAACjE,GAAD,CAAa9d,MAAO+gB,GAA0BjhB,SAAU,SAACiiB,GAAOf,GAA4Be,cAG/H,kDAAe,cAACjE,GAAD,CAAa9d,MAAOihB,GAAUnhB,SAAU,SAACiiB,GAAOb,GAAYa,SAC3E,6DAA0B,cAACjE,GAAD,CAAa9d,MAAOmhB,GAAqBrhB,SAAU,SAACiiB,GAAOX,GAAuBW,SAC5G,mDAAgB,cAACjE,GAAD,CAAa9d,MAAOqhB,GAAWvhB,SAAU,SAACiiB,GAAOT,GAAaS,SAC9E,sDAAmB,cAACjE,GAAD,CAAa9d,MAAOuhB,GAAczhB,SAAU,SAACiiB,GAAOP,GAAgBO,SACvF,wDAAqB,cAACjE,GAAD,CAAa9d,MAAOyhB,GAAgB3hB,SAAU,SAACiiB,GAAOL,GAAkBK,SAC7F,oEAAiC,cAACjE,GAAD,CAAa9d,MAAO2hB,GAAqB7hB,SAAU,SAACiiB,GAAOH,GAAuBG,SACnH,yDAAsB,cAACjE,GAAD,CAAa9d,MAAO6hB,GAAgB/hB,SAAU,SAACiiB,GAAOD,GAAkBC,YAE/F,uBAAK,uBAAK,uBAtCX,WAuCUnD,OAKZ,SAASoD,GAAUrlB,GAAI,IAAD,EACrB,OAAO,qCAAE,uBAAO0C,UAAU,YAAY4iB,IAAKtlB,EAAEgd,MAApC,SAA4Chd,EAAEggB,QAC7C,WAAThgB,EAAEmJ,KAAgB,qCAAE,cAAC,IAAD,CAAQ/E,GAAIpE,EAAEgd,MAAO+B,QAAS/e,EAAE+e,QAAS9b,SAAUjD,EAAEiD,SAAUqZ,SAAUtc,EAAEmG,UAA7E,IAAwF,uBAAOzD,UAAU,kBAAkB4iB,IAAKtlB,EAAEgd,MAA1C,SAAkDhd,EAAE+e,QAAQ,oCAAW,wCAAsB,uBAAO5V,KAAI,UAAEnJ,EAAEmJ,YAAJ,QAAU,OAAQmT,SAAUtc,EAAEmG,QAAS/B,GAAIpE,EAAEgd,MAAO/Q,UAAWjM,EAAEiM,UAAW5I,MAAOrD,EAAEqD,MAAO0b,QAAS/e,EAAE+e,QAAS9b,SAAUjD,EAAEiD,SAAUiM,YAAalP,EAAEkP,cADjW,IACiX,uBAAOxM,UAAU,kBAAkB4iB,IAAKtlB,EAAEgd,MAA1C,SAAkDhd,EAAEwK,aAG7a,SAAS+a,GAAYvlB,GACpBoI,GAAMC,KAAKgT,GAAcrb,GAAG,aAAa,CACxC+J,SAAS/J,EAAE2J,aACXnB,SAASxI,EAAE4J,aACXK,aAAaR,GAAQS,IAAI,YAEzBvB,MAAK,SAAC/B,GACFA,EAAKA,KAAKuD,UACbnK,EAAEoT,QAAQ/L,KAAK,QAGhByB,OAAM,SAACC,GACPuP,QAAQC,IAAIxP,EAAI9C,YAIlB,SAASuf,GAAUxlB,GAClB,MAA+BG,mBAAS,IAAxC,mBAAO4J,EAAP,KAAgBC,EAAhB,KACA,EAA+B7J,mBAAS,IAAxC,mBAAOqI,EAAP,KAAgBgY,EAAhB,KACA,EAAmCrgB,oBAAS,GAA5C,mBAAOslB,EAAP,KAAkBC,EAAlB,KACA,EAAyBvlB,mBAAS,IAAlC,mBAAOwlB,EAAP,KAAaC,EAAb,KACA,EAA6BzlB,oBAAS,GAAtC,mBAAOgG,EAAP,KAAeC,EAAf,KACA,EAA6BjG,mBAAS,IAAtC,mBAAO8F,EAAP,KAAeC,EAAf,KAEMkN,EAAUC,cAMhB,SAASwS,IACRD,EAAS,IACTxf,GAAW,GACXgC,GAAMC,KAAKgT,GAAcrb,GAAG,aAAa,CACxC+J,SAASA,EACTvB,SAASsd,KAAItd,KAEbG,MAAK,SAAC/B,GACFA,EAAKA,KAAKuD,UACbnK,EAAE+lB,gBAAgBhc,GAClB/J,EAAEgmB,gBAAgBF,KAAItd,IACtBiB,GAAQwc,IAAI,WAAWlc,EAAS,GAAG,KACnCN,GAAQwc,IAAI,WAAWH,KAAItd,GAAU,GAAG,KACxCwB,EAAY,IACZwW,EAAY,IACZkF,GAAc,GACdtS,EAAQ/L,KAAK,MAEbue,EAAS,8BAGV9c,OAAM,SAACC,GAAO,IAAD,EACb6c,EAAQ,iBAAC7c,QAAD,IAACA,OAAD,EAACA,EAAK9C,eAAN,QAAe8C,MAEvBJ,MAAK,WACLvC,GAAW,MAIb,SAAS8f,EAAe7G,GAEnBA,EAASsG,MACZzf,EAAWgR,KAAK2C,UAAUwF,IAEvBA,EAAS8G,WAAWC,UACvB/G,EAAS8G,WAAWE,UACpBhH,EAAS8G,WAAWG,OACpBjH,EAAS8G,WAAW9hB,MACpBgb,EAASkH,SACTne,GAAMC,KAAKgT,GAAcrb,GAAG,gBAAgB,CAC3C+J,SAASsV,EAAS8G,WAAW9hB,KAC7BiiB,MAAMjH,EAAS8G,WAAWG,MAC1B9d,SAAS6W,EAASkH,QAClB1c,OAAOwV,EAAS8G,WAAWE,SAC3BG,OAAOnH,EAAS8G,WAAWC,SAC3Bnc,aAAaoV,EAAS8G,WAAWC,WAEjCzd,MAAK,SAAC/B,GACFA,EAAKA,KAAKuD,UACbnK,EAAE+lB,gBAAgB1G,EAAS8G,WAAW9hB,MACtCrE,EAAEgmB,gBAAgB3G,EAASkH,SAC3B9c,GAAQwc,IAAI,WAAW5G,EAAS8G,WAAW9hB,KAAK,GAAG,KACnDoF,GAAQwc,IAAI,WAAW5G,EAASkH,QAAQ,GAAG,KAC3C9c,GAAQwc,IAAI,SAAS5G,EAAS8G,WAAWC,SAAS,GAAG,KACrDpc,EAAY,IACZwW,EAAY,IACZkF,GAAc,GACdtS,EAAQ/L,KAAK,OAEboC,GAAQgd,OAAO,UACfb,EAAS,+BAMb,OAtEAplB,qBAAU,WACT+kB,GAAY,2BAAIvlB,GAAL,IAAOoT,QAAQA,OACzB,CAACA,EAAQpT,IAoEJ,mCACP,cAACub,GAAD,CAAKpN,MAAM,aAAX,SACChI,EACA,qBAAK2B,IAA4B,eAAgBC,IAAI,GAAGtF,MAAO,CAAC8W,WAAW,iCAAiCmN,UAAU,UACrH,qCAAE,sBAAM9a,UAAW,SAAC1I,GAAiB,UAARA,EAAE4I,KAAgB+Z,KAA7C,UAA8D,oBAAInjB,UAAU,YAAd,SAA2BijB,IAC5F,cAACN,GAAD,CAAWrI,MAAM,WAAWgD,MAAM,aAAa3c,MAAO0G,EAAUkC,UAAW,GAAIhJ,SAAU,SAACjD,GAAKgK,EAAYhK,EAAEoD,cAAcC,QAAS6L,YAAY,aAAY,uBAC5J,cAACmW,GAAD,CAAWrI,MAAM,WAAWgD,MAAM,aAAa7W,KAAK,WAAW9F,MAAOmF,EAAUvF,SAAU,SAACjD,GAAKwgB,EAAYxgB,EAAEoD,cAAcC,QAAS6L,YAAY,aAAY,uBAC7J,cAACmW,GAAD,CAAWrI,MAAM,aAAagD,MAAM,eAAe7W,KAAK,SAAS4V,QAAS0G,EAAYxiB,SAAU,SAACjD,GAAK0lB,EAAc1lB,EAAEoD,cAAc2b,YAAY,uBAChJ,wBAAQ5V,KAAK,SAAShB,QAAS0d,EAA/B,sBACA,uBACC5f,EAAQ,uBACT,cAAC,cAAD,CACC0gB,MAAM,OACNC,SAAS,4EACTC,WAAW,QACXC,UAAWZ,EACXa,UAAWb,EACXc,aAAc,8BAOjB,SAASC,GAAajnB,GACrB,MAA+BG,mBAAS,IAAxC,mBAAO4J,EAAP,KAAgBC,EAAhB,KACA,EAA+B7J,mBAAS,IAAxC,mBAAOqI,EAAP,KAAgBgY,EAAhB,KACA,EAAiCrgB,mBAAS,IAA1C,mBAAO+mB,EAAP,KAAiBC,EAAjB,KACA,EAAyBhnB,mBAAS,IAAlC,mBAAOmmB,EAAP,KAAac,EAAb,KACA,EAAmCjnB,oBAAS,GAA5C,mBAAOslB,EAAP,KAAkBC,EAAlB,KACA,EAAyBvlB,mBAAS,IAAlC,mBAAOwlB,EAAP,KAAaC,EAAb,KACA,EAA6BzlB,oBAAS,GAAtC,mBAAOgG,EAAP,KAAeC,EAAf,KAEMgN,EAAUC,cA4ChB,OA1CA7S,qBAAU,WACT+kB,GAAY,2BAAIvlB,GAAL,IAAOoT,QAAQA,OACzB,CAACA,EAAQpT,IAwCJ,mCACP,cAACub,GAAD,CAAKpN,MAAM,oBAAX,SACChI,EACA,qBAAK2B,IAA4B,eAAgBC,IAAI,GAAGtF,MAAO,CAAC8W,WAAW,iCAAiCmN,UAAU,UACrH,qCAAE,oBAAIhkB,UAAU,YAAd,SAA2BijB,IAC9B,cAACN,GAAD,CAAWrI,MAAM,WAAWgD,MAAM,aAAa3c,MAAO0G,EAAUkC,UAAW,GAAIhJ,SAAU,SAACjD,GAAKgK,EAAYhK,EAAEoD,cAAcC,QAAS6L,YAAY,WAAW1E,QAAQ,uDAAsD,uBACzN,cAAC6a,GAAD,CAAWrI,MAAM,WAAWgD,MAAM,aAAa7W,KAAK,WAAW9F,MAAOmF,EAAUvF,SAAU,SAACjD,GAAKwgB,EAAYxgB,EAAEoD,cAAcC,QAAS6L,YAAY,WAAW1E,QAAQ,4CAA2C,uBAC/M,cAAC6a,GAAD,CAAWrI,MAAM,YAAYgD,MAAM,oBAAoB7W,KAAK,WAAW9F,MAAO6jB,EAAWjkB,SAAU,SAACjD,GAAKmnB,EAAannB,EAAEoD,cAAcC,QAAS6L,YAAY,kBAAkB1E,QAAQ,0BAAyB,uBAC9M,cAAC6a,GAAD,CAAWrI,MAAM,QAAQgD,MAAM,WAAW7W,KAAK,QAAQ9F,MAAOijB,EAAOrjB,SAAU,SAACjD,GAAKonB,EAASpnB,EAAEoD,cAAcC,QAAS6L,YAAY,oBAAoB1E,QAAQ,oDAAmD,uBAClN,cAAC6a,GAAD,CAAWrI,MAAM,aAAagD,MAAM,eAAe7W,KAAK,SAAS4V,QAAS0G,EAAYxiB,SAAU,SAACjD,GAAK0lB,EAAc1lB,EAAEoD,cAAc2b,YAAY,uBAChJ,wBAAQ5V,KAAK,SAAShB,QAhDvB,WACCyd,EAAS,IACTxf,GAAW,GACX,IACC,GAAI2D,EAAStD,OAAO,EAAI,MAAM,IAAI4gB,MAAM,qDACxC,GAAItd,EAAStD,OAAO,GAAK,MAAM,IAAI4gB,MAAM,uDACzC,GAAI7e,EAAS/B,OAAO,EAAI,MAAM,IAAI4gB,MAAM,gDACxC,GAAI7e,IAAW0e,EAAY,MAAM,IAAIG,MAAM,+BAC3C,IAAKf,EAAMhd,SAAS,KAAO,MAAM,IAAI+d,MAAM,mBAC3C,MAAMte,GAAK,IAAD,EAGV,OAFA6c,EAAQ,iBAAC7c,QAAD,IAACA,OAAD,EAACA,EAAK9C,eAAN,QAAe8C,QACvB3C,GAAW,GAGZgC,GAAMC,KAAKgT,GAAcrb,GAAG,YAAY,CACvC+J,SAASA,EACTvB,SAASsd,KAAItd,GACb8d,MAAMA,IAEN3d,MAAK,SAAC/B,GACFA,EAAKA,KAAKuD,UACbnK,EAAE+lB,gBAAgBhc,GAClB/J,EAAEgmB,gBAAgBF,KAAItd,IACtBwB,EAAY,IACZwW,EAAY,IACZkF,GAAc,IAEdE,EAAS,8BAGV9c,OAAM,SAACC,GAAO,IAAD,EACb6c,EAAQ,iBAAC7c,QAAD,IAACA,OAAD,EAACA,EAAK9C,eAAN,QAAe8C,MAEvBJ,MAAK,WACLvC,GAAW,OAcZ,0BA0NakhB,OApNf,WAEC,MAAiBnnB,mBAAS,UAAnBgU,EAAP,oBACA,EAAoBhU,mBAAS,WAAtBkU,EAAP,oBACA,EAAoBlU,mBAAS,UAAtBuC,EAAP,oBACA,EAA6BvC,mBAAS,SAA/BonB,EAAP,oBACA,EAAkBpnB,mBAAS,IAApBqnB,EAAP,oBACA,EAA2BrnB,mBAAS,IAA7BsnB,EAAP,oBAGA,EAAatnB,mBAAS,MAAfuW,EAAP,oBACA,EAAavW,mBAAS,KAAfwY,EAAP,oBACA,EAAaxY,mBAAS,KAAfyY,EAAP,oBACA,EAAyBzY,mBAAS,KAA3BgiB,EAAP,oBACA,EAAkBhiB,mBAAS,KAApB2iB,EAAP,oBACA,EAA2C3iB,mBAAS,KAApD,mBAAO0Y,EAAP,KAAsB6O,EAAtB,KAEAlnB,qBAAU,WACTknB,EAAkBpkB,OAAO6e,GAAgB7e,OAAOwf,MAC/C,CAACX,EAAeW,IAElB,MAAc3iB,mBAAS,KAAhB2Y,EAAP,oBACA,EAAoB3Y,mBAAS,MAAtB4Y,EAAP,oBACA,EAAoB5Y,mBAAS,MAAtBqZ,EAAP,oBACA,EAAoBrZ,mBAAS,MAAtB8Y,EAAP,oBACA,EAAuB9Y,mBAAS,KAAzBmZ,EAAP,oBACA,EAAqBnZ,mBAAS,GAAvB+Y,EAAP,oBACA,EAAsB/Y,mBAAS,GAAxBgZ,EAAP,oBACA,EAAsBhZ,mBAAS,GAAxBiZ,EAAP,oBACA,EAAqBjZ,mBAAS,GAAvBkZ,EAAP,oBACA,EAAuBlZ,mBAAS,GAAzBsZ,EAAP,oBACA,EAAsBtZ,mBAAS,GAAxBuZ,GAAP,oBACA,GAAuBvZ,mBAAS,GAAzBwZ,GAAP,qBAEA,GAA+BxZ,oBAAS,GAAxC,qBAAOmb,GAAP,MAAgB0F,GAAhB,MACA,GAAuB7gB,wBAASuG,GAAhC,qBAAOqa,GAAP,MAAY4G,GAAZ,MACA,GAA2BxnB,mBAAS,CAAC0C,QAAQ,eAA7C,qBAAO+kB,GAAP,MAAcC,GAAd,MACA,GAA2B1nB,oBAAS,GAApC,qBAAO0c,GAAP,MAAchU,GAAd,MAEA,GAAuC1I,mBAASsJ,GAAQS,IAAI,aAA5D,qBAAOP,GAAP,MAAoBoc,GAApB,MACA,GAAuC5lB,mBAASsJ,GAAQS,IAAI,aAA5D,qBAAON,GAAP,MAAoBoc,GAApB,MAEM8B,GAAyC,iBACzCC,GAAmC,QAEzC,SAASllB,GAAQ8d,EAAMqH,EAAIrK,EAAIvZ,QACpBsC,IAANshB,IAAkBA,EAAI,SAChBthB,IAANiX,IAAkBA,EAAI,IAC1B,IAAI/W,EAAOxC,EAAGwjB,GAAO7G,GACrB,OAAKna,QAGUF,IAAPE,OAA+BF,IAAdE,EAAK+Z,QAAsCja,IAAnBE,EAAK+Z,GAAOqH,QAAyCthB,IAAxBE,EAAK+Z,GAAOqH,GAAKrK,GAAiB/W,EAAK+Z,GAAOqH,GAAKrK,GAAK/W,EAAK+Z,GAAOqH,GAAKphB,EAAK+Z,GAAO/Z,EAF3J,UAiCR,OA3BDpG,qBAAU,WACLqc,KACHhU,IAAU,GACVT,GAAM8B,IAAImR,GAAc,CAACC,SAASA,KAAW,SAC5C3S,MAAK,SAAC/B,GACN+gB,GAAQ/gB,EAAKA,SAEdwB,GAAM8B,IAAImR,GAAc,CAACC,SAASA,KAAW,WAC5C3S,MAAK,SAAC/B,GACNihB,GAAUjhB,EAAKA,YAGhB,CAACiW,GAAOvB,KAEV9a,qBAAU,WACTulB,GAAgBtc,GAAQS,IAAI,aAC5B8b,GAAgBvc,GAAQS,IAAI,aAC5B9B,GAAM8B,IAAImR,GAAc,CAACC,SAASA,KAAW,SAC5C3S,MAAK,SAAC/B,GACN+gB,GAAQ/gB,EAAKA,SAEdwB,GAAM8B,IAAImR,GAAc,CAACC,SAASA,KAAW,WAC5C3S,MAAK,SAAC/B,GACNihB,GAAUjhB,EAAKA,WAEf,CAAC0U,KAGD,mCACD,cAAC,IAAD,UACC,eAAC,IAAD,WACC,eAAC,IAAD,CAAOrB,KAA6B,SAApC,UACC,cAACzB,EAAA,EAAD,UACC,gCAAQhF,gCAET,cAAC8M,GAAD,CAAYzX,UAAWA,GAAWmY,YAAaA,GAAa1Y,WAAYA,GAAYgT,SAAUA,GAAUyF,KAAMle,QAE/G,eAAC,IAAD,CAAOoX,KAAM6N,GAAb,UACC,cAAC,EAAD,CACCne,aAAcA,GACdC,aAAcA,GACdtB,WAAY+S,GAAc/S,MAE3B,cAAC,GAAD,CACAkL,UAAWA,GACXyG,KAAM6N,GACN3T,OAAQA,EACRE,UAAWA,EACX3R,UAAWA,EACX6kB,mBAAoBA,EACpBC,QAASA,EACTC,iBAAkBA,EAClB/Q,GAAIA,EACJiC,GAAIA,EACJC,GAAIA,EACJE,IAAKA,EACLC,UAAWA,EACXS,UAAWA,EACXP,UAAWA,EACXK,aAAcA,EACdJ,WAAYA,EACZC,YAAaA,EACbC,YAAaA,EACbC,WAAYA,EACZI,aAAcA,EACdC,YAAaA,GACbC,aAAcA,GACdd,eAAgBA,EAChBhW,QAASA,GACT8G,aAAcA,GACdC,aAAcA,GACdtB,WAAY+S,GAAc/S,SAG3B,eAAC,IAAD,CAAO2R,KAAM8N,GAAb,UACC,cAAC,EAAD,CACCpe,aAAcA,GACdC,aAAcA,GACdtB,WAAY+S,GAAc/S,MAE3B,cAAC,GAAD,CACAkL,UAAWA,GACXyG,KAAM8N,GACN5T,OAAQA,EACRE,UAAWA,EACX3R,UAAWA,EACX6kB,mBAAoBA,EACpBC,QAASA,EACTC,iBAAkBA,EAClB/Q,GAAIA,EACJiC,GAAIA,EACJC,GAAIA,EACJE,IAAKA,EACLC,UAAWA,EACXS,UAAWA,EACXP,UAAWA,EACXK,aAAcA,EACdJ,WAAYA,EACZC,YAAaA,EACbC,YAAaA,EACbC,WAAYA,EACZI,aAAcA,EACdC,YAAaA,GACbC,aAAcA,GACdd,eAAgBA,EAChBhW,QAASA,GACT8G,aAAcA,GACdC,aAAcA,GACdtB,WAAY+S,GAAc/S,SAG3B,eAAC,IAAD,CAAO2R,KAA6B,SAApC,UACC,cAACzB,EAAA,EAAD,UACC,gCAAQhF,0BAET,cAAC,EAAD,CACC7J,aAAcA,GACdC,aAAcA,GACdtB,WAAY+S,GAAc/S,MAE3B,cAACkd,GAAD,CAAWld,WAAYA,GAAYgT,SAAUA,GAAU3R,aAAcA,GAAcC,aAAcA,GAAcoc,gBAAiBA,GAAiBD,gBAAiBA,QAEnK,eAAC,IAAD,CAAO9L,KAA6B,YAApC,UACC,cAACzB,EAAA,EAAD,UACC,gCAAQhF,6BAET,cAAC,EAAD,CACC7J,aAAcA,GACdC,aAAcA,GACdtB,WAAY+S,GAAc/S,MAE3B,cAAC2e,GAAD,CAAc3e,WAAYA,GAAYgT,SAAUA,GAAU3R,aAAcA,GAAcC,aAAcA,GAAcoc,gBAAiBA,GAAiBD,gBAAiBA,QAEtK,cAAC,IAAD,CAAO9L,KAA6B,WAApC,SACC,cAACmH,GAAD,MAED,eAAC,IAAD,CAAOnH,KAAK,IAAZ,UACC,cAACzB,EAAA,EAAD,UACC,gCAAQhF,OAEV,sBAAK9Q,UAAU,qBAAf,UACA,qBAAKA,UAAU,QAAf,SACA,sBAAKA,UAAU,cAAf,UACA,qBAAKA,UAAU,cAAf,SAA6B,6BAAKG,GAAQ,YAAY,KAAK,YAAmB,6BAAKA,GAAQ,YAAY,KAAK,UAAa,8BAAG,qBAAKiF,IAA4B,eAAgBC,IAAI,KAChLlF,GAAQ,YAAY,0BAA0B,WAAY,oBAAIJ,MAAO,CAACwlB,MAAM,eAG7E,mCAAQ,mBAAG7d,KAAK,2CAAR,SAAmD,sBAAM1H,UAAU,SAAhB,oBAA0C,mBAAG0H,KAAK,iCAAR,SAAyC,sBAAM1H,UAAU,UAAhB,4CCz/BnIwlB,GAZS,SAAAC,GAClBA,GAAeA,aAAuBC,UACxC,8BAAqBzf,MAAK,YAAkD,IAA/C0f,EAA8C,EAA9CA,OAAQC,EAAsC,EAAtCA,OAAQC,EAA8B,EAA9BA,OAAQC,EAAsB,EAAtBA,OAAQC,EAAc,EAAdA,QAC3DJ,EAAOF,GACPG,EAAOH,GACPI,EAAOJ,GACPK,EAAOL,GACPM,EAAQN,OCDdO,IAAS5H,OACP,cAAC,IAAM6H,WAAP,UACE,cAAC,GAAD,MAEF7d,SAASS,eAAe,SAM1B2c,M","file":"static/js/main.de74fa0f.chunk.js","sourcesContent":["import { useRef,useEffect,useState } from 'react';\n\nfunction SkillTree(p) {\n const canvasRef = useRef(null)\n const [width,setWidth] = useState(0)\n const [height,setHeight] = useState(0)\n \n useEffect(() => {\n setWidth(p.gridSizeX*p.gridDimensionsX+p.gridPaddingX*(p.gridDimensionsX-1))\n setHeight(p.gridSizeY*Math.ceil(p.gridDimensionsY/2)+p.halflineheight*Math.ceil((p.gridDimensionsY-1)/2)+p.gridPaddingY*(p.gridDimensionsY-1))\n }, [p.halflineheight,p.skillLines,p.gridSizeX,p.gridSizeY,p.gridPaddingX,p.gridPaddingY,p.gridDimensionsX,p.gridDimensionsY])\n\n useEffect(()=>{\n const canvas = canvasRef.current\n const context = canvas.getContext('2d')\n context.clearRect(0,0,width,height)\n context.fillStyle = 'rgba(100,100,100,0.5)'\n context.strokeStyle=p.strokeStyle\n context.lineWidth=p.lineWidth //https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineWidth\n context.setLineDash(p.lineDash) //https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash\n var y=0\n for (var line of p.skillLines) {\n var x=0\n for (var char of line.split('')) {\n var padX = x!==0?p.gridPaddingX*x:0\n var padY = y!==0?p.gridPaddingY*y:0\n switch (char) {\n case \"─\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();break;\n case \"│\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();break;\n case \"└\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();break;\n case \"┌\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();break;\n case \"┘\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();break;\n case \"┐\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();break;\n case \"├\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();break;\n case \"┤\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();break;\n case \"┬\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();break;\n case \"┴\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();break;\n case \"┼\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.moveTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();break;\n case \"□\":context.clearRect(x*p.gridSizeX+(padX), Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY), p.gridSizeX, y%2===1?p.halflineheight:p.gridSizeY);context.fillRect(x*p.gridSizeX+(padX), Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY), p.gridSizeX, y%2===1?p.halflineheight:p.gridSizeY);break;\n default:\n }\n x++\n }\n y++\n }\n },[width,height,p.gridSizeX,p.gridSizeY,p.gridPaddingX,p.gridPaddingY,p.lineDash,p.lineWidth,p.skillLines,p.strokeStyle,p.halflineheight])\n \n return \n}\n\nexport {SkillTree}","import { useEffect, useState } from 'react'\n\nfunction SkillTreeSelector(p) {\n\n const { GetData } = p\n\n const [skillList,setSkillList] = useState([])\n\n useEffect(()=>{\n setSkillList(GetData(\"class_skill\"))\n },[p.cl,GetData])\n\n return <>\n \n {p.defaultValue==='□'&&}\n >\n\n} \n\nexport {SkillTreeSelector}","import { SkillTree } from \"./skillTree\";\nimport React, { useEffect,useState,useMemo,useCallback } from \"react\";\nimport { SkillTreeSelector } from \"./skillTreeSelector\";\nimport axios from \"axios\";\n\nfunction SkillTreeEditor(p) {\n const { GetData } = p\n\n const ADJUSTMENT = useMemo(()=>[-32,32],[])\n\n const [firstLoad,setFirstLoad] = useState(true)\n\n const [classList,setClassList] = useState({})\n const [skillTreeData,setSkillTreeData] = useState({})\n const [cl,setCl] = useState(-1)\n const [lineColor,setLineColor] = useState(\"#000000\")\n const [lineWidth,setLineWidth] = useState(3)\n const [dimensionX,setDimensionX] = useState(6)\n const [dimensionY,setDimensionY] = useState(6)\n const [gridSizeX,setGridSizeX] = useState(80)\n const [gridSizeY,setGridSizeY] = useState(60)\n const [gridPaddingX,setGridPaddingX] = useState(10)\n const [gridPaddingY,setGridPaddingY] = useState(10)\n const [renderedInputs,setRenderedInputs] = useState([])\n const [skillLinesTemp,setSkillLinesTemp] = useState([])\n const [skillLines,setSkillLines] = useState([])\n const [skillData,setSkillData] = useState([])\n const [message,setMessage] = useState(\"\")\n const [loading,setLoading] = useState(false)\n const [halflineheight,setHalfLineHeight] = useState(60)\n\n const GetSkills = useCallback((x,y)=>{\n var filtered = skillData.filter((skill)=>Number(skill.split(\",\")[0])===Number(x)&&Number(skill.split(\",\")[1])===Number(y))\n if (filtered.length>0) {\n return filtered[0]\n } else {\n return \"\"\n }\n },[skillData])\n\n function SaveSkillTrees() {\n axios.post(p.BACKENDURL+\"/saveskilltree\",{\n pass:p.password,\n data:skillLines.slice(0,dimensionY).map((str)=>str.slice(0,dimensionX)).join(','),\n skill_data:skillData.join(';'),\n line_color:lineColor,\n line_width:lineWidth,\n gridsizex:gridSizeX,\n gridsizey:gridSizeY,\n gridpaddingx:gridPaddingX,\n gridpaddingy:gridPaddingY,\n halflineheight:halflineheight,\n class_id:cl\n })\n .then((data)=>{\n if (data.data===\"OK!\") {\n setMessage({\"Successfully saved skill tree for \"+p.GetData(\"class\",undefined,undefined,true)[cl].name+\"!\"})\n p.setUpdate(true)\n }\n })\n .catch((err)=>{\n setMessage({err.message})\n })\n .then(()=>{\n setLoading(false)\n })\n }\n\n useEffect(()=>{\n setClassList(GetData(\"class\",undefined,undefined,true))\n setSkillTreeData(GetData(\"skill_tree_data\",undefined,undefined,true))\n },[GetData])\n\n useEffect(()=>{\n var keys = Object.keys(skillTreeData)\n var found = false\n for (var id of keys) {\n //console.log(cl+\"/\"+skillTreeData[id].class_id)\n if (Number(skillTreeData[id].class_id)===Number(cl)) {\n var data = skillTreeData[id].data?.split(',')\n var skill = skillTreeData[id].skill_data?.split(';')\n setSkillLinesTemp(data)\n setSkillData(skill)\n setDimensionX(data[0].length)\n setDimensionY(data.length)\n setLineColor(skillTreeData[id].line_color)\n setLineWidth(skillTreeData[id].line_width)\n setGridSizeX(skillTreeData[id].gridsizex)\n setGridSizeY(skillTreeData[id].gridsizey)\n setGridPaddingX(skillTreeData[id].gridpaddingx)\n setGridPaddingY(skillTreeData[id].gridpaddingy)\n setHalfLineHeight(skillTreeData[id].halflineheight)\n found=true\n }\n }\n if (!found) {\n setSkillLinesTemp([])\n setSkillData([])\n setDimensionX(6)\n setDimensionY(6)\n }\n },[skillTreeData,cl])\n\n useEffect(()=>{\n if (firstLoad) {\n setCl(Number(Object.keys(classList)[0]))\n setFirstLoad(false)\n }\n },[classList,firstLoad])\n\n useEffect(()=>{\n var skillTreeString = [...skillLinesTemp]\n\n while (skillTreeString.length{\n var controls = []\n for (var y=0;y{\n var string = [...skillLines]\n var stringLine = string[y].split('')\n var newSkillData = [...skillData]\n stringLine[x] = char\n if (char!==\"□\") {\n for (var s in newSkillData) {\n var split = newSkillData[s].split(',')\n if (Number(split[0])===Number(x)&&Number(split[1])===Number(y)) {\n newSkillData[s]=\"\"\n setSkillData(newSkillData)\n break;\n }\n }\n }\n string[y] = stringLine.join('')\n setSkillLinesTemp(string)\n }\n } skill={GetSkills(x,y)} skillCallback={(x,y,skill)=>{\n var newSkillData = [...skillData]\n var found=false\n var newSkill = x+\",\"+y+\",\"+skill\n for (var s in newSkillData) {\n var split = newSkillData[s].split(',')\n if (Number(split[0])===Number(x)&&Number(split[1])===Number(y)) {\n newSkillData[s]=newSkill\n found=true\n break;\n }\n }\n if (!found) {\n newSkillData.push(newSkill)\n }\n setSkillData(newSkillData)\n }} ADJUSTMENT={ADJUSTMENT} x={x} y={y} gridSizeX={gridSizeX} gridSizeY={gridSizeY} padX={padX} padY={padY} halflineheight={halflineheight}/>)\n }\n }\n }\n setRenderedInputs(controls)\n },[skillLines,gridSizeX,gridSizeY,gridPaddingX,gridPaddingY,cl,dimensionY,dimensionX,skillData,halflineheight,GetData,ADJUSTMENT,GetSkills])\n\n return <>\n {loading?
:<>\n {message}
\n \n
\n
\n {p.GetData(\"class\",undefined,undefined,true)[cl]?.name&&}\n \n \n {renderedInputs.map((control,i)=>{control})}\n
\n
\n
\n {setLineColor(f.currentTarget.value)}}/>
\n {setLineWidth(f.currentTarget.value)}}/>
\n {setDimensionX(f.currentTarget.value)}}/>
\n {setDimensionY(f.currentTarget.value)}}/>
\n {setHalfLineHeight(f.currentTarget.value)}}/>
\n {setGridSizeX(f.currentTarget.value)}}/>
\n {setGridSizeY(f.currentTarget.value)}}/>
\n {setGridPaddingX(f.currentTarget.value)}}/>
\n {setGridPaddingY(f.currentTarget.value)}}/>
\n\n >}\n >\n}\n\nexport {SkillTreeEditor}","const NICONICONII = process.env.PUBLIC_URL+\"/icons/nicodotpng.png.png\"\n\nfunction DisplayIcon(icon) {\n //console.log(icon)\n return icon&&icon.length>0?icon.includes(\"http\")?icon:process.env.PUBLIC_URL+icon:NICONICONII\n}\n\nexport {NICONICONII,DisplayIcon};","import React, { useEffect,useState } from 'react';\nimport { DisplayIcon } from './DEFAULTS';\n\n\nconst axios = require('axios');\nconst cookies = require('cookie-handler');\n\nfunction TestHeader(p) {\n\n const {BACKENDURL,LOGGEDINUSER,LOGGEDINHASH} = p;\n\n const [avatar,setAvatar] = useState(undefined);\n const [username,setUsername] = useState(undefined);\n\n useEffect(()=>{\n axios.post(BACKENDURL+\"/validUser\",{\n username:LOGGEDINUSER,\n password:LOGGEDINHASH,\n recoveryhash:cookies.get(\"userID\")\n })\n .then((data)=>{\n if (data.data.verified) {\n setAvatar(data.data.avatar)\n setUsername(LOGGEDINUSER)\n }\n })}\n ,[BACKENDURL,LOGGEDINUSER,LOGGEDINHASH])\n\n return (\n \n )\n}\n\nexport default TestHeader;","import ReactTooltip from 'react-tooltip' //https://wwayne.github.io/react-tooltip/\n\nfunction ExpandTooltip(p) {\n\n\treturn <>{p.children} {\n const d = document.documentElement;\n left = Math.min(d.clientWidth - node.clientWidth, left);\n top = Math.min(d.clientHeight - node.clientHeight, top);\n left = Math.max(0, left);\n top = Math.max(0, top);\n return { top, left }\n} }>{p.tooltip}>\n}\n\nexport {ExpandTooltip}","import {PencilFill} from 'react-bootstrap-icons'\nimport React, { useEffect,useState } from 'react';\nimport Modal from 'react-modal'\nimport { DisplayIcon } from './DEFAULTS';\nimport { ExpandTooltip } from './components/ExpandTooltip';\nimport { SkillTree } from './skilltree/skillTree';\nimport axios from 'axios';\nimport Helmet from 'react-helmet'\n\nimport { useLocation,useHistory,useParams,matchPath } from 'react-router';\n\n//Helper variables for Weapon selector with structure: [weapon_type,weapon,potential,potential_tooltip,weapon_existence_data]\nconst WEAPON_WEAPONTYPE=0;const WEAPON_WEAPON=1;const WEAPON_POTENTIAL=2;const WEAPON_POTENTIAL_TOOLTIP=3;const WEAPON_EXISTENCE_DATA=4;\n\nfunction EditBox(p) {\n\tuseEffect(()=>{\n\t\tvar timer1 = setTimeout(()=>{\n document.getElementById(\"editBoxInput\").focus()\n document.getElementById(\"editBoxInput\").select()\n },100)\n\t\treturn () => {\n\t\t\tclearTimeout(timer1);\n\t\t};\n\t},[p.edit])\n\treturn {\n\t\tif (e.key===\"Enter\") {p.setEdit(false)}\n\t\telse if (e.key===\"Escape\") {p.setEdit(false)}\n\t}}\tmaxLength={p.maxlength?p.maxlength:20} onBlur={()=>{p.setEdit(false)}} value={p.value} onChange={(f)=>{f.currentTarget.value.length>0?p.setName(f.currentTarget.value):p.setName(p.originalName)}}>\n\t\n}\n\nfunction EditBoxInput(p) {\n\tconst [edit,setEdit] = useState(false)\n\t\n\tuseEffect(()=>{\n\t\tif (p.callback) {\n\t\t\tp.callback()\n\t\t}\n\t},[edit,p])\n\t\n\treturn <>\n\t\t{setEdit(true)}}>\n\t\t\t{edit?\n\t\t\t\n\t\t\t:<>{p.prefix}{p.data}>}\n\t\t
\n\t>\n}\n\nfunction PageControlButton(p) {\n\treturn {if (p.onPageChange) {p.onPageChange(p.pageName)} p.setCurrentPage(p.page)}} className={(p.currentPage===p.page)?\"selected\":\"unselected\"}>{p.pageDisplay?p.pageDisplay[p.page-1]:p.pageName?p.pageName:p.page}\n}\n\nfunction PageControl(p) {\n\tvar pages = []\n\tfor (var i=0;i)\n\t}\n if (p.children!==undefined) {\n pages.push({p.children})\n }\n //console.log(JSON.stringify(p.children))\n\treturn pages.length>0&&\n\t\t\t{pages.map((page,i)=>{return {page}})}\n\t\t
\n}\n\nfunction Class(p) {\n const CLASSES = p.GetData(\"class\")\n\tconst class_obj = CLASSES[p.name]\n\treturn CLASSES!==\"no data\"?class_obj?<>
{class_obj.name}>:<>>:<>->\n}\n\nfunction EditableClass(p){\n\treturn <>{p.setClassNameSetter(p.editClass);p.setClassSelectWindowOpen(true)}}>\n\t
\n\t>\n}\n\nfunction PopupWindow(p) {\n\n\treturn {p.setModalOpen(false)}} shouldFocusAfterRender={true} shouldCloseOnOverlayClick={true} shouldCloseOnEsc={true} className=\"modal\" overlayClassName=\"modalOverlay\">\n \n
\n
{p.title}
\n {p.showCloseButton&&
{p.setModalOpen(false)}}>
}\n
\n
\n \n {p.children}\n \n\t\n}\n\nfunction SelectorWindow(p) {\n\n const { onModalOpen } = p\n\n const [itemList,setItemList] = useState([])\n\n const [tabPage,setTabPage] = useState(1)\n const [sortSelector,setSortSelector] = useState(p.sortItems?p.sortItems[0]:\"\")\n const [filter,setFilter] = useState(\"\")\n \n useEffect(()=>{\n if (p.dataFunction) {\n setItemList(p.dataFunction())\n }\n },[p])\n\n useEffect(()=>{\n if (onModalOpen) {\n onModalOpen(setTabPage)\n }\n },[onModalOpen])\n \n return \n {(p.sortItems||p.filter)&&\n
\n {p.sortItems&&}\n
\n
\n {p.filter?{setFilter(f.currentTarget.value)}} />:<>>}\n
\n
\n }\n \n {p.filter?itemList.filter((item)=>p.filterFunction(tabPage,item)).filter((item)=>p.searchFieldFunction(filter,item)).sort((a,b)=>p.sortOrderFunction(sortSelector,a,b)).map((item,i)=>{p.displayFunction(item)}):itemList.map((item,i)=>{p.displayFunction(item)})}\n {p.children}\n
\n \n}\n\nfunction LeftButton(p){\n\treturn \n \n}\n\nfunction RightButton(p){\n\treturn \n \n}\nfunction ClassSelectorWindow(p) {\n const [title,setTitle] = useState(\"Select Main Class\")\n useEffect(()=>{\n setTitle((p.editClass)?\"Select Sub Class\":\"Select Main Class\")\n },[p.editClass])\n return {\n if (page===\"Main Class\") {\n p.setEditClass(0)\n } else {\n p.setEditClass(1)\n }\n }}\n onModalOpen={(pageSetter)=>{\n pageSetter((p.editClass)?2:1)\n }}\n dataFunction={() => {\n var dat1 = p.GetData(\"class\")\n return Object.keys(dat1)\n }\n }\n displayFunction={(key) => {\n return {if (p.editClass===0){p.setClassName(key);p.setSubClassName(p.subClass===key?p.class:p.subClass)}else{p.setSubClassName(key);p.setClassName(p.class===key?p.subClass:p.class)}; p.setModalOpen(false) }}>
{p.GetData(\"class\", key, \"name\")}\n }}\n/>\n}\n\nfunction GetSpecialWeaponName(item) {\n return item[WEAPON_EXISTENCE_DATA]!==undefined?(item[WEAPON_EXISTENCE_DATA].special_name?.length>0)?item[WEAPON_EXISTENCE_DATA].special_name:(item[WEAPON_WEAPON].name+\" \"+item[WEAPON_WEAPONTYPE].name):<>Select Weapon>\n}\n\nfunction ConvertCoordinate(x,y) {\n return (String.fromCharCode(Number(x)+'a'.charCodeAt(0)))+(y/2+1);\n}\n\nfunction SkillBox(p) {\n return
{(p.skillPointData[p.page-1][p.boxId]?p.skillPointData[p.page-1][p.boxId]:0)+\"/\"+p.maxPoints}{typeof p.GetData(\"class_skill\",p.skill[2],\"name\",true)===\"string\"&&p.GetData(\"class_skill\",p.skill[2],\"name\",true)}\n
{\n var temp=[...p.points]\n var tempData=[...p.skillPointData]\n if (!tempData[p.page-1][p.boxId]) {\n tempData[p.page-1][p.boxId]=0\n }\n if (tempData[p.page-1][p.boxId]>0) {\n temp[p.page-1]-=1\n tempData[p.page-1][p.boxId]-=1\n p.setPoints(temp)\n p.setSkillPointData(tempData)\n }}}/>\n {\n var temp=[...p.points]\n var tempData=[...p.skillPointData]\n if (!tempData[p.page-1][p.boxId]) {\n tempData[p.page-1][p.boxId]=0\n }\n if (tempData[p.page-1][p.boxId] \n}\n\nfunction SkillTreeBoxes(p) {\n\n function GetHighestLevel(skill) {\n var skillInfo = Object.keys(p.GetData(\"class_skill_data\"))\n var highestLevel = 0\n for (var i=0;ihighestLevel) {\n highestLevel=skillData.level\n }\n }\n return highestLevel\n }\n\n function isLocked(skill) {\n return false\n }\n\n return <>\n {p.skillTreeSkillData&&p.skillTreeSkillData.map((skill,i)=>{\n var splitter = skill.split(\",\")\n return splitter[0]!==\"\"&&splitter[1]!==\"\"&&splitter[2]!==\"\"&&0?\"skillActive\":\"\"} boxId={splitter[0]+\"_\"+splitter[1]} skillPointData={p.skillPointData} setSkillPointData={p.setSkillPointData} page={p.page} cl={p.cl} maxPoints={GetHighestLevel(splitter[2])} points={p.points} setPoints={p.setPoints} GetData={p.GetData} skill={splitter.map((numb)=>Number(numb))}/>\n })}\n >\n}\n\nfunction SkillTreeContainer(p){\n\n const { GetData } = p\n\n const [skillTreeData,setSkillTreeData] = useState([])\n const [skillTreeSkillData,setSkillTreeSkillData] = useState([])\n const [skillTreeLineColor,setSkillTreeLineColor] = useState(\"\")\n const [skillTreeLineWidth,setSkillTreeLineWidth] = useState(3)\n const [skillTreeDimensionX,setSkillTreeDimensionX] = useState(6)\n const [skillTreeDimensionY,setSkillTreeDimensionY] = useState(6)\n const [skillTreeGridSizeX,setSkillTreeGridSizeX] = useState(171)\n const [skillTreeGridSizeY,setSkillTreeGridSizeY] = useState(148)\n const [skillTreeGridPaddingX,setSkillTreeGridPaddingX] = useState(10)\n const [skillTreeGridPaddingY,setSkillTreeGridPaddingY] = useState(48)\n const [halflineheight,setHalfLineHeight] = useState(60)\n\n useEffect(()=>{\n if (Object.keys(GetData(\"skill_tree_data\")).length>1) {\n for (var skillTree of GetData(\"skill_tree_data\")) {\n if (skillTree.class_id===GetData(\"class\",p.cl,'id')) {\n var data = skillTree.data.split(\",\")\n var skillData = skillTree.skill_data.split(\";\")\n setSkillTreeData(data)\n setSkillTreeSkillData(skillData)\n setSkillTreeLineColor(skillTree.line_color)\n setSkillTreeLineWidth(skillTree.line_width)\n setSkillTreeDimensionX(data[0].length)\n setSkillTreeDimensionY(data.length)\n setSkillTreeGridSizeX(skillTree.gridsizex)\n setSkillTreeGridSizeY(skillTree.gridsizey)\n setSkillTreeGridPaddingX(skillTree.gridpaddingx)\n setSkillTreeGridPaddingY(skillTree.gridpaddingy)\n setHalfLineHeight(skillTree.halflineheight)\n break;\n }\n }\n }\n },[p.cl,GetData])\n\n return \n}\n\nfunction TestPanel(p) {\n\n\nlet { BUILDID } = useParams()\nlet history = useHistory();\nlet location = useLocation();\n\nconst { GetData,LOGGEDINUSER,LOGGEDINHASH,BACKENDURL,APP_TITLE } = p\n\nconst [bpGraphMax,setbpGraphMax] = useState(1000)\nconst [hpGraphMax,sethpGraphMax] = useState(1000)\nconst [ppGraphMax,setppGraphMax] = useState(1000)\nconst [atkGraphMax,setatkGraphMax] = useState(1000)\nconst [defGraphMax,setdefGraphMax] = useState(1000)\n\nconst [author,setAuthor] = useState(\"Player\")\nconst [buildName,setbuildName] = useState(\"Character\")\nconst [className,setClassName] = useState(\"Ranger\")\nconst [subclassName,setSubClassName] = useState(\"Force\")\nconst [level,setLevel] = useState(20)\nconst [secondaryLevel,setsecondaryLevel] = useState(20)\n\nconst [effectPage,setEffectPage] = useState(1)\nconst [weaponPage,setWeaponPage] = useState(1)\nconst [statPage,setStatPage] = useState(1)\n\nconst [foodMenuWindowOpen,setFoodMenuWindowOpen] = useState(false)\nconst [classSelectWindowOpen,setClassSelectWindowOpen] = useState(false)\nconst [classSkillTreeWindowOpen,setClassSkillTreeWindowOpen] = useState(false)\nconst [treePage,setTreePage] = useState(1)\nconst [weaponSelectWindowOpen,setWeaponSelectWindowOpen] = useState(false)\nconst [armorSelectWindowOpen,setArmorSelectWindowOpen] = useState(false)\n\nconst [selectedWeapon,setSelectedWeapon] = useState([])\nconst [selectedArmor1,setSelectedArmor1] = useState([])\nconst [selectedArmor2,setSelectedArmor2] = useState([])\nconst [selectedArmor3,setSelectedArmor3] = useState([])\nconst [armorSlotSelection,setArmorSlotSelection] = useState(1)\n\nconst [classNameSetter,setClassNameSetter] = useState(0)\n\nconst [points,setPoints] = useState([])\nconst [skillPointData,setSkillPointData] = useState([])\n\nfunction SaveData() {\n var saveObj = {\n level:level,\n secondaryLevel:secondaryLevel,\n weaponBaseName:selectedWeapon[WEAPON_WEAPON]?.name,\n weaponType:selectedWeapon[WEAPON_WEAPONTYPE]?.name,\n armor1Name:selectedArmor1?.name,\n armor2Name:selectedArmor2?.name,\n armor3Name:selectedArmor3?.name,\n points:points,\n skillPointData:skillPointData,\n }\n axios.post(BACKENDURL+\"/submitBuild\",{\n id:BUILDID,\n username:LOGGEDINUSER,\n pass:LOGGEDINHASH,\n creator:author,\n build_name:buildName,\n class1:className,\n class2:subclassName,\n data:JSON.stringify(saveObj),})\n .then((data)=>{\n const match=matchPath(location.pathname,{\n path:p.path,\n exact:true,\n strict:false\n })\n history.push(match.path.replace(\"/:BUILDID\",\"\")+\"/\"+data.data.id)\n })\n}\n\nfunction rarityCheck(v) {\n return v!==undefined?v.rarity!==undefined?\" r\"+v.rarity:\"\":\"\"\n}\n\nuseEffect(()=>{\n if (p.bp>1000) {\n setbpGraphMax(3000)\n sethpGraphMax(3000)\n setppGraphMax(3000)\n setatkGraphMax(3000)\n setdefGraphMax(3000)\n } else {\n setbpGraphMax(1000)\n sethpGraphMax(1000)\n setppGraphMax(1000)\n setatkGraphMax(1000)\n setdefGraphMax(1000)\n }\n},[p.bp]) \n\nuseEffect(()=>{\n var keys = Object.keys(GetData(\"class\"))\n var pointsArr = []\n var pointsDataArr = []\n for (var i=0;i{\n if (BUILDID) {\n axios.get(BACKENDURL+\"/getBuild?id=\"+BUILDID)\n .then((data)=>{\n setAuthor(data.data.creator)\n setbuildName(data.data.build_name)\n setClassName(GetData(\"class\",data.data.class1,\"name\",true))\n setSubClassName(GetData(\"class\",data.data.class2,\"name\",true))\n var dat = JSON.parse(data.data.data)\n setLevel(dat.level)\n setsecondaryLevel(dat.secondaryLevel)\n setPoints(dat.points)\n setSkillPointData(dat.skillPointData)\n var dat1=p.GetData(\"weapon_existence_data\")\n var weapon_type=GetData(\"weapon_type\",dat.weaponType)\n var weapon=GetData(\"weapon\",dat.weaponBaseName)\n var potential=GetData(\"potential\",weapon.potential_id,undefined,true)\n var potential_all=GetData(\"potential_data\")\n var potential_tooltip=[]\n for (var pot in potential_all) {\n if (pot.includes(potential.name)) {\n potential_tooltip.push(p.GetData(\"potential_data\",pot))\n }\n }\n var existence_data = Array.isArray(dat1)?dat1.filter((weapon_existence_data)=>weapon_existence_data.weapon_type_id===weapon_type.id&&weapon_existence_data.weapon_id===weapon.id)[0]:undefined\n //console.log(JSON.stringify([weapon_type,weapon,potential,potential_tooltip,existence_data]))\n setSelectedWeapon([weapon_type,weapon,potential,potential_tooltip,existence_data])\n setSelectedArmor1(GetData(\"armor\",dat.armor1Name))\n setSelectedArmor2(GetData(\"armor\",dat.armor2Name))\n setSelectedArmor3(GetData(\"armor\",dat.armor3Name))\n })\n .catch((err)=>{\n console.log(err.message)\n })\n }\n},[BUILDID,GetData,BACKENDURL,p])\n\n//console.log(p.GetData(\"class\",p.className,\"icon\"))\n\n return (<>\n \n \n {\"Test - \"+APP_TITLE+(BUILDID?\" Build #\"+BUILDID:\"\")}\n \n\n
\n\n\n\n
\n
\n
Basic Information
\n
\n
Author
\n
Build Name
\n
{setClassSelectWindowOpen(true)}}>Class
\n
{setClassSkillTreeWindowOpen(true)}}>Sub-Class
\n\n
\n
\n\n
\n
\n
\n
\n
\n
\n
Battle Power
\n
HP
\n
PP
\n
Attack
\n
Defense
\n
Weapon Up
\n
Ailment Resist.
\n
Damage Resist.
\n\n
{p.bp}
\n
{p.hp}
\n
{p.pp}
\n
{p.statDisplayAtk}
\n
{p.def}
\n
![\"\"]({process.env.PUBLIC_URL+\"/icons/mel.png\"})
+{(p.weaponUp1*100).toFixed(1)}%
![\"\"]({process.env.PUBLIC_URL+\"/icons/tec.png\"})
+{(p.weaponUp3*100).toFixed(1)}%
\n
![\"\"]({process.env.PUBLIC_URL+\"/icons/status/burn.png\"})
{(p.burnResist*100).toFixed(1)}%
![\"\"]({process.env.PUBLIC_URL+\"/icons/status/shock.png\"})
{(p.shockResist*100).toFixed(1)}%
![\"\"]({process.env.PUBLIC_URL+\"/icons/status/panic.png\"})
{(p.panicResist*100).toFixed(1)}%
![\"\"]({process.env.PUBLIC_URL+\"/icons/status/stun.png\"})
{(p.stunResist*100).toFixed(1)}%
\n
{(p.damageResist*100).toFixed(1)}%
\n\n
\n
\n
\n
\n
\n
![\"\"]({process.env.PUBLIC_URL+\"/icons/rng.png\"})
+{(p.weaponUp2*100).toFixed(1)}%
\n
![\"\"]({process.env.PUBLIC_URL+\"/icons/status/freeze.png\"})
{(p.freezeResist*100).toFixed(1)}%
![\"\"]({process.env.PUBLIC_URL+\"/icons/status/blind.png\"})
{(p.blindResist*100).toFixed(1)}%
![\"\"]({process.env.PUBLIC_URL+\"/icons/status/poison.png\"})
{(p.poisonResist*100).toFixed(1)}%
\n\n
\n \n \n\n\n
\n
\n
Equip
\n
\n
Weapons
1![\"\"]({DisplayIcon(selectedWeapon[WEAPON_EXISTENCE_DATA]?.icon)})
\n
{setArmorSlotSelection(1);setArmorSelectWindowOpen(true)}} className={\"equipPaletteSlot\"+rarityCheck(selectedArmor1)}>
Armor 1
\n
{setArmorSlotSelection(2);setArmorSelectWindowOpen(true)}} className={\"equipPaletteSlot\"+rarityCheck(selectedArmor2)}>
Armor 2
\n
{setArmorSlotSelection(3);setArmorSelectWindowOpen(true)}} className={\"equipPaletteSlot\"+rarityCheck(selectedArmor3)}>
Armor 3
\n
\n
\n\n\n\n\n
\n
\n
\n
\n
Equipped Weapon
\n
{GetSpecialWeaponName(selectedWeapon)}+40
\n
Edit Details\n {weaponPage === 1 ?\n\n<>\n
\n
{setWeaponSelectWindowOpen(true)}}>\n
\n
![\"\"]({DisplayIcon(selectedWeapon[WEAPON_EXISTENCE_DATA]?.icon)})
\n
\n
\n\n
Rarity
\n
\n\n
Attack
\n
282
\n\n
Element
\n
-
\n\n
Equip Conditons
\n
Lv.15 (Current Lv.20)
\n\n
\n
\n
\n
\n
Soulspring Unit Lv.3
\n
Fixa Attack Lv.3
\n
\n
Augment\n
\n\n
Precision III
\n
\n
\n
\n\n
\n
\n
\n\n\n>\n\n :weaponPage === 3 ?\n
\n
\n
\n
Stat Adjustment
\n
\n - Enhancement Lv. +35
\n - Multi-Weapon -
\n - Element -
\n
\n
\n
\n :\n <>hi2>\n }\n\n\n
\n\n\n\n\n
\n
\n
To Do List
\n
\n - UI
\n - Grids. Grids everywhere.
\n - Finish \"Item Details\" for Weapons/Armor
\n - Class Skill Window Mobile View
\n - Enemy Stats Box
\n - Food/Buffs Menu
\n - Get all the fckn icons
\n - Functionality
\n - Food/Buffs Menu
\n - Augments
\n - Save/Load Build
\n - fOrMuLaS
\n - Data
\n - Skill Trees
\n - Everything tbh
\n
\n
\n\n\n\n\n\n\n\n\n
\n
\n\n\n
\n
\n
\n
Damage Stats
\n
\n \n \n {statPage===1?<>\n \n Critical Hit Rate | \n 5% | \n
\n \n Critical Multiplier | \n 120% | \n
\n \n Midrange | \n 126 | \n
\n \n Critical | \n 152 | \n
\n \n Effective | \n 127 | \n
\n >:<>\n \n Critical Hit Rate | \n - | \n
\n \n Critical Multiplier | \n - | \n
\n \n Midrange | \n - | \n
\n \n Critical | \n - | \n
\n \n Effective | \n - | \n
\n >\n }\n \n
\n \n
\n
\n\n\n { setClassSkillTreeWindowOpen(false) }} shouldFocusAfterRender={true} shouldCloseOnOverlayClick={true} shouldCloseOnEsc={true} className=\"modal\" overlayClassName=\"modalOverlay\">\n \n
\n
Class Skill Tree
\n
{ setClassSkillTreeWindowOpen(false) }}>
\n
\n
cl)} pageDisplay={Object.keys(p.GetData(\"class\")).map((cl)=><>
{cl}>)} currentPage={treePage} setCurrentPage={setTreePage} />\n \n \n
Your Skill Points{20-points[treePage-1]}
\n
SP{points[treePage-1]}
\n
\n ConfirmCancel
\n \n \n\n{\n var dat1=p.GetData(\"weapon_existence_data\")\n return Array.isArray(dat1)?dat1.map((weapon_existence_data)=>{\n var weapon_type=p.GetData(\"weapon_type\",weapon_existence_data.weapon_type_id,undefined,true)\n var weapon=p.GetData(\"weapon\",weapon_existence_data.weapon_id,undefined,true)\n var potential=p.GetData(\"potential\",weapon.potential_id,undefined,true)\n var potential_all=p.GetData(\"potential_data\")\n var potential_tooltip=[]\n for (var pot in potential_all) {\n if (pot.includes(potential.name)) {\n potential_tooltip.push(p.GetData(\"potential_data\",pot))\n }\n }\n return [weapon_type,weapon,potential,potential_tooltip,weapon_existence_data]\n }):[]\n }}\n filterFunction={(page,item)=>{\n switch (page) {\n case 2:return item[WEAPON_WEAPONTYPE].name===\"Assault Rifle\"\n case 3:return item[WEAPON_WEAPONTYPE].name===\"Launcher\"\n case 4:return item[WEAPON_WEAPONTYPE].name===\"Rod\"\n case 5:return item[WEAPON_WEAPONTYPE].name===\"Talis\"\n default:return true\n }\n }}\n searchFieldFunction={(searchText,item)=>searchText.length>0?(item[WEAPON_WEAPON].name.toLowerCase()+\" \"+item[WEAPON_WEAPONTYPE].name.toLowerCase()).includes(searchText.toLowerCase()):true}\n sortOrderFunction={(sort,itemA,itemB)=>{\n switch (sort) {\n case \"Rarity\":return itemB[1].rarity-itemA[1].rarity\n case \"Attack\":return itemB[1].atk-itemA[1].atk\n default:return 0\n } \n }}\n displayFunction={(item)=>{\n return{setSelectedWeapon(item);setWeaponSelectWindowOpen(false)}}>
{GetSpecialWeaponName(item)}
{item[WEAPON_WEAPON].atk}\n \n {item[WEAPON_POTENTIAL_TOOLTIP].map((pot,i)=>{(i!==0)&&
}{pot.name}: {pot.description?pot.description.split(\"\\\\n\").map((it,ii)=>{it}
):})}>}>\n\n {item[WEAPON_POTENTIAL].name}\n
}}\n />\n \n{\n var dat1=p.GetData(\"armor\")\n return typeof dat1===\"object\"&&dat1!==null?Object.keys(dat1).map((armor)=>{\n return dat1[armor]\n }):[]\n }}\n filterFunction={(page,item)=>item.slot===armorSlotSelection}\n searchFieldFunction={(searchText,item)=>searchText.length>0?item.name.toLowerCase().includes(searchText.toLowerCase()):true}\n sortOrderFunction={(sort,itemA,itemB)=>{\n switch (sort) {\n case \"Rarity\":return itemB.rarity-itemA.rarity\n case \"HP\":return itemB.hp-itemA.hp\n case \"PP\":return itemB.pp-itemA.pp\n case \"Melee Potency\":return itemB.mel_dmg-itemA.mel_dmg\n case \"Range Potency\":return itemB.rng_dmg-itemA.rng_dmg\n case \"Tech Potency\":return itemB.tec_dmg-itemA.tec_dmg\n default:return 0\n } \n }}\n displayFunction={(item)=>{\n return {\n switch(armorSlotSelection) {\n case 1:setSelectedArmor1(item);break;\n case 2:setSelectedArmor2(item);break;\n case 3:setSelectedArmor3(item);break;\n default:setSelectedArmor1(item)\n }\n setArmorSelectWindowOpen(false)}}>\n
\n
{item.name}
\n
\n
{item.def}
\n
\n }}\n />\n\n\n\nXXXL Super Duper Extra Crispy Delicious Sweet Mouth-Watering Meat
9999Indomitable Unit
-0+
\nPotato 2
9999Indomitable Unit
-0+
\nDog with Claws
9999Indomitable Unit
-0+
\nIf you put your ear to it you can hear the PSO2 lobby music
9999Indomitable Unit
-0+
\nXXXL Super Duper Extra Crispy Delicious Sweet Mouth-Watering Meat
9999Indomitable Unit
-0+
\nPotato 2
9999Indomitable Unit
-0+
\nDog with Claws
9999Indomitable Unit
-0+
\nIf you put your ear to it you can hear the PSO2 lobby music
9999Indomitable Unit
-0+
\nXXXL Super Duper Extra Crispy Delicious Sweet Mouth-Watering Meat
9999Indomitable Unit
-0+
\nPotato 2
9999Indomitable Unit
-0+
\nDog with Claws
9999Indomitable Unit
-0+
\nIf you put your ear to it you can hear the PSO2 lobby music
9999Indomitable Unit
-0+
\n\n\n\n>\n)\n}\n\nexport default TestPanel;","import './reset.css'; // Generic reset\nimport './style.css'; // The new new\nimport React, {useState,useEffect,useReducer} from 'react';\nimport Toggle from 'react-toggle' //Tooltip props: http://aaronshaf.github.io/react-toggle/\nimport Helmet from 'react-helmet'\n\nimport {TrashFill, PlusCircle, LifePreserver, Server, CloudUploadFill} from 'react-bootstrap-icons'\n\nimport { SkillTreeEditor } from './skilltree/skillTreeEditor'\n\nimport { GoogleLogin } from 'react-google-login';\n\nimport {\n HashRouter,\n Switch,\n Route,\n useHistory\n} from \"react-router-dom\";\n\nimport { HashLink as Link } from 'react-router-hash-link';\n\nimport TestHeader from './TestHeader'; // Test Header!\nimport TestPanel from './TestPanel'; // Dudley's Test Panel\nimport md5 from 'md5';\n\n\nconst cookies = require('cookie-handler');\nconst axios = require('axios');\nconst parse = require('csv-parse/lib/sync')\n\n/*\nDamage types\nconst MELEE_DMG = 0\nconst RANGE_DMG = 1\nconst TECH_DMG = 2\n\nArt properties\nconst NORMAL = 0\nconst PHOTON_ART = 1\nconst WEAPON_ACTION = 2\nconst STEP_COUNTER = 3\nconst PARRY_COUNTER = 4\n//NOT USED YET*/\n\nconst BACKENDURL=process.env.REACT_APP_GITPOD_WORKSPACE_URL||process.env.REACT_APP_BACKENDURL||'https://projectdivar.com:4504'\nconst APP_TITLE = \"NGS Planner\"\n\nfunction GetBackendURL(p) {\n\treturn (BACKENDURL)+(p.TESTMODE?\"/test\":\"\")\n}\n\nfunction Box(p) {\n\treturn <>\n\t\t\n\t\t
\n\t\t
{p.title}
\n\t\t\n\t\t\t{p.children} \n\t\t
\n\t>\n}\n\nfunction Table(p) {\n\treturn \n\n\t\t\t{p.children}\n\n\t\n}\n\nfunction InputBox(p) {\n\tconst [value,setValue] = useState(p.value)\n\tconst [failed,setFailed] = useState(false)\n\tconst [sending,setSending] = useState(false)\n\n\tfunction changeFunc(f){setValue(f.currentTarget.value)\n\t\tif (p.callback4) {\n\t\t\tp.callback4(f.currentTarget.value)\n\t\t}}\n\tfunction blurFunc(f){\n\t\tif (p.callback) {\n\t\t\tsetSending(true)\n\t\t\tsetFailed(false)\n\t\t\tp.callback(f.currentTarget.value)\n\t\t\t.then(()=>{setFailed(false)})\n\t\t\t.catch(()=>{setFailed(true)})\n\t\t\t.then(()=>{setSending(false)})}\n\t\telse \n\t\tif (p.callback3) {\n\t\t\tp.callback3(f.currentTarget.value)\n\t\t}}\n\tfunction keydownFunc(f){\n\t\tif (p.callback2) {\n\t\t\tp.callback2(f,value)\n\t\t}\n\t}\n\n\treturn p.data?:{keydownFunc(f)}} onChange={(f)=>{changeFunc(f)}} onBlur={(f)=>{blurFunc(f)}}/>\n}\n\nfunction TableEditor(p) {\n\t\n\tconst initialVals={}\n\n\tconst { TESTMODE } = p\n\t\n\tfunction updateVals(state,update) {\n\t\tif (update==='Clear') {\n\t\t\treturn initialVals\n\t\t}\n\t\tstate[update.field]=update.value\n\t\treturn state \n\t}\n\t\n\tconst [fields,setFields] = useState([])\n\tconst [data,setData] = useState([])\n\tconst [update,setUpdate] = useState(false)\n\tconst [submitVals,setSubmitVal] = useReducer(updateVals,initialVals)\n\tconst [loading,setLoading] = useState(false)\n\tconst [dependencies,setDependencies] = useState([])\n\tconst [importAllowed,setImportAllowed] = useState(false)\n\tconst [lockSubmission,setLockSubmission] = useState(false)\n\n\tfunction patchValue(value,p,col,dat) {\n\t\treturn axios.patch(p.BACKENDURL+p.path,{\n\t\t\t[col.name]:value===\"null\"?null:value,\n\t\t\tid:dat.id,\n\t\t\tpass:p.password\n\t\t})\n\t}\n\t\n\tfunction SubmitBoxes() {\n\t\tif (!lockSubmission) {\n\t\t\tsetLockSubmission(true)\n\t\t\taxios.post(p.BACKENDURL+p.path,{...submitVals,pass:p.password})\n\t\t\t.then(()=>{\n\t\t\t\tsetSubmitVal(\"Clear\")\n\t\t\t\tsetUpdate(true)\n\t\t\t})\n\t\t\t.catch((err)=>{\n\t\t\t\talert(JSON.stringify(err.response.data))\n\t\t\t})\n\t\t\t.then(()=>{\n\t\t\t\tsetLockSubmission(false)\n\t\t\t})\n\t\t}\n\t}\n\n\tfunction SubmitDeletion() {\n\t\tif (!lockSubmission) {\n\t\t\tsetLockSubmission(true)\n\t\t\tvar promises = []\n\t\t\tfor (var dat of data) {\n\t\t\t\tif (document.getElementById(\"delete_\"+dat.id).checked) {\n\t\t\t\t\tpromises.push(axios.delete(p.BACKENDURL+p.path,{data:{pass:p.password,id:dat.id}}))\n\t\t\t\t}\n\t\t\t}\n\t\t\tPromise.allSettled(promises)\n\t\t\t.catch((err)=>{\n\t\t\t\talert(err.message)\n\t\t\t})\n\t\t\t.then((data)=>{\n\t\t\t\tsetLockSubmission(false)\n\t\t\t\tsetUpdate(true)\n\t\t\t})\n\t\t}\n\t}\n\t\n\tuseEffect(()=>{\n\t\tsetUpdate(true)\n\t},[p.path,TESTMODE])\n\n\tuseEffect(()=>{\n\t\tfor (var col of fields) {\n\t\t\tif (col.name===\"name\") {\n\t\t\t\tsetImportAllowed(true)\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t},[fields])\n\t\n\tuseEffect(()=>{\n\t\tif (update) {\n\t\t\tsetLoading(true)\n\t\t\tvar dependency_map = {}\n\t\t\taxios.get(p.BACKENDURL+p.path+\"?pass=\"+p.password)\n\t\t\t.then((data)=>{\n\t\t\t\tvar cols = data.data.fields\n\t\t\t\tvar rows = data.data.rows\n\t\t\t\t\n\t\t\t\tsetFields(cols.filter((col,i)=>col.name!==\"id\"&&!(i===0&&col.name===\"name\")))\n\n\t\t\t\tvar promise_list = []\n\n\t\t\t\tcols.filter((col)=>col.name!==\"id\"&&col.name.includes(\"_id\")).forEach((col)=>{\n\t\t\t\t\tpromise_list.push(axios.get(p.BACKENDURL+\"/\"+col.name.replace(\"_id\",\"\")+\"?pass=\"+p.password)\n\t\t\t\t\t.then((data)=>{\n\t\t\t\t\t\tdependency_map[col.name]=data.data.rows.sort((a,b)=>b.id-a.id)\n\t\t\t\t\t}))\n\t\t\t\t})\n\t\t\t\tsetData(rows)\n\t\t\t\treturn Promise.allSettled(promise_list)\n\t\t\t})\n\t\t\t.then(()=>{\n\t\t\t\tsetDependencies(dependency_map)\n\t\t\t\tsetLoading(false)\n\t\t\t})\n\t\t\tsetUpdate(false)\n\t\t}\n\t},[update,p.path,p.BACKENDURL,p.password])\n\t\n\treturn <>\n\t{!loading?<>\t\t\t {importAllowed&&{\n\t\t\t\tconst reader = new FileReader()\n\t\t\t\treader.onload=(ev)=>{\n\t\t\t\t\tvar promises=[]\n\t\t\t\t\tparse(ev.target.result,{columns:true,skip_empty_lines:true}).forEach((entry)=>{\n\t\t\t\t\t\tfor (var col of fields) {\n\t\t\t\t\t\t\tif ((col.dataTypeID===23||col.dataTypeID===701||col.dataTypeID===16)&&entry[col.name]===\"\") {\n\t\t\t\t\t\t\t\tentry[col.name]=0\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpromises.push(axios.post(p.BACKENDURL+p.path,{...entry,pass:p.password}))\n\t\t\t\t\t})\n\t\t\t\t\tPromise.allSettled(promises)\n\t\t\t\t\t.then(()=>{\n\t\t\t\t\t\tsetUpdate(true)\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treader.readAsText(f.target.files[0])\n\t\t\t }} style={{opacity:0}} id=\"uploads\" type=\"file\" accept=\".txt,.csv\"/>}\n\t\t>:<>![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
>}\n\t>\n}\n\nfunction DatabaseEditor(p) {\n\tconst [loading,setLoading] = useState(true)\n\tconst [message,setMessage] = useState()\n\tconst [databases,setDatabases] = useState([])\n\tconst [update,setUpdate] = useState(true)\n\n\tuseEffect(()=>{\n\t\tif (update) {\n\t\t\taxios.get(p.BACKENDURL+\"/databases?pass=\"+p.password)\n\t\t\t.then((data)=>{\n\t\t\t\tsetDatabases(data.data)\n\t\t\t})\n\t\t\t.catch((err)=>{\n\t\t\t\tconsole.log(err.message)\n\t\t\t})\n\t\t\t.then(()=>{\n\t\t\t\tsetLoading(false)\n\t\t\t})\n\t\t\tsetUpdate(false)\n\t\t}\n\t},[update,p.BACKENDURL,p.password])\n\n\treturn <>\n\t\t{!loading?<>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t>:
\n\t\t}\n\t\t{message}\n\t\t
\n\t\t
\n\t\tCurrent Databases
\n\t\t
\n\t\tLive Database\n\t\t Test Database
\n\t\t{databases.map((db,i)=>{\n\t\t\tvar label = \"\"\n\t\t\tif (db.datname!==\"ngsplanner\"&&db.datname!==\"ngsplanner2\") {\n\t\t\t\tvar dateStr = db.datname.replace(\"ngsplanner\",\"\")\n\t\t\t\tvar date = new Date(dateStr.slice(0,4),dateStr.slice(4,6),dateStr.slice(6,8),dateStr.slice(8,10),dateStr.slice(10,12),dateStr.slice(12,14))\n\t\t\t\tlabel=<>{\"Backup from \"+date}>\n\t\t\t\treturn {label}
\n\t\t\t} else {\n\t\t\t\treturn \n\t\t\t}\n\t\t})}\n\t>\n}\n\nfunction AdminPanel(p) {\n\tconst [verified,setVerified] = useState(false)\n\tconst [password,setPassword] = useState(\"\")\n\n\tconst navigationData=[\n\t\t{page:\"Class\",url:\"/admin/class\",table:\"/class\"},\n\t\t{page:\"Class Data\",url:\"/admin/classdata\",table:\"/class_level_data\"},\n\t\t{page:\"Class-Weapon Compatibility\",url:\"/admin/classweaponcompatibility\",table:\"/class_weapon_type_data\"},\n\t\t{page:\"Class Skills\",url:\"/admin/classskills\",table:\"/class_skill\"},\n\t\t{page:\"Class Skill Data\",url:\"/admin/classskilldata\",table:\"/class_skill_data\"},\n\t\t{hr:true},\n\t\t{page:\"Weapons\",url:\"/admin/weapons\",table:\"/weapon\"},\n\t\t{page:\"Weapon Existence Data\",url:\"/admin/weaponexistencedata\",table:\"/weapon_existence_data\"},\n\t\t{page:\"Weapon Types\",url:\"/admin/weapontypes\",table:\"/weapon_type\"},\n\t\t{page:\"Class-Weapon Compatibility\",url:\"/admin/classweaponcompatibility\",table:\"/class_weapon_type_data\",duplicate:true},\n\t\t{page:\"Photon Arts\",url:\"/admin/photonarts\",table:\"/photon_art\"},\n\t\t{hr:true},\n\t\t{page:\"Armor\",url:\"/admin/armor\",table:\"/armor\"},\n\t\t{page:\"Potentials\",url:\"/admin/potentials\",table:\"/potential\"},\n\t\t{page:\"Potential Data\",url:\"/admin/potentialdata\",table:\"/potential_data\"},\n\t\t{hr:true},\n\t\t{page:\"Builds\",url:\"/admin/builds\",table:\"/builds\"},\n\t\t{hr:true},\n\t\t{page:\"Skills\",url:\"/admin/skills\",table:\"/skill\"},\n\t\t{page:\"Skill Types\",url:\"/admin/skilltypes\",table:\"/skill_type\"},\n\t\t{page:\"Skill Data\",url:\"/admin/skilldata\",table:\"/skill_data\"},\n\t\t{page:Skill Tree Editor,url:\"/admin/skilltreeeditor\",render:},\n\t\t{page:\"Skill Tree Data\",url:\"/admin/skilltreedata\",table:\"/skill_tree_data\"},\n\t\t{page:\"Photon Arts\",url:\"/admin/photonarts\",table:\"/photon_art\",duplicate:true},\n\t\t{page:\"Class Skills\",url:\"/admin/classskills\",table:\"/class_skill\",duplicate:true},\n\t\t{page:\"Class Skill Data\",url:\"/admin/classskilldata\",table:\"/class_skill_data\",duplicate:true},\n\t\t{hr:true},\n\t\t{page:\"Augment Types\",url:\"/admin/augmenttypes\",table:\"/augment_type\"},\n\t\t{page:\"Augments\",url:\"/admin/augments\",table:\"/augment\"},\n\t\t{page:\"Elements\",url:\"/admin/elements\",table:\"/element\"},\n\t\t{hr:true},\n\t\t{page:\"Enemy Data\",url:\"/admin/enemydata\",table:\"/enemy_data\"},\n\t\t{hr:true},\n\t\t{page:\"Food\",url:\"/admin/food\",table:\"/food\"},\n\t\t{page:\"Food Multipliers\",url:\"/admin/foodmultipliers\",table:\"/food_mult\"},\n\t\t{hr:true},\n\t\t{page:\"Roles\",url:\"/admin/roles\",table:\"/roles\"},\n\t\t{page:\"Users\",url:\"/admin/users\",table:\"/users\"},\n\t\t{hr:true},\n\t\t{page:\"Misc. Site Data\",url:\"/admin/sitedata\",table:\"/site_data\"},\n\t\t{page:\"Database Audit\",url:\"/admin/database_audit\",table:\"/database_audit\"},\n\t]\n\n\treturn \n\t\t{!verified?\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
Admin
\n\t\t\t\t\t\t
\n\t\t\t
{setPassword(f.currentTarget.value)}} onKeyDown={(e)=>{\n\t\t\t\tif (e.key===\"Enter\") {\n\t\t\t\t\taxios.post(GetBackendURL(p)+\"/passwordcheck\",{\n\t\t\t\t\t\tpass:password\n\t\t\t\t\t})\n\t\t\t\t\t.then((data)=>{\n\t\t\t\t\t\tif (data.data.verified) {\n\t\t\t\t\t\t\tsetVerified(data.data.verified)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch((err)=>{\n\t\t\t\t\t\tsetVerified(false)\n\t\t\t\t\t\tsetPassword(\"\")\n\t\t\t\t\t})}}}>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n:<>\n\t\t\n\t\t
\n\t\t
\n\t\t
Navigation
\n\t\t\n\t\t
Testing Mode {p.setTESTMODE(f.target.checked)}}/> {p.TESTMODE?ON:OFF}
\n\t\t
\n\t\t
\n\t\t {navigationData.map((nav,i)=>(nav.hr)?
:{nav.page}
)}\n\t\t Database Manager
\n\t\t
\n\t\t
\n\t\t
\t\t\n\t\t\n\n\n\n\t\t\t{navigationData.map((nav,i)=>(nav.duplicate===undefined&&nav.hr===undefined)&&
\n\t\t\t\n\t\t
\n\t\t
{nav.page}
\n\t\t
\n\t\t
\n\t\t\t\t\t{APP_TITLE+\" - Admin Panel: \"+nav.page}\n\t\t\t\t\n\t\t\t\t{nav.render??
}\n\t\t\t\t)}\n\n\t\t\t
\n\t\t\t\n\t\t\t
\n\t\t
Database Editor
\n\t\t
\n\t\t\t\t\t\n\t\t\t\t
\t\t\t\t\t\n\t\t\t\t
\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t>}\n\t
\n}\n\nfunction EditStatBox(p) {\n\n\tconst [value,setValue] = useState(p.value)\n\n\tuseEffect(()=>{\n\t\tsetValue(p.value)\n\t},[p.value])\n\n\treturn <>{setValue(f.currentTarget.value);p.callback(f.currentTarget.value)}}/> ({value})
>\n}\n\nfunction DamageCalculator(p) {\n\n\tconst [augmentData,setAugmentData] = useState({})\n\t//const [update,setUpdate] = useState(false)\n\n\tuseEffect(()=>{\n\t\taxios.get(p.BACKENDURL+\"/augment\")\n\t\t.then((data)=>{\n\t\t\tvar augmentData = {}\n\t\t\tdata.data.rows.forEach((entry)=>{augmentData[entry.name]=entry})\n\t\t\tsetAugmentData(augmentData)\n\t\t})\n\t},[p.BACKENDURL])\n\n\tconst character = {\n\t\tweapon:{\n\t\t\taugments:[\"1\",\"2\"]\n\t\t},\n\t\tarmor1:{\n\t\t\taugments:[\"2\"]\n\t\t},\n\t\tarmor2:{\n\t\t\taugments:[]\n\t\t},\n\t\tarmor3:{\n\t\t\taugments:[]\n\t\t}\n\t}\n\n\tuseEffect(()=>{\n\t\tif (Object.keys(augmentData).length>0) {\n\t\t\tvar searchFields = [{field:\"variance\",variable:0},{field:\"mel_dmg\",variable:0}]\n\t\t\tfor (var equip of [character.weapon,character.armor1,character.armor2,character.armor3]) {\n\t\t\t\tfor (var field of searchFields) {\n\t\t\t\t\tfor (var i=0;i{\n\t\tsetWeaponTotalAtk(Number(weaponBaseAtk)+Number(weaponEnhanceLv))\n\t},[weaponBaseAtk,weaponEnhanceLv])\n\n\tconst [dmgVariance,setDmgVariance] = useState(1)\n\n\t\tconst [weaponDmgVariance,setWeaponDmgVariance] = useState(1)\n\t\tconst [augDmgVariance,setAugDmgVariance] = useState(1)\n\n\tuseEffect(()=>{\n\t\tsetDmgVariance(Number(weaponDmgVariance)+Number(augDmgVariance))\n\t},[weaponDmgVariance,augDmgVariance])\n\n\tconst [baseAtk,setBaseAtk] = useState(100)\n\tconst [enemyDef,setEnemyDef] = useState(5)\n\tconst [multipliers,setMultipliers] = useState(1)\n\n\tuseEffect(()=>{\n\t\tsetRawDmg(((Number(weaponTotalAtk)*Number(dmgVariance))+Number(baseAtk)-Number(enemyDef))*Number(multipliers)/5)\n\t},[weaponTotalAtk,dmgVariance,baseAtk,enemyDef,multipliers])\n\t\n\tconst [atkmult,setAtkMult] = useState(1);\n\tconst [partmult,setPartMult] = useState(1);\n\tconst [elementalWeaknessMult,setElementalWeaknessMult] = useState(1.2)\n\tconst [mainClassWeaponBoost,setMainClassWeaponBoost] = useState(1.1)\n\tconst [classSkillMult,setClassSkillMult] = useState(1)\n\tconst [equipMult,setEquipMult] = useState(1)\n\n\tconst [augmentEquipMult,setAugmentEquipMult] = useState(1)\n\tconst [potencyFloorEquipMult,setPotencyFloorEquipMult] = useState(1)\n\tconst [elementalWeaponEquipMult,setElementalWeaponEquipMult] = useState(1.1)\n\t\n\tconst [critMult,setCritMult] = useState(1.2)\n\tconst [appropriateDistance,setAppropriateDistance] = useState(1)\n\t\n\tconst [foodBoost,setFoodBoost] = useState(1)\n\tconst [fieldEffects,setFieldEffects] = useState(1.05)\n\tconst [statusAilments,setStatusAilments] = useState(1)\n\n\tconst [enemyCorrectionMult,setEnemyCorrectionMult] = useState(1)\n\n\tconst [highLevelEnemy,setHighLevelEnemy] = useState(1)\n\n\tuseEffect(()=>{\n\t\tsetMultipliers(Number(atkmult)*Number(partmult)*Number(elementalWeaknessMult)*Number(mainClassWeaponBoost)*Number(classSkillMult)*Number(equipMult)*Number(augmentEquipMult)*Number(potencyFloorEquipMult)*Number(elementalWeaponEquipMult)*Number(critMult)*Number(appropriateDistance)*Number(foodBoost)*Number(fieldEffects)*Number(statusAilments)*Number(enemyCorrectionMult)*Number(highLevelEnemy))\n\t},[atkmult,partmult,elementalWeaknessMult,mainClassWeaponBoost,classSkillMult,equipMult,augmentEquipMult,potencyFloorEquipMult,elementalWeaponEquipMult,critMult,appropriateDistance,foodBoost,fieldEffects,statusAilments,enemyCorrectionMult,highLevelEnemy])\n\n\treturn <>\n\t\t\n\t\t\tWeapon Total Atk:
{setWeaponTotalAtk(val)}}/>\n\t\t\t\n\t\t\t\t- ●Weapon Base Atk:{setWeaponBaseAtk(val)}}/>
\n\t\t\t\t- ●Weapon Enhance Lv:{setweaponEnhanceLv(val)}}/>
\n\t\t\t
\n\t\t\t
\n\t\t\tDamage Variance:{setDmgVariance(val)}}/>\n\t\t\t\n\t\t\t\t- ●Weapon Damage Variance:{setWeaponDmgVariance(val)}}/>
\n\t\t\t\t- ●Augment Damage Variance:{setAugDmgVariance(val)}}/>
\n\t\t\t
\n\t\t\t
\n\t\t\tBase Attack:{setBaseAtk(val)}}/>\n\t\t\tEnemy Defense:{setEnemyDef(val)}}/>\n\t\t\tMultipliers:{setMultipliers(val)}}/>\n\t\t\t\n\t\t\t\t- ●Atk Mult:{setAtkMult(val)}}/>
\n\t\t\t\t- ●Part Mult:{setPartMult(val)}}/>
\n\t\t\t\t- ●Elemental Weakness Mult:{setElementalWeaknessMult(val)}}/>
\n\t\t\t\t- ●Main Class Weapon Boost:{setMainClassWeaponBoost(val)}}/>
\n\t\t\t\t- ●Class Skill Mult:{setClassSkillMult(val)}}/>
\n\t\t\t\t- ●Equip Mult:{setEquipMult(val)}}/>
\n\t\t\t\t- \n\t\t\t\t\t
\n\t\t\t\t\t\t- ●Augment Equip Mult:{setAugmentEquipMult(val)}}/>
\n\t\t\t\t\t\t- ●Potency Floor Equip Mult:{setPotencyFloorEquipMult(val)}}/>
\n\t\t\t\t\t\t- ●Elemental Weapon Equip Mult:{setElementalWeaponEquipMult(val)}}/>
\n\t\t\t\t\t
\n\t\t\t\t \n\t\t\t\t- ●Crit Mult:{setCritMult(val)}}/>
\n\t\t\t\t- ●Appropriate Distance:{setAppropriateDistance(val)}}/>
\n\t\t\t\t- ●Food Boost:{setFoodBoost(val)}}/>
\n\t\t\t\t- ●Field Effects:{setFieldEffects(val)}}/>
\n\t\t\t\t- ●Status Ailments:{setStatusAilments(val)}}/>
\n\t\t\t\t- ●Enemy Correction Multiplier:{setEnemyCorrectionMult(val)}}/>
\n\t\t\t\t- ●High Level Enemy:{setHighLevelEnemy(val)}}/>
\n\t\t\t
\n\t\t\t
\n\t\t\tRaw Dmg:{rawDmg}\n\t\t \n\t>\n}\n\nfunction FormField(p) {\n\treturn <>{\n\t\tp.type===\"toggle\"?<> >:} >\n}\n\nfunction VerifyLogin(p) {\n\taxios.post(GetBackendURL(p)+\"/validUser\",{\n\t\tusername:p.LOGGEDINUSER,\n\t\tpassword:p.LOGGEDINHASH,\n\t\trecoveryhash:cookies.get(\"userID\")\n\t})\n\t.then((data)=>{\n\t\tif (data.data.verified) {\n\t\t\tp.history.push(\"/\")\n\t\t}\n\t})\n\t.catch((err)=>{\n\t\tconsole.log(err.message)\n\t})\n}\n\nfunction LoginForm(p) {\n\tconst [username,setUsername] = useState(\"\")\n\tconst [password,setPassword] = useState(\"\")\n\tconst [rememberMe,setRememberMe] = useState(false)\n\tconst [error,setError] = useState(\"\")\n\tconst [loading,setLoading] = useState(false)\n\tconst [message,setMessage] = useState(\"\")\n\n\tconst history = useHistory()\n\n\tuseEffect(()=>{\n\t\tVerifyLogin({...p,history:history})\n\t},[history,p])\n\n\tfunction SubmitLogin() {\n\t\tsetError(\"\")\n\t\tsetLoading(true)\n\t\taxios.post(GetBackendURL(p)+\"/validUser\",{\n\t\t\tusername:username,\n\t\t\tpassword:md5(password)\n\t\t})\n\t\t.then((data)=>{\n\t\t\tif (data.data.verified) {\n\t\t\t\tp.setLOGGEDINUSER(username)\n\t\t\t\tp.setLOGGEDINHASH(md5(password))\n\t\t\t\tcookies.set(\"username\",username,30,'d')\n\t\t\t\tcookies.set(\"password\",md5(password),30,'d')\n\t\t\t\tsetUsername(\"\")\n\t\t\t\tsetPassword(\"\")\n\t\t\t\tsetRememberMe(false)\n\t\t\t\thistory.push(\"/\")\n\t\t\t} else {\n\t\t\t\tsetError(\"Could not authenticate!\")\n\t\t\t}\n\t\t})\n\t\t.catch((err)=>{\n\t\t\tsetError(err?.message??err);\n\t\t})\n\t\t.then(()=>{\n\t\t\tsetLoading(false)\n\t\t})\n\t}\n\n\tfunction responseGoogle(response) {\n\t\t//setMessage(JSON.stringify(response))\n\t\tif (response.error) {\n\t\t\tsetMessage(JSON.stringify(response))\n\t\t} else \n\t\tif (response.profileObj.googleId&&\n\t\t\tresponse.profileObj.imageUrl&&\n\t\t\tresponse.profileObj.email&&\n\t\t\tresponse.profileObj.name&&\n\t\t\tresponse.tokenId){\n\t\t\taxios.post(GetBackendURL(p)+\"/registerUser\",{\n\t\t\t\tusername:response.profileObj.name,\n\t\t\t\temail:response.profileObj.email,\n\t\t\t\tpassword:response.tokenId,\n\t\t\t\tavatar:response.profileObj.imageUrl,\n\t\t\t\tuserID:response.profileObj.googleId,\n\t\t\t\trecoveryhash:response.profileObj.googleId\n\t\t\t})\n\t\t\t.then((data)=>{\n\t\t\t\tif (data.data.verified) {\n\t\t\t\t\tp.setLOGGEDINUSER(response.profileObj.name)\n\t\t\t\t\tp.setLOGGEDINHASH(response.tokenId)\n\t\t\t\t\tcookies.set(\"username\",response.profileObj.name,30,'d')\n\t\t\t\t\tcookies.set(\"password\",response.tokenId,30,'d')\n\t\t\t\t\tcookies.set(\"userID\",response.profileObj.googleId,30,'d')\n\t\t\t\t\tsetUsername(\"\")\n\t\t\t\t\tsetPassword(\"\")\n\t\t\t\t\tsetRememberMe(false)\n\t\t\t\t\thistory.push(\"/\")\n\t\t\t\t} else {\n\t\t\t\t\tcookies.remove(\"userID\")\n\t\t\t\t\tsetError(\"Could not authenticate!\")\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t }\n\n\treturn <>\n\t\n\t{loading?\n\t\t
\n\t\t:<>{if (f.key===\"Enter\") {SubmitLogin()}}}>
{error}
\n\t\t{setUsername(p.currentTarget.value)}} placeholder=\"Username\"/>
\n\t\t{setPassword(p.currentTarget.value)}} placeholder=\"Password\"/>
\n\t\t{setRememberMe(p.currentTarget.checked)}}/>
\n\t\t\n\t\t
\n\t\t{message}
\n\t\t\n\t\t>\n\t}\n\t>\n}\n\nfunction RegisterForm(p) {\n\tconst [username,setUsername] = useState(\"\")\n\tconst [password,setPassword] = useState(\"\")\n\tconst [password2,setPassword2] = useState(\"\")\n\tconst [email,setEmail] = useState(\"\")\n\tconst [rememberMe,setRememberMe] = useState(false)\n\tconst [error,setError] = useState(\"\")\n\tconst [loading,setLoading] = useState(false)\n\n\tconst history = useHistory()\n\n\tuseEffect(()=>{\n\t\tVerifyLogin({...p,history:history})\n\t},[history,p])\n\n\tfunction SubmitRegister() {\n\t\tsetError(\"\")\n\t\tsetLoading(true)\n\t\ttry{\n\t\t\tif (username.length<4) {throw new Error(\"Username must be at least 4 characters in length.\")}\n\t\t\tif (username.length>20) {throw new Error(\"Username must be less than 21 characters in length.\")}\n\t\t\tif (password.length<6) {throw new Error(\"Password must contain at least 6 characters.\")}\n\t\t\tif (password!==password2) {throw new Error(\"Password fields must match.\")}\n\t\t\tif (!email.includes(\"@\")) {throw new Error(\"Invalid E-mail.\")}\n\t\t}catch(err){\n\t\t\tsetError(err?.message??err);\n\t\t\tsetLoading(false)\n\t\t\treturn\n\t\t}\n\t\taxios.post(GetBackendURL(p)+\"/register\",{\n\t\t\tusername:username,\n\t\t\tpassword:md5(password),\n\t\t\temail:email\n\t\t})\n\t\t.then((data)=>{\n\t\t\tif (data.data.verified) {\n\t\t\t\tp.setLOGGEDINUSER(username)\n\t\t\t\tp.setLOGGEDINHASH(md5(password))\n\t\t\t\tsetUsername(\"\")\n\t\t\t\tsetPassword(\"\")\n\t\t\t\tsetRememberMe(false)\n\t\t\t} else {\n\t\t\t\tsetError(\"Could not authenticate!\")\n\t\t\t}\n\t\t})\n\t\t.catch((err)=>{\n\t\t\tsetError(err?.message??err);\n\t\t})\n\t\t.then(()=>{\n\t\t\tsetLoading(false)\n\t\t})\n\t}\n\n\treturn <>\n\t\n\t{loading?\n\t\t
\n\t\t:<>{error}
\n\t\t{setUsername(p.currentTarget.value)}} placeholder=\"Username\" tooltip=\"Enter a username (4-20 characters, a-z and _ only)\"/>
\n\t\t{setPassword(p.currentTarget.value)}} placeholder=\"Password\" tooltip=\"Enter a password (6 or more characters)\"/>
\n\t\t{setPassword2(p.currentTarget.value)}} placeholder=\"Verify Password\" tooltip=\"Enter password again.\"/>
\n\t\t{setEmail(p.currentTarget.value)}} placeholder=\"email@example.com\" tooltip=\"This is used to send you password reset emails.\"/>
\n\t\t{setRememberMe(p.currentTarget.checked)}}/>
\n\t\t>\n\t}\n\t>\n}\n\n\nfunction App() {\n\t\n\tconst [author] = useState(\"Dudley\")\n\tconst [buildName] = useState(\"Fatimah\")\n\tconst [className] = useState(\"Ranger\")\n\tconst [secondaryClassName] = useState(\"Force\")\n\tconst [classLv] = useState(20)\n\tconst [secondaryClassLv] = useState(15)\n\t\t\n\t\n\tconst [bp] = useState(1330)\n\tconst [hp] = useState(388)\n\tconst [pp] = useState(154)\n\tconst [weaponTotalAtk] = useState(282)\n\tconst [baseAtk] = useState(650)\n\tconst [statDisplayAtk,setstatDisplayAtk] = useState(282)\n\n\tuseEffect(()=>{\n\t\tsetstatDisplayAtk(Number(weaponTotalAtk)+Number(baseAtk))\n\t},[weaponTotalAtk,baseAtk])\n\n\tconst [def] = useState(932)\n\tconst [weaponUp1] = useState(0.317)\n\tconst [weaponUp2] = useState(0.241)\n\tconst [weaponUp3] = useState(0.241)\n\tconst [damageResist] = useState(0.18)\n\tconst [burnResist] = useState(0)\n\tconst [shockResist] = useState(0)\n\tconst [panicResist] = useState(0)\n\tconst [stunResist] = useState(0)\n\tconst [freezeResist] = useState(0)\n\tconst [blindResist] = useState(0)\n\tconst [poisonResist] = useState(0)\n\t\n\tconst [TESTMODE,setTESTMODE] = useState(false)\n\tconst [DATA,setDATA] = useState(undefined)\n\tconst [DATAID,setDATAID] = useState({GetData:()=>{}})\n\tconst [update,setUpdate] = useState(false)\n\n\tconst [LOGGEDINUSER,setLOGGEDINUSER] = useState(cookies.get(\"username\"))\n\tconst [LOGGEDINHASH,setLOGGEDINHASH] = useState(cookies.get(\"password\"))\n\n\tconst PANELPATHWBUILD = process.env.PUBLIC_URL+\"/test/:BUILDID\"\n\tconst PANELPATH = process.env.PUBLIC_URL+\"/test\"\n\n\tfunction GetData(table,row,col,id){\n\t\tif (row===undefined) {row=''}\n\t\tif (col===undefined) {col=''}\n\t\tvar data = id?DATAID:DATA\n\t\tif (!data) {\n\t\t\treturn \"no data\"\n\t\t} else {\n\t\t\treturn data!==undefined?data[table]!==undefined?data[table][row]!==undefined?data[table][row][col]!==undefined?data[table][row][col]:data[table][row]:data[table]:data:\"no data\"\n\t\t}\n\t}\n\t\n\tuseEffect(()=>{\n\t\tif (update) {\n\t\t\tsetUpdate(false)\n\t\t\taxios.get(GetBackendURL({TESTMODE:TESTMODE})+\"/data\")\n\t\t\t.then((data)=>{\n\t\t\t\tsetDATA(data.data)\n\t\t\t})\n\t\t\taxios.get(GetBackendURL({TESTMODE:TESTMODE})+\"/dataid\")\n\t\t\t.then((data)=>{\n\t\t\t\tsetDATAID(data.data)\n\t\t\t})\n\t\t}\n\t},[update,TESTMODE])\n\n\tuseEffect(()=>{\n\t\tsetLOGGEDINUSER(cookies.get(\"username\"))\n\t\tsetLOGGEDINHASH(cookies.get(\"password\"))\n\t\taxios.get(GetBackendURL({TESTMODE:TESTMODE})+\"/data\")\n\t\t.then((data)=>{\n\t\t\tsetDATA(data.data)\n\t\t})\n\t\taxios.get(GetBackendURL({TESTMODE:TESTMODE})+\"/dataid\")\n\t\t.then((data)=>{\n\t\t\tsetDATAID(data.data)\n\t\t})\n\t},[TESTMODE])\n\n return (\n \t<>\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{APP_TITLE+\" - Admin Panel\"}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{APP_TITLE+\" - Login\"}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{APP_TITLE+\" - Register\"}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{APP_TITLE}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
{GetData(\"site_data\",\"h1\",\"data\")}
{GetData(\"site_data\",\"h2\",\"data\")}
\n\t\t\t\t{GetData(\"site_data\",\"UNDER_CONSTRUCTION_TEXT\",\"data\")}
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\n\t\t\n\t>\n );\n}\n\nexport default App;\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/main.e9249814.chunk.js b/static/js/main.e9249814.chunk.js
new file mode 100644
index 0000000..aabc518
--- /dev/null
+++ b/static/js/main.e9249814.chunk.js
@@ -0,0 +1,2 @@
+(this.webpackJsonpngsplanner=this.webpackJsonpngsplanner||[]).push([[0],{143:function(e,t){},145:function(e,t){},153:function(e,t,a){"use strict";a.r(t);var i=a(1),s=a.n(i),c=a(36),n=a.n(c),l=(a(80),a(12)),r=a(6),d=a(20),j=a(2),b=(a(81),a(82),a(37)),o=a.n(b),h=a(14),O=a(157),u=a(158),m=a(159),g=a(160),p=a(161),x=a(10),f=a(0);function v(e){var t=Object(i.useRef)(null),a=Object(i.useState)(0),s=Object(j.a)(a,2),c=s[0],n=s[1],r=Object(i.useState)(0),d=Object(j.a)(r,2),b=d[0],o=d[1];return Object(i.useEffect)((function(){n(e.gridSizeX*e.gridDimensionsX+e.gridPaddingX*(e.gridDimensionsX-1)),o(e.gridSizeY*Math.ceil(e.gridDimensionsY/2)+e.halflineheight*Math.ceil((e.gridDimensionsY-1)/2)+e.gridPaddingY*(e.gridDimensionsY-1))}),[e.halflineheight,e.skillLines,e.gridSizeX,e.gridSizeY,e.gridPaddingX,e.gridPaddingY,e.gridDimensionsX,e.gridDimensionsY]),Object(i.useEffect)((function(){var a=t.current.getContext("2d");a.clearRect(0,0,c,b),a.fillStyle="rgba(100,100,100,0.5)",a.strokeStyle=e.strokeStyle,a.lineWidth=e.lineWidth,a.setLineDash(e.lineDash);var i,s=0,n=Object(l.a)(e.skillLines);try{for(n.s();!(i=n.n()).done;){var r,d=i.value,j=0,o=Object(l.a)(d.split(""));try{for(o.s();!(r=o.n()).done;){var h=r.value,O=0!==j?e.gridPaddingX*j:0,u=0!==s?e.gridPaddingY*s:0;switch(h){case"\u2500":a.beginPath(),a.moveTo(j*e.gridSizeX+O-e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(j*e.gridSizeX+O+e.gridSizeX+e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke();break;case"\u2502":a.beginPath(),a.moveTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u-e.gridPaddingY),a.lineTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+e.gridSizeY+e.gridPaddingY),a.stroke();break;case"\u2514":a.beginPath(),a.moveTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u-e.gridPaddingY),a.lineTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(j*e.gridSizeX+O+e.gridSizeX+e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke();break;case"\u250c":a.beginPath(),a.moveTo(j*e.gridSizeX+O+e.gridSizeX+e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+e.gridSizeY+e.gridPaddingY),a.stroke();break;case"\u2518":a.beginPath(),a.moveTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u-e.gridPaddingY),a.lineTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(j*e.gridSizeX+O-e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke();break;case"\u2510":a.beginPath(),a.moveTo(j*e.gridSizeX+O-e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+e.gridSizeY+e.gridPaddingY),a.stroke();break;case"\u251c":a.beginPath(),a.moveTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u-e.gridPaddingY),a.lineTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(j*e.gridSizeX+O+e.gridSizeX+e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke(),a.beginPath(),a.moveTo(j*e.gridSizeX+O+e.gridSizeX+e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+e.gridSizeY+e.gridPaddingY),a.stroke();break;case"\u2524":a.beginPath(),a.moveTo(j*e.gridSizeX+O-e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+e.gridSizeY+e.gridPaddingY),a.stroke(),a.beginPath(),a.moveTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u-e.gridPaddingY),a.lineTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(j*e.gridSizeX+O-e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke();break;case"\u252c":a.beginPath(),a.moveTo(j*e.gridSizeX+O-e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+e.gridSizeY+e.gridPaddingY),a.stroke(),a.beginPath(),a.moveTo(j*e.gridSizeX+O+e.gridSizeX+e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+e.gridSizeY+e.gridPaddingY),a.stroke();break;case"\u2534":a.beginPath(),a.moveTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u-e.gridPaddingY),a.lineTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(j*e.gridSizeX+O+e.gridSizeX+e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke(),a.beginPath(),a.moveTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u-e.gridPaddingY),a.lineTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(j*e.gridSizeX+O-e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke();break;case"\u253c":a.beginPath(),a.moveTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u-e.gridPaddingY),a.lineTo(j*e.gridSizeX+O+e.gridSizeX/2,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+e.gridSizeY+e.gridPaddingY),a.moveTo(j*e.gridSizeX+O-e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(j*e.gridSizeX+O+e.gridSizeX+e.gridPaddingX,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u+(s%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke();break;case"\u25a1":a.clearRect(j*e.gridSizeX+O,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u,e.gridSizeX,s%2===1?e.halflineheight:e.gridSizeY),a.fillRect(j*e.gridSizeX+O,Math.ceil(s/2)*e.gridSizeY+Math.ceil((s-1)/2)*e.halflineheight+u,e.gridSizeX,s%2===1?e.halflineheight:e.gridSizeY)}j++}}catch(m){o.e(m)}finally{o.f()}s++}}catch(m){n.e(m)}finally{n.f()}}),[c,b,e.gridSizeX,e.gridSizeY,e.gridPaddingX,e.gridPaddingY,e.lineDash,e.lineWidth,e.skillLines,e.strokeStyle,e.halflineheight]),Object(f.jsx)("canvas",{width:c,height:b,ref:t,style:e.style,className:e.className,children:e.children})}function S(e){var t=e.GetData,a=Object(i.useState)([]),s=Object(j.a)(a,2),c=s[0],n=s[1];return Object(i.useEffect)((function(){n(t("class_skill"))}),[e.cl,t]),Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)("select",{onChange:function(t){e.callback(t.currentTarget.value,Number(e.x),Number(e.y))},style:{position:"absolute",left:e.ADJUSTMENT[0]+(e.x*e.gridSizeX+e.padX+e.gridSizeX/2),top:e.ADJUSTMENT[1]+(e.y/2*e.gridSizeY+(e.y/2-1)*e.halflineheight+e.padY+(0===e.y?e.halflineheight:e.gridSizeY)/2)},value:e.defaultValue,children:[" ","\u2500","\u2502","\u25a1","\u250c","\u2514","\u2510","\u2518","\u252c","\u2534","\u251c","\u2524","\u253c"].map((function(e){return Object(f.jsx)("option",{value:e,children:e},e)}))}),"\u25a1"===e.defaultValue&&Object(f.jsx)("select",{style:{width:"64px",position:"absolute",left:e.ADJUSTMENT[0]+(e.x*e.gridSizeX+e.padX+e.gridSizeX/2),top:e.ADJUSTMENT[1]+(e.y/2*e.gridSizeY+(e.y/2-1)*e.halflineheight+e.padY+(0===e.y?e.halflineheight:e.gridSizeY)/2)+28},onChange:function(t){e.skillCallback(e.x,e.y,t.currentTarget.value)},value:e.skill.split(",")[2],children:[""].concat(Object(x.a)(Object.keys(c).filter((function(t){return c[t].class_id===e.cl})))).map((function(e){return Object(f.jsx)("option",{value:c[e]?c[e].id:"",children:c[e]?c[e].name:""},e)}))})]})}var N=a(16),y=a.n(N);function k(e){var t,a,c=e.GetData,n=Object(i.useMemo)((function(){return[-32,32]}),[]),l=Object(i.useState)(!0),r=Object(j.a)(l,2),d=r[0],b=r[1],o=Object(i.useState)({}),h=Object(j.a)(o,2),O=h[0],u=h[1],m=Object(i.useState)({}),g=Object(j.a)(m,2),p=g[0],N=g[1],k=Object(i.useState)(-1),D=Object(j.a)(k,2),C=D[0],E=D[1],P=Object(i.useState)("#000000"),z=Object(j.a)(P,2),T=z[0],A=z[1],M=Object(i.useState)(3),_=Object(j.a)(M,2),w=_[0],G=_[1],I=Object(i.useState)(6),R=Object(j.a)(I,2),X=R[0],W=R[1],Y=Object(i.useState)(6),L=Object(j.a)(Y,2),F=L[0],U=L[1],B=Object(i.useState)(80),H=Object(j.a)(B,2),K=H[0],q=H[1],V=Object(i.useState)(60),J=Object(j.a)(V,2),Q=J[0],Z=J[1],$=Object(i.useState)(10),ee=Object(j.a)($,2),te=ee[0],ae=ee[1],ie=Object(i.useState)(10),se=Object(j.a)(ie,2),ce=se[0],ne=se[1],le=Object(i.useState)([]),re=Object(j.a)(le,2),de=re[0],je=re[1],be=Object(i.useState)([]),oe=Object(j.a)(be,2),he=oe[0],Oe=oe[1],ue=Object(i.useState)([]),me=Object(j.a)(ue,2),ge=me[0],pe=me[1],xe=Object(i.useState)([]),fe=Object(j.a)(xe,2),ve=fe[0],Se=fe[1],Ne=Object(i.useState)(""),ye=Object(j.a)(Ne,2),ke=ye[0],De=ye[1],Ce=Object(i.useState)(!1),Ee=Object(j.a)(Ce,2),Pe=Ee[0],ze=Ee[1],Te=Object(i.useState)(60),Ae=Object(j.a)(Te,2),Me=Ae[0],_e=Ae[1],we=Object(i.useCallback)((function(e,t){var a=ve.filter((function(a){return Number(a.split(",")[0])===Number(e)&&Number(a.split(",")[1])===Number(t)}));return a.length>0?a[0]:""}),[ve]);return Object(i.useEffect)((function(){u(c("class",void 0,void 0,!0)),N(c("skill_tree_data",void 0,void 0,!0))}),[c]),Object(i.useEffect)((function(){for(var e=!1,t=0,a=Object.keys(p);t0?e.includes("http")?e:""+e:"/icons/nicodotpng.png.png"}var T=a(16),A=a(50);var M=function(e){var t=e.BACKENDURL,a=e.LOGGEDINUSER,s=e.LOGGEDINHASH,c=Object(i.useState)(void 0),n=Object(j.a)(c,2),l=n[0],r=n[1],d=Object(i.useState)(void 0),b=Object(j.a)(d,2),o=b[0],h=b[1];return Object(i.useEffect)((function(){T.post(t+"/validUser",{username:a,password:s,recoveryhash:A.get("userID")}).then((function(e){e.data.verified&&(r(e.data.avatar),h(a))}))}),[t,a,s]),Object(f.jsx)("header",{children:Object(f.jsxs)("div",{className:"headerWrapper",children:[Object(f.jsx)("div",{className:"logo",children:Object(f.jsxs)("a",{href:".",children:[Object(f.jsx)("img",{alt:"",src:"/icons/logo_sm.png"}),"\u2003NGS",Object(f.jsx)("span",{children:"planner"})]})}),Object(f.jsxs)("div",{className:"navigation",children:[Object(f.jsxs)("ul",{children:[Object(f.jsx)("li",{className:"headerMenuItem",children:Object(f.jsx)("a",{href:".",children:"Builds"})}),Object(f.jsx)("li",{className:"headerMenuItem",children:Object(f.jsx)("a",{href:".",children:"Guides"})}),Object(f.jsx)("li",{className:"headerMenuItem",children:Object(f.jsx)("a",{href:".",children:"Blog"})}),Object(f.jsx)("li",{className:"headerMenuItem",children:Object(f.jsx)("a",{href:".",children:"About"})})]}),Object(f.jsx)("section",{className:"miniNav",children:Object(f.jsx)("a",{href:".",children:"\u2630"})})]}),Object(f.jsxs)("div",{className:"rightNav",children:[Object(f.jsx)("section",{className:"loginNav",children:Object(f.jsxs)("a",{href:".",children:[Object(f.jsx)("img",{alt:".",src:z(l)})," ",null!==o&&void 0!==o?o:"Guest"," \u2003 ",Object(f.jsx)("span",{className:"dotMenu",children:"\xb7\xb7\xb7"})]})}),Object(f.jsx)("section",{className:"miniNav",children:Object(f.jsx)("a",{href:".",children:Object(f.jsx)("img",{alt:".",src:z(l)})})})]})]})})},_=a(156),w=a(38),G=a.n(w),I=a(73);function R(e){var t;return Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)("span",{"data-tip":!0,"data-tip-disable":0===(null===(t=e.tooltip)||void 0===t?void 0:t.length),"data-for":e.id,children:e.children}),Object(f.jsx)(I.a,{id:e.id,className:"xTooltip",overridePosition:function(e,t,a,i){var s=e.left,c=e.top,n=document.documentElement;return s=Math.min(n.clientWidth-i.clientWidth,s),c=Math.min(n.clientHeight-i.clientHeight,c),s=Math.max(0,s),{top:c=Math.max(0,c),left:s}},children:e.tooltip})]})}function X(e){return Object(i.useEffect)((function(){var e=setTimeout((function(){document.getElementById("editBoxInput").focus(),document.getElementById("editBoxInput").select()}),100);return function(){clearTimeout(e)}}),[e.edit]),Object(f.jsx)("input",{id:"editBoxInput",type:e.type,max:"number"===e.type?20:void 0,min:"number"===e.type?1:void 0,onKeyDown:function(t){("Enter"===t.key||"Escape"===t.key)&&e.setEdit(!1)},maxLength:e.maxlength?e.maxlength:20,onBlur:function(){e.setEdit(!1)},value:e.value,onChange:function(t){t.currentTarget.value.length>0?e.setName(t.currentTarget.value):e.setName(e.originalName)}})}function W(e){var t=Object(i.useState)(!1),a=Object(j.a)(t,2),s=a[0],c=a[1];return Object(i.useEffect)((function(){e.callback&&e.callback()}),[s,e]),Object(f.jsx)(f.Fragment,{children:Object(f.jsx)("div",{className:s?"editBoxActive":"editBox",onClick:function(e){c(!0)},children:s?Object(f.jsx)(X,{edit:s,maxlength:e.maxlength,type:e.type,setEdit:c,originalName:e.data,setName:e.setData,value:e.data}):Object(f.jsxs)(f.Fragment,{children:[e.prefix,e.data]})})})}function Y(e){return Object(f.jsx)("li",{onClick:function(){e.onPageChange&&e.onPageChange(e.pageName),e.setCurrentPage(e.page)},className:e.currentPage===e.page?"selected":"unselected",children:e.pageDisplay?e.pageDisplay[e.page-1]:e.pageName?e.pageName:e.page})}function L(e){for(var t=[],a=0;a0&&Object(f.jsx)("ul",{className:"boxmenu",children:t.map((function(e,t){return Object(f.jsx)(s.a.Fragment,{children:e},t)}))})}function F(e){var t=e.GetData("class"),a=t[e.name];return"no data"!==t?a?Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)("img",{alt:"",src:""+a.icon}),a.name]}):Object(f.jsx)(f.Fragment,{}):Object(f.jsx)(f.Fragment,{children:"-"})}function U(e){return Object(f.jsx)(f.Fragment,{children:Object(f.jsx)("div",{className:"editClass",onClick:function(){e.setClassNameSetter(e.editClass),e.setClassSelectWindowOpen(!0)},children:Object(f.jsx)(F,{GetData:e.GetData,name:e.name})})})}function B(e){return Object(f.jsx)(G.a,{ariaHideApp:!1,isOpen:e.modalOpen,onRequestClose:function(){e.setModalOpen(!1)},shouldFocusAfterRender:!0,shouldCloseOnOverlayClick:!0,shouldCloseOnEsc:!0,className:"modal",overlayClassName:"modalOverlay",children:Object(f.jsxs)("div",{className:"box boxModal",children:[Object(f.jsxs)("div",{className:"boxTitleBar",children:[Object(f.jsx)("h1",{children:e.title}),e.showCloseButton&&Object(f.jsx)("div",{className:"boxExit",onClick:function(){e.setModalOpen(!1)}})]}),Object(f.jsx)(L,{onPageChange:e.onPageChange,pages:e.pageNames?e.pageNames.length:0,pageNames:e.pageNames,currentPage:e.page,setCurrentPage:e.setPage}),e.children]})})}function H(e){var t=e.onModalOpen,a=Object(i.useState)([]),c=Object(j.a)(a,2),n=c[0],l=c[1],r=Object(i.useState)(1),d=Object(j.a)(r,2),b=d[0],o=d[1],h=Object(i.useState)(e.sortItems?e.sortItems[0]:""),O=Object(j.a)(h,2),u=O[0],m=O[1],g=Object(i.useState)(""),p=Object(j.a)(g,2),x=p[0],v=p[1];return Object(i.useEffect)((function(){e.dataFunction&&l(e.dataFunction())}),[e]),Object(i.useEffect)((function(){t&&t(o)}),[t]),Object(f.jsxs)(B,{page:b,setPage:o,modalOpen:e.modalOpen,setModalOpen:e.setModalOpen,showCloseButton:!0,title:e.title,pageNames:e.pageNames,filter:!0,onPageChange:e.onPageChange,children:[(e.sortItems||e.filter)&&Object(f.jsxs)("div",{className:"itemBar",children:[Object(f.jsx)("div",{className:"itemBarSort",children:e.sortItems&&Object(f.jsx)("select",{className:"itemBarForm",value:u,onChange:function(e){m(e.currentTarget.value)},children:e.sortItems.map((function(e){return Object(f.jsx)("option",{value:e,children:e},e)}))})}),Object(f.jsx)("div",{className:"itemBarFilter",children:e.filter?Object(f.jsx)("input",{className:"itemBarForm",type:"text",placeholder:"Filter",value:x,onChange:function(e){v(e.currentTarget.value)}}):Object(f.jsx)(f.Fragment,{})})]}),Object(f.jsxs)("div",{className:"modalItemListContainer customScrollbar",children:[e.filter?n.filter((function(t){return e.filterFunction(b,t)})).filter((function(t){return e.searchFieldFunction(x,t)})).sort((function(t,a){return e.sortOrderFunction(u,t,a)})).map((function(t,a){return Object(f.jsx)(s.a.Fragment,{children:e.displayFunction(t)},a)})):n.map((function(t,a){return Object(f.jsx)(s.a.Fragment,{children:e.displayFunction(t)},a)})),e.children]})]})}function K(e){return Object(f.jsx)("span",Object(r.a)(Object(r.a)({},e),{},{className:"skillLeftButton"}))}function q(e){return Object(f.jsx)("span",Object(r.a)(Object(r.a)({},e),{},{className:"skillRightButton"}))}function V(e){var t=Object(i.useState)("Select Main Class"),a=Object(j.a)(t,2),s=a[0],c=a[1];return Object(i.useEffect)((function(){c(e.editClass?"Select Sub Class":"Select Main Class")}),[e.editClass]),Object(f.jsx)(H,{title:s,modalOpen:e.modalOpen,setModalOpen:e.setModalOpen,GetData:e.GetData,pageNames:["Main Class","Sub-Class"],onPageChange:function(t){"Main Class"===t?e.setEditClass(0):e.setEditClass(1)},onModalOpen:function(t){t(e.editClass?2:1)},dataFunction:function(){var t=e.GetData("class");return Object.keys(t)},displayFunction:function(t){return Object(f.jsxs)("li",{className:e.class===t?"treeListMain":e.subClass===t?"treeListSub":"",onClick:function(){0===e.editClass?(e.setClassName(t),e.setSubClassName(e.subClass===t?e.class:e.subClass)):(e.setSubClassName(t),e.setClassName(e.class===t?e.subClass:e.class)),e.setModalOpen(!1)},children:[Object(f.jsx)("img",{alt:"",src:z(e.GetData("class",t,"icon"))})," ",e.GetData("class",t,"name")]})}})}function J(e){var t;return void 0!==e[4]?(null===(t=e[4].special_name)||void 0===t?void 0:t.length)>0?e[4].special_name:e[1].name+" "+e[0].name:Object(f.jsx)(f.Fragment,{children:Object(f.jsx)("span",{style:{fontStyle:"italic"},children:"Select Weapon"})})}function Q(e){return Object(f.jsxs)("div",{className:e.className,style:{gridArea:(t=Number(e.skill[0]),a=Number(e.skill[1]),String.fromCharCode(Number(t)+"a".charCodeAt(0))+(a/2+1))},children:[Object(f.jsx)("img",{className:"skillIcon",alt:"",src:z(e.GetData("class_skill",e.skill[2],"icon",!0))}),Object(f.jsx)("span",{className:"skillAllocated",children:(e.skillPointData[e.page-1][e.boxId]?e.skillPointData[e.page-1][e.boxId]:0)+"/"+e.maxPoints}),Object(f.jsx)("em",{className:"skillName",children:"string"===typeof e.GetData("class_skill",e.skill[2],"name",!0)&&e.GetData("class_skill",e.skill[2],"name",!0)}),Object(f.jsxs)("div",{className:"skillButtons",children:[Object(f.jsx)(K,{onClick:function(){var t=Object(x.a)(e.points),a=Object(x.a)(e.skillPointData);a[e.page-1][e.boxId]||(a[e.page-1][e.boxId]=0),a[e.page-1][e.boxId]>0&&(t[e.page-1]-=1,a[e.page-1][e.boxId]-=1,e.setPoints(t),e.setSkillPointData(a))}}),Object(f.jsx)(q,{onClick:function(){var t=Object(x.a)(e.points),a=Object(x.a)(e.skillPointData);a[e.page-1][e.boxId]||(a[e.page-1][e.boxId]=0),a[e.page-1][e.boxId]i&&(i=c.level)}return i}return Object(f.jsx)(f.Fragment,{children:e.skillTreeSkillData&&e.skillTreeSkillData.map((function(a,i){var s=a.split(",");return""!==s[0]&&""!==s[1]&&""!==s[2]&&Object(f.jsx)(Q,{className:(s[2],e.skillPointData[e.page-1][s[0]+"_"+s[1]]===t(s[2])?"skillMaxed":e.skillPointData[e.page-1][s[0]+"_"+s[1]]>0?"skillActive":""),boxId:s[0]+"_"+s[1],skillPointData:e.skillPointData,setSkillPointData:e.setSkillPointData,page:e.page,cl:e.cl,maxPoints:t(s[2]),points:e.points,setPoints:e.setPoints,GetData:e.GetData,skill:s.map((function(e){return Number(e)}))},i)}))})}function $(e){var t=e.GetData,a=Object(i.useState)([]),s=Object(j.a)(a,2),c=s[0],n=s[1],r=Object(i.useState)([]),d=Object(j.a)(r,2),b=d[0],o=d[1],h=Object(i.useState)(""),O=Object(j.a)(h,2),u=O[0],m=O[1],g=Object(i.useState)(3),p=Object(j.a)(g,2),x=p[0],S=p[1],N=Object(i.useState)(6),y=Object(j.a)(N,2),k=y[0],D=y[1],C=Object(i.useState)(6),E=Object(j.a)(C,2),P=E[0],z=E[1],T=Object(i.useState)(171),A=Object(j.a)(T,2),M=A[0],_=A[1],w=Object(i.useState)(148),G=Object(j.a)(w,2),I=G[0],R=G[1],X=Object(i.useState)(10),W=Object(j.a)(X,2),Y=W[0],L=W[1],F=Object(i.useState)(48),U=Object(j.a)(F,2),B=U[0],H=U[1],K=Object(i.useState)(60),q=Object(j.a)(K,2),V=q[0],J=q[1];return Object(i.useEffect)((function(){if(Object.keys(t("skill_tree_data")).length>1){var a,i=Object(l.a)(t("skill_tree_data"));try{for(i.s();!(a=i.n()).done;){var s=a.value;if(s.class_id===t("class",e.cl,"id")){var c=s.data.split(","),r=s.skill_data.split(";");n(c),o(r),m(s.line_color),S(s.line_width),D(c[0].length),z(c.length),_(s.gridsizex),R(s.gridsizey),L(s.gridpaddingx),H(s.gridpaddingy),J(s.halflineheight);break}}}catch(d){i.e(d)}finally{i.f()}}}),[e.cl,t]),Object(f.jsx)("div",{className:"skillTreeContainer customScrollbar",children:Object(f.jsxs)("div",{style:{position:"relative"},children:[Object(f.jsx)(v,{style:{position:"absolute"},strokeStyle:u,lineWidth:x,lineDash:[],gridDimensionsX:k,gridDimensionsY:P,gridSizeX:M,gridSizeY:I,gridPaddingX:Y,gridPaddingY:B,skillLines:c,halflineheight:V}),Object(f.jsx)("div",{className:"skillTreeGrid",children:Object(f.jsx)(Z,{skillPointData:e.skillPointData,setSkillPointData:e.setSkillPointData,page:e.page,points:e.points,cl:e.cl,setPoints:e.setPoints,GetData:e.GetData,skillTreeSkillData:b})})]})})}var ee=function(e){var t,a,c=Object(C.h)().BUILDID,n=Object(C.f)(),l=Object(C.g)(),r=e.GetData,d=e.LOGGEDINUSER,b=e.LOGGEDINHASH,o=e.BACKENDURL,O=e.APP_TITLE,u=Object(i.useState)(1e3),m=Object(j.a)(u,2),g=m[0],p=m[1],x=Object(i.useState)(1e3),v=Object(j.a)(x,2),S=v[0],N=v[1],k=Object(i.useState)(1e3),D=Object(j.a)(k,2),E=D[0],P=D[1],T=Object(i.useState)(1e3),A=Object(j.a)(T,2),M=A[0],w=A[1],I=Object(i.useState)(1e3),X=Object(j.a)(I,2),Y=X[0],F=X[1],B=Object(i.useState)("Player"),K=Object(j.a)(B,2),q=K[0],Q=K[1],Z=Object(i.useState)("Character"),ee=Object(j.a)(Z,2),te=ee[0],ae=ee[1],ie=Object(i.useState)("Ranger"),se=Object(j.a)(ie,2),ce=se[0],ne=se[1],le=Object(i.useState)("Force"),re=Object(j.a)(le,2),de=re[0],je=re[1],be=Object(i.useState)(20),oe=Object(j.a)(be,2),he=oe[0],Oe=oe[1],ue=Object(i.useState)(20),me=Object(j.a)(ue,2),ge=me[0],pe=me[1],xe=Object(i.useState)(1),fe=Object(j.a)(xe,2),ve=fe[0],Se=fe[1],Ne=Object(i.useState)(1),ye=Object(j.a)(Ne,2),ke=ye[0],De=ye[1],Ce=Object(i.useState)(1),Ee=Object(j.a)(Ce,2),Pe=Ee[0],ze=Ee[1],Te=Object(i.useState)(!1),Ae=Object(j.a)(Te,2),Me=Ae[0],_e=Ae[1],we=Object(i.useState)(!1),Ge=Object(j.a)(we,2),Ie=Ge[0],Re=Ge[1],Xe=Object(i.useState)(!1),We=Object(j.a)(Xe,2),Ye=We[0],Le=We[1],Fe=Object(i.useState)(1),Ue=Object(j.a)(Fe,2),Be=Ue[0],He=Ue[1],Ke=Object(i.useState)(!1),qe=Object(j.a)(Ke,2),Ve=qe[0],Je=qe[1],Qe=Object(i.useState)(!1),Ze=Object(j.a)(Qe,2),$e=Ze[0],et=Ze[1],tt=Object(i.useState)([]),at=Object(j.a)(tt,2),it=at[0],st=at[1],ct=Object(i.useState)([]),nt=Object(j.a)(ct,2),lt=nt[0],rt=nt[1],dt=Object(i.useState)([]),jt=Object(j.a)(dt,2),bt=jt[0],ot=jt[1],ht=Object(i.useState)([]),Ot=Object(j.a)(ht,2),ut=Ot[0],mt=Ot[1],gt=Object(i.useState)(1),pt=Object(j.a)(gt,2),xt=pt[0],ft=pt[1],vt=Object(i.useState)(0),St=Object(j.a)(vt,2),Nt=St[0],yt=St[1],kt=Object(i.useState)([]),Dt=Object(j.a)(kt,2),Ct=Dt[0],Et=Dt[1],Pt=Object(i.useState)([]),zt=Object(j.a)(Pt,2),Tt=zt[0],At=zt[1];function Mt(e){return void 0!==e&&void 0!==e.rarity?" r"+e.rarity:""}return Object(i.useEffect)((function(){e.bp>1e3?(p(3e3),N(3e3),P(3e3),w(3e3),F(3e3)):(p(1e3),N(1e3),P(1e3),w(1e3),F(1e3))}),[e.bp]),Object(i.useEffect)((function(){for(var e=Object.keys(r("class")),t=[],a=[],i=0;i0)||(t[1].name.toLowerCase()+" "+t[0].name.toLowerCase()).includes(e.toLowerCase())},sortOrderFunction:function(e,t,a){switch(e){case"Rarity":return a[1].rarity-t[1].rarity;case"Attack":return a[1].atk-t[1].atk;default:return 0}},displayFunction:function(e){var t;return Object(f.jsxs)("div",{className:"itemWrapper r"+e[1].rarity,onClick:function(){st(e),Je(!1)},children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z(null===(t=e[4])||void 0===t?void 0:t.icon)})}),Object(f.jsx)("div",{className:"itemNameWrapper rifle",children:J(e)}),Object(f.jsx)("div",{className:"itemRarityWrapper",children:"\xa0"}),Object(f.jsxs)("div",{className:"itemPropertiesWrapper",children:[Object(f.jsx)("span",{className:"atk",children:e[1].atk}),Object(f.jsx)(R,{id:"mouseover-tooltip"+e[0].id+"_"+e[1].id+"_"+e[2].id+"_"+e[3].id,tooltip:Object(f.jsx)(f.Fragment,{children:e[3].map((function(e,t){return Object(f.jsxs)(s.a.Fragment,{children:[0!==t&&Object(f.jsx)("br",{}),e.name,": ",e.description?e.description.split("\\n").map((function(e,t){return Object(f.jsxs)(s.a.Fragment,{children:[e,Object(f.jsx)("br",{})," "]},t)})):Object(f.jsx)(s.a.Fragment,{},t)]},t)}))}),children:Object(f.jsx)("span",{className:"pot",children:e[2].name})})]})]})}}),Object(f.jsx)(H,{title:"Armor Selection - Slot "+xt,modalOpen:$e,setModalOpen:et,GetData:e.GetData,pageNames:[],sortItems:["Standard Sort","Rarity","HP","PP","Melee Potency","Range Potency","Tech Potency"],filter:!0,dataFunction:function(){var t=e.GetData("armor");return"object"===typeof t&&null!==t?Object.keys(t).map((function(e){return t[e]})):[]},filterFunction:function(e,t){return t.slot===xt},searchFieldFunction:function(e,t){return!(e.length>0)||t.name.toLowerCase().includes(e.toLowerCase())},sortOrderFunction:function(e,t,a){switch(e){case"Rarity":return a.rarity-t.rarity;case"HP":return a.hp-t.hp;case"PP":return a.pp-t.pp;case"Melee Potency":return a.mel_dmg-t.mel_dmg;case"Range Potency":return a.rng_dmg-t.rng_dmg;case"Tech Potency":return a.tec_dmg-t.tec_dmg;default:return 0}},displayFunction:function(e){return Object(f.jsxs)("div",{className:"itemWrapper r"+e.rarity,onClick:function(){switch(xt){case 1:rt(e);break;case 2:ot(e);break;case 3:mt(e);break;default:rt(e)}et(!1)},children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z(null===e||void 0===e?void 0:e.icon)})}),Object(f.jsx)("div",{className:"itemNameWrapper rifle",children:e.name}),Object(f.jsx)("div",{className:"itemRarityWrapper",style:{gridArea:"rarity"},children:"\xa0"}),Object(f.jsx)("div",{className:"itemPropertiesWrapper",children:Object(f.jsx)("span",{className:"atk",children:e.def})})]})}}),Object(f.jsxs)(H,{title:"Food Menu",modalOpen:Me,setModalOpen:_e,GetData:e.GetData,children:[Object(f.jsxs)("div",{className:"itemWrapperActive r1",children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z("icons/food/aelio_meat.png")})}),Object(f.jsx)("div",{className:"itemNameWrapper meat",children:"XXXL Super Duper Extra Crispy Delicious Sweet Mouth-Watering Meat"}),Object(f.jsx)("div",{className:"itemRarityWrapper",children:"\xa0"}),Object(f.jsxs)("div",{className:"itemPropertiesWrapper",children:[Object(f.jsx)("span",{className:"atk",children:"9999"}),Object(f.jsx)("span",{className:"pot",children:"Indomitable Unit"})]}),Object(f.jsxs)("div",{className:"itemControlsWrapper",children:[Object(f.jsx)("span",{children:"-"}),Object(f.jsx)("span",{children:"0"}),Object(f.jsx)("span",{children:"+"})]})]}),Object(f.jsxs)("div",{className:"itemWrapper r2",children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z("icons/food/light_aelio_mushroom.png")})}),Object(f.jsx)("div",{className:"itemNameWrapper meat",children:"Potato 2"}),Object(f.jsx)("div",{className:"itemRarityWrapper",children:"\xa0"}),Object(f.jsxs)("div",{className:"itemPropertiesWrapper",children:[Object(f.jsx)("span",{className:"atk",children:"9999"}),Object(f.jsx)("span",{className:"pot",children:"Indomitable Unit"})]}),Object(f.jsxs)("div",{className:"itemControlsWrapper",children:[Object(f.jsx)("span",{children:"-"}),Object(f.jsx)("span",{children:"0"}),Object(f.jsx)("span",{children:"+"})]})]}),Object(f.jsxs)("div",{className:"itemWrapperActive r3",children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z("icons/food/robust_aelio_lobster.png")})}),Object(f.jsx)("div",{className:"itemNameWrapper meat",children:"Dog with Claws"}),Object(f.jsx)("div",{className:"itemRarityWrapper",children:"\xa0"}),Object(f.jsxs)("div",{className:"itemPropertiesWrapper",children:[Object(f.jsx)("span",{className:"atk",children:"9999"}),Object(f.jsx)("span",{className:"pot",children:"Indomitable Unit"})]}),Object(f.jsxs)("div",{className:"itemControlsWrapper",children:[Object(f.jsx)("span",{children:"-"}),Object(f.jsx)("span",{children:"0"}),Object(f.jsx)("span",{children:"+"})]})]}),Object(f.jsxs)("div",{className:"itemWrapperActive r4",children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z("icons/food/light_aelio_turban_shell.png")})}),Object(f.jsx)("div",{className:"itemNameWrapper meat",children:"If you put your ear to it you can hear the PSO2 lobby music"}),Object(f.jsx)("div",{className:"itemRarityWrapper",children:"\xa0"}),Object(f.jsxs)("div",{className:"itemPropertiesWrapper",children:[Object(f.jsx)("span",{className:"atk",children:"9999"}),Object(f.jsx)("span",{className:"pot",children:"Indomitable Unit"})]}),Object(f.jsxs)("div",{className:"itemControlsWrapper",children:[Object(f.jsx)("span",{children:"-"}),Object(f.jsx)("span",{children:"0"}),Object(f.jsx)("span",{children:"+"})]})]}),Object(f.jsxs)("div",{className:"itemWrapper r1",children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z("icons/food/aelio_meat.png")})}),Object(f.jsx)("div",{className:"itemNameWrapper meat",children:"XXXL Super Duper Extra Crispy Delicious Sweet Mouth-Watering Meat"}),Object(f.jsx)("div",{className:"itemRarityWrapper",children:"\xa0"}),Object(f.jsxs)("div",{className:"itemPropertiesWrapper",children:[Object(f.jsx)("span",{className:"atk",children:"9999"}),Object(f.jsx)("span",{className:"pot",children:"Indomitable Unit"})]}),Object(f.jsxs)("div",{className:"itemControlsWrapper",children:[Object(f.jsx)("span",{children:"-"}),Object(f.jsx)("span",{children:"0"}),Object(f.jsx)("span",{children:"+"})]})]}),Object(f.jsxs)("div",{className:"itemWrapper r2",children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z("icons/food/light_aelio_mushroom.png")})}),Object(f.jsx)("div",{className:"itemNameWrapper meat",children:"Potato 2"}),Object(f.jsx)("div",{className:"itemRarityWrapper",children:"\xa0"}),Object(f.jsxs)("div",{className:"itemPropertiesWrapper",children:[Object(f.jsx)("span",{className:"atk",children:"9999"}),Object(f.jsx)("span",{className:"pot",children:"Indomitable Unit"})]}),Object(f.jsxs)("div",{className:"itemControlsWrapper",children:[Object(f.jsx)("span",{children:"-"}),Object(f.jsx)("span",{children:"0"}),Object(f.jsx)("span",{children:"+"})]})]}),Object(f.jsxs)("div",{className:"itemWrapper r3",children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z("icons/food/robust_aelio_lobster.png")})}),Object(f.jsx)("div",{className:"itemNameWrapper meat",children:"Dog with Claws"}),Object(f.jsx)("div",{className:"itemRarityWrapper",children:"\xa0"}),Object(f.jsxs)("div",{className:"itemPropertiesWrapper",children:[Object(f.jsx)("span",{className:"atk",children:"9999"}),Object(f.jsx)("span",{className:"pot",children:"Indomitable Unit"})]}),Object(f.jsxs)("div",{className:"itemControlsWrapper",children:[Object(f.jsx)("span",{children:"-"}),Object(f.jsx)("span",{children:"0"}),Object(f.jsx)("span",{children:"+"})]})]}),Object(f.jsxs)("div",{className:"itemWrapper r4",children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z("icons/food/light_aelio_turban_shell.png")})}),Object(f.jsx)("div",{className:"itemNameWrapper meat",children:"If you put your ear to it you can hear the PSO2 lobby music"}),Object(f.jsx)("div",{className:"itemRarityWrapper",children:"\xa0"}),Object(f.jsxs)("div",{className:"itemPropertiesWrapper",children:[Object(f.jsx)("span",{className:"atk",children:"9999"}),Object(f.jsx)("span",{className:"pot",children:"Indomitable Unit"})]}),Object(f.jsxs)("div",{className:"itemControlsWrapper",children:[Object(f.jsx)("span",{children:"-"}),Object(f.jsx)("span",{children:"0"}),Object(f.jsx)("span",{children:"+"})]})]}),Object(f.jsxs)("div",{className:"itemWrapper r1",children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z("icons/food/aelio_meat.png")})}),Object(f.jsx)("div",{className:"itemNameWrapper meat",children:"XXXL Super Duper Extra Crispy Delicious Sweet Mouth-Watering Meat"}),Object(f.jsx)("div",{className:"itemRarityWrapper",children:"\xa0"}),Object(f.jsxs)("div",{className:"itemPropertiesWrapper",children:[Object(f.jsx)("span",{className:"atk",children:"9999"}),Object(f.jsx)("span",{className:"pot",children:"Indomitable Unit"})]}),Object(f.jsxs)("div",{className:"itemControlsWrapper",children:[Object(f.jsx)("span",{children:"-"}),Object(f.jsx)("span",{children:"0"}),Object(f.jsx)("span",{children:"+"})]})]}),Object(f.jsxs)("div",{className:"itemWrapper r2",children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z("icons/food/light_aelio_mushroom.png")})}),Object(f.jsx)("div",{className:"itemNameWrapper meat",children:"Potato 2"}),Object(f.jsx)("div",{className:"itemRarityWrapper",children:"\xa0"}),Object(f.jsxs)("div",{className:"itemPropertiesWrapper",children:[Object(f.jsx)("span",{className:"atk",children:"9999"}),Object(f.jsx)("span",{className:"pot",children:"Indomitable Unit"})]}),Object(f.jsxs)("div",{className:"itemControlsWrapper",children:[Object(f.jsx)("span",{children:"-"}),Object(f.jsx)("span",{children:"0"}),Object(f.jsx)("span",{children:"+"})]})]}),Object(f.jsxs)("div",{className:"itemWrapper r3",children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z("icons/food/robust_aelio_lobster.png")})}),Object(f.jsx)("div",{className:"itemNameWrapper meat",children:"Dog with Claws"}),Object(f.jsx)("div",{className:"itemRarityWrapper",children:"\xa0"}),Object(f.jsxs)("div",{className:"itemPropertiesWrapper",children:[Object(f.jsx)("span",{className:"atk",children:"9999"}),Object(f.jsx)("span",{className:"pot",children:"Indomitable Unit"})]}),Object(f.jsxs)("div",{className:"itemControlsWrapper",children:[Object(f.jsx)("span",{children:"-"}),Object(f.jsx)("span",{children:"0"}),Object(f.jsx)("span",{children:"+"})]})]}),Object(f.jsxs)("div",{className:"itemWrapper r4",children:[Object(f.jsx)("div",{className:"itemImgWrapper",children:Object(f.jsx)("img",{alt:"",src:z("icons/food/light_aelio_turban_shell.png")})}),Object(f.jsx)("div",{className:"itemNameWrapper meat",children:"If you put your ear to it you can hear the PSO2 lobby music"}),Object(f.jsx)("div",{className:"itemRarityWrapper",children:"\xa0"}),Object(f.jsxs)("div",{className:"itemPropertiesWrapper",children:[Object(f.jsx)("span",{className:"atk",children:"9999"}),Object(f.jsx)("span",{className:"pot",children:"Indomitable Unit"})]}),Object(f.jsxs)("div",{className:"itemControlsWrapper",children:[Object(f.jsx)("span",{children:"-"}),Object(f.jsx)("span",{children:"0"}),Object(f.jsx)("span",{children:"+"})]})]})]})]})},te=a(22),ae=a.n(te),ie=a(50),se=a(16),ce=a(120),ne=Object({NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}).REACT_APP_GITPOD_WORKSPACE_URL||Object({NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}).REACT_APP_BACKENDURL||"https://projectdivar.com:4504",le="NGS Planner";function re(e){return ne+(e.TESTMODE?"/test":"")}function de(e){return Object(f.jsx)(f.Fragment,{children:Object(f.jsxs)("div",{className:"box",children:[Object(f.jsx)("div",{className:"boxTitleBar",children:Object(f.jsx)("h1",{children:e.title})}),e.children]})})}function je(e){return Object(f.jsx)("span",{className:e.classes,children:e.children})}function be(e){var t=Object(i.useState)(e.value),a=Object(j.a)(t,2),s=a[0],c=a[1],n=Object(i.useState)(!1),l=Object(j.a)(n,2),r=l[0],d=l[1],b=Object(i.useState)(!1),o=Object(j.a)(b,2),h=o[0],O=o[1];function u(t){c(t.currentTarget.value),e.callback4&&e.callback4(t.currentTarget.value)}function m(t){e.callback?(O(!0),d(!1),e.callback(t.currentTarget.value).then((function(){d(!1)})).catch((function(){d(!0)})).then((function(){O(!1)}))):e.callback3&&e.callback3(t.currentTarget.value)}function g(t){e.callback2&&e.callback2(t,s)}return e.data?Object(f.jsxs)("select",{disabled:e.lockSubmission,className:r?"failedInput":h?"submitting":"",value:s,onKeyDown:function(e){g(e)},onChange:function(e){u(e)},onBlur:function(e){m(e)},children:[e.includeBlankValue&&Object(f.jsx)("option",{}),e.data.map((function(e){return Object(f.jsxs)("option",{value:e.id,children:[e.id," - ",e.name||e.username]},e.id)}))]}):Object(f.jsx)("input",{disabled:e.lockSubmission,className:r?"failedInput":h?"submitting":"",value:s,onKeyDown:function(e){g(e)},onChange:function(e){u(e)},onBlur:function(e){m(e)}})}function oe(e){var t={},a=e.TESTMODE;var c=Object(i.useState)([]),n=Object(j.a)(c,2),b=n[0],o=n[1],h=Object(i.useState)([]),m=Object(j.a)(h,2),g=m[0],p=m[1],x=Object(i.useState)(!1),v=Object(j.a)(x,2),S=v[0],N=v[1],y=Object(i.useReducer)((function(e,a){return"Clear"===a?t:(e[a.field]=a.value,e)}),t),k=Object(j.a)(y,2),D=k[0],C=k[1],E=Object(i.useState)(!1),P=Object(j.a)(E,2),z=P[0],T=P[1],A=Object(i.useState)([]),M=Object(j.a)(A,2),_=M[0],w=M[1],G=Object(i.useState)(!1),I=Object(j.a)(G,2),R=I[0],X=I[1],W=Object(i.useState)(!1),Y=Object(j.a)(W,2),L=Y[0],F=Y[1];return Object(i.useEffect)((function(){N(!0)}),[e.path,a]),Object(i.useEffect)((function(){var e,t=Object(l.a)(b);try{for(t.s();!(e=t.n()).done;){if("name"===e.value.name){X(!0);break}}}catch(a){t.e(a)}finally{t.f()}}),[b]),Object(i.useEffect)((function(){if(S){T(!0);var t={};se.get(e.BACKENDURL+e.path+"?pass="+e.password).then((function(a){var i=a.data.fields,s=a.data.rows;o(i.filter((function(e,t){return"id"!==e.name&&!(0===t&&"name"===e.name)})));var c=[];return i.filter((function(e){return"id"!==e.name&&e.name.includes("_id")})).forEach((function(a){c.push(se.get(e.BACKENDURL+"/"+a.name.replace("_id","")+"?pass="+e.password).then((function(e){t[a.name]=e.data.rows.sort((function(e,t){return t.id-e.id}))})))})),p(s),Promise.allSettled(c)})).then((function(){w(t),T(!1)})),N(!1)}}),[S,e.path,e.BACKENDURL,e.password]),Object(f.jsx)(f.Fragment,{children:z?Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""})]}):Object(f.jsxs)(f.Fragment,{children:[" ",R&&Object(f.jsxs)("caption",{children:[Object(f.jsx)("label",{className:"buttonLabel",htmlFor:"uploads",children:"Import CSV"}),Object(f.jsx)("input",{onChange:function(t){var a=new FileReader;a.onload=function(t){var a=[];ce(t.target.result,{columns:!0,skip_empty_lines:!0}).forEach((function(t){var i,s=Object(l.a)(b);try{for(s.s();!(i=s.n()).done;){var c=i.value;23!==c.dataTypeID&&701!==c.dataTypeID&&16!==c.dataTypeID||""!==t[c.name]||(t[c.name]=0)}}catch(n){s.e(n)}finally{s.f()}a.push(se.post(e.BACKENDURL+e.path,Object(r.a)(Object(r.a)({},t),{},{pass:e.password})))})),Promise.allSettled(a).then((function(){N(!0)}))},a.readAsText(t.target.files[0])},style:{opacity:0},id:"uploads",type:"file",accept:".txt,.csv"})]}),Object(f.jsx)("div",{children:Object(f.jsxs)("table",{children:[Object(f.jsx)("thead",{children:Object(f.jsxs)("tr",{children:[Object(f.jsx)("th",{className:"table-padding",children:Object(f.jsx)(O.a,{onClick:function(){!function(){if(!L){F(!0);var t,a=[],i=Object(l.a)(g);try{for(i.s();!(t=i.n()).done;){var s=t.value;document.getElementById("delete_"+s.id).checked&&a.push(se.delete(e.BACKENDURL+e.path,{data:{pass:e.password,id:s.id}}))}}catch(c){i.e(c)}finally{i.f()}Promise.allSettled(a).catch((function(e){alert(e.message)})).then((function(e){F(!1),N(!0)}))}}()},className:"trashButton"})}),b.map((function(e,t){return Object(f.jsx)(s.a.Fragment,{children:Object(f.jsx)("th",{scope:"col",className:"table-padding",children:e.name})},t)}))]})}),Object(f.jsxs)("tbody",{children:[Object(f.jsxs)("tr",{children:[Object(f.jsx)("td",{}),b.map((function(e,t){return Object(f.jsx)("td",{children:Object(f.jsx)(be,{includeBlankValue:!0,data:_[e.name],callback4:function(t){C({field:e.name,value:t})}})},t)})),Object(f.jsxs)("td",{children:[Object(f.jsx)("input",{style:{display:"none"}}),Object(f.jsx)(u.a,{onClick:function(){L||(F(!0),se.post(e.BACKENDURL+e.path,Object(r.a)(Object(r.a)({},D),{},{pass:e.password})).then((function(){C("Clear"),N(!0)})).catch((function(e){alert(JSON.stringify(e.response.data))})).then((function(){F(!1)})))},className:"submitbutton"})]})]}),g.map((function(t){return Object(f.jsxs)("tr",{children:[Object(f.jsx)("td",{children:Object(f.jsx)("input",{id:"delete_"+t.id,type:"checkbox"})}),b.map((function(a,i){return Object(f.jsx)("td",{className:"table-padding table",children:Object(f.jsx)(be,{lockSubmission:L,data:_[a.name],callback:function(i){return function(e,t,a,i){var s;return se.patch(t.BACKENDURL+t.path,(s={},Object(d.a)(s,a.name,"null"===e?null:e),Object(d.a)(s,"id",i.id),Object(d.a)(s,"pass",t.password),s))}(i,e,a,t)},callback2:function(e,t){if("Enter"!==e.key)return"Chill";e.currentTarget.blur()},value:String(t[a.name])})},t.id+"_"+i)}))]},t.id)}))]})]})})]})})}function he(e){var t=Object(i.useState)(!0),a=Object(j.a)(t,2),c=a[0],n=a[1],l=Object(i.useState)(Object(f.jsx)("span",{style:{color:"black"}})),r=Object(j.a)(l,2),d=r[0],b=r[1],o=Object(i.useState)([]),h=Object(j.a)(o,2),O=h[0],u=h[1],x=Object(i.useState)(!0),v=Object(j.a)(x,2),S=v[0],N=v[1];return Object(i.useEffect)((function(){S&&(se.get(e.BACKENDURL+"/databases?pass="+e.password).then((function(e){u(e.data)})).catch((function(e){console.log(e.message)})).then((function(){n(!1)})),N(!1))}),[S,e.BACKENDURL,e.password]),Object(f.jsxs)(f.Fragment,{children:[c?Object(f.jsx)("img",{src:"/spinner.gif",alt:""}):Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)("button",{className:"basichover",style:{backgroundColor:"navy"},onClick:function(){n(!0),b(Object(f.jsx)("span",{style:{color:"black"},children:"Uploading Test Database to Production..."})),se.post(e.BACKENDURL+"/databases/testtolive",{pass:e.password}).then((function(){b(Object(f.jsx)("span",{style:{color:"green"},children:"Success! Test Database is now live!"}))})).catch((function(e){b(Object(f.jsx)("span",{style:{color:"red"},children:e.message}))})).then((function(){n(!1)}))},children:"Apply TEST Database to LIVE Database"}),Object(f.jsx)("br",{}),Object(f.jsx)("br",{}),Object(f.jsx)("button",{className:"basichover",style:{backgroundColor:"maroon"},onClick:function(){n(!0),b(Object(f.jsx)("span",{style:{color:"black"},children:"Restoring Test Database using Live Database..."})),se.post(e.BACKENDURL+"/databases/livetotest",{pass:e.password}).then((function(){b(Object(f.jsx)("span",{style:{color:"green"},children:"Success! Live Database has been applied to the Test Database!"}))})).catch((function(e){b(Object(f.jsx)("span",{style:{color:"red"},children:e.message}))})).then((function(){n(!1)}))},children:"Reset TEST database using current LIVE Database"}),Object(f.jsx)("br",{}),Object(f.jsx)("br",{}),Object(f.jsx)("button",{className:"basichover",style:{backgroundColor:"darkgreen"},onClick:function(){n(!0),b(Object(f.jsx)("span",{style:{color:"black"},children:"Backing up the Live database..."})),se.post(e.BACKENDURL+"/databases/backup",{pass:e.password}).then((function(){b(Object(f.jsx)("span",{style:{color:"green"},children:"Success! Live Database has been saved!"}))})).catch((function(e){b(Object(f.jsx)("span",{style:{color:"red"},children:e.message}))})).then((function(){N(!0)}))},children:"Backup current LIVE Database"}),Object(f.jsx)("br",{}),Object(f.jsx)("br",{})]}),d,Object(f.jsx)("hr",{}),Object(f.jsx)("br",{}),Object(f.jsx)("br",{}),Object(f.jsx)("h2",{children:Object(f.jsx)("u",{children:"Current Databases"})}),Object(f.jsx)("br",{}),Object(f.jsx)("br",{}),Object(f.jsxs)("span",{style:{fontSize:"24px",top:"-16px",position:"relative",height:"64px",lineHeight:"64px",textAlign:"center"},children:[Object(f.jsx)(m.a,{className:"databaseIcon",style:{color:"green"}}),"Live Database"]}),"\xa0\xa0\xa0",Object(f.jsxs)("span",{style:{fontSize:"24px",top:"-16px",position:"relative",height:"64px",lineHeight:"64px",textAlign:"center"},children:[Object(f.jsx)(m.a,{className:"databaseIcon",style:{color:"red"}}),"Test Database"]}),Object(f.jsx)("br",{}),O.map((function(t,a){var i="";if("ngsplanner"!==t.datname&&"ngsplanner2"!==t.datname){var c=t.datname.replace("ngsplanner",""),l=new Date(c.slice(0,4),c.slice(4,6),c.slice(6,8),c.slice(8,10),c.slice(10,12),c.slice(12,14));return i=Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)(g.a,{className:"databaseIcon",style:{color:"blue"}}),"Backup from "+l]}),Object(f.jsxs)(s.a.Fragment,{children:[Object(f.jsxs)("span",{style:{fontSize:"24px",top:"-16px",position:"relative",height:"64px",lineHeight:"64px",textAlign:"center"},children:[i,Object(f.jsxs)("button",{style:{background:"blue"},onClick:function(){n(!0),se.post(e.BACKENDURL+"/databases/restorefrombackup",{database:t.datname,pass:e.password}).then((function(e){b(Object(f.jsx)("span",{style:{color:"green"},children:"Success! Database has been set to the state from "+l}))})).catch((function(e){b(Object(f.jsx)("span",{style:{color:"red"},children:e.message}))})).then((function(){n(!1)}))},children:[Object(f.jsx)(p.a,{})," Restore"]})]}),Object(f.jsx)("br",{})]},a)}return Object(f.jsx)(s.a.Fragment,{},a)}))]})}function Oe(e){var t=Object(i.useState)(!1),a=Object(j.a)(t,2),c=a[0],n=a[1],l=Object(i.useState)(""),r=Object(j.a)(l,2),d=r[0],b=r[1],O=[{page:"Class",url:"/admin/class",table:"/class"},{page:"Class Data",url:"/admin/classdata",table:"/class_level_data"},{page:"Class-Weapon Compatibility",url:"/admin/classweaponcompatibility",table:"/class_weapon_type_data"},{page:"Class Skills",url:"/admin/classskills",table:"/class_skill"},{page:"Class Skill Data",url:"/admin/classskilldata",table:"/class_skill_data"},{hr:!0},{page:"Weapons",url:"/admin/weapons",table:"/weapon"},{page:"Weapon Existence Data",url:"/admin/weaponexistencedata",table:"/weapon_existence_data"},{page:"Weapon Types",url:"/admin/weapontypes",table:"/weapon_type"},{page:"Class-Weapon Compatibility",url:"/admin/classweaponcompatibility",table:"/class_weapon_type_data",duplicate:!0},{page:"Photon Arts",url:"/admin/photonarts",table:"/photon_art"},{hr:!0},{page:"Armor",url:"/admin/armor",table:"/armor"},{page:"Potentials",url:"/admin/potentials",table:"/potential"},{page:"Potential Data",url:"/admin/potentialdata",table:"/potential_data"},{hr:!0},{page:"Builds",url:"/admin/builds",table:"/builds"},{hr:!0},{page:"Skills",url:"/admin/skills",table:"/skill"},{page:"Skill Types",url:"/admin/skilltypes",table:"/skill_type"},{page:"Skill Data",url:"/admin/skilldata",table:"/skill_data"},{page:Object(f.jsx)("span",{style:{color:"gold"},children:"Skill Tree Editor"}),url:"/admin/skilltreeeditor",render:Object(f.jsx)(k,{setUpdate:e.setUpdate,password:d,BACKENDURL:re(e),GetData:e.DATA})},{page:"Skill Tree Data",url:"/admin/skilltreedata",table:"/skill_tree_data"},{page:"Photon Arts",url:"/admin/photonarts",table:"/photon_art",duplicate:!0},{page:"Class Skills",url:"/admin/classskills",table:"/class_skill",duplicate:!0},{page:"Class Skill Data",url:"/admin/classskilldata",table:"/class_skill_data",duplicate:!0},{hr:!0},{page:"Augment Types",url:"/admin/augmenttypes",table:"/augment_type"},{page:"Augments",url:"/admin/augments",table:"/augment"},{page:"Elements",url:"/admin/elements",table:"/element"},{hr:!0},{page:"Enemy Data",url:"/admin/enemydata",table:"/enemy_data"},{hr:!0},{page:"Food",url:"/admin/food",table:"/food"},{page:"Food Multipliers",url:"/admin/foodmultipliers",table:"/food_mult"},{hr:!0},{page:"Roles",url:"/admin/roles",table:"/roles"},{page:"Users",url:"/admin/users",table:"/users"},{hr:!0},{page:"Misc. Site Data",url:"/admin/sitedata",table:"/site_data"},{page:"Database Audit",url:"/admin/database_audit",table:"/database_audit"}];return Object(f.jsx)("div",{className:"adminMain",children:c?Object(f.jsxs)(f.Fragment,{children:[Object(f.jsxs)("div",{className:"box boxAdminNav",children:[Object(f.jsx)("div",{className:"boxTitleBar",children:Object(f.jsx)("h1",{children:"Navigation"})}),Object(f.jsxs)("p",{children:["Testing Mode ",Object(f.jsxs)("span",{children:[Object(f.jsx)(o.a,{checked:e.TESTMODE,onChange:function(t){e.setTESTMODE(t.target.checked)}})," ",e.TESTMODE?Object(f.jsx)("b",{children:"ON"}):Object(f.jsx)("b",{children:"OFF"})]})]}),Object(f.jsx)("div",{className:"adminNavContainer customScrollbar",children:Object(f.jsxs)(je,{classes:"adminNav",children:[O.map((function(e,t){return e.hr?Object(f.jsx)("hr",{},t):Object(f.jsxs)(s.a.Fragment,{children:[Object(f.jsx)(P.a,{to:""+e.url,children:e.page}),Object(f.jsx)("br",{})]},t)})),Object(f.jsx)(P.a,{to:"/admin/database_manager",children:"Database Manager"}),Object(f.jsx)("br",{})]})})]}),O.map((function(t,a){var i;return void 0===t.duplicate&&void 0===t.hr&&Object(f.jsx)(C.a,{path:""+t.url,children:Object(f.jsxs)("div",{className:"box boxAdminContent",children:[Object(f.jsx)("div",{className:"boxTitleBar",children:Object(f.jsx)("h1",{children:t.page})}),Object(f.jsxs)("div",{className:"adminContainer adminScrollbar",children:[Object(f.jsx)(h.a,{children:Object(f.jsx)("title",{children:"NGS Planner - Admin Panel: "+t.page})}),null!==(i=t.render)&&void 0!==i?i:Object(f.jsx)(oe,{TESTMODE:e.TESTMODE,password:d,BACKENDURL:re(e),path:t.table})]})]})},a)})),Object(f.jsx)(C.a,{path:"/admin/database_manager",children:Object(f.jsxs)("div",{className:"box boxAdminContent",children:[Object(f.jsx)("div",{className:"boxTitleBar",children:Object(f.jsx)("h1",{children:"Database Editor"})}),Object(f.jsx)("div",{className:"adminContainer",children:Object(f.jsx)(he,{password:d,BACKENDURL:re(e)})})]})})]}):Object(f.jsx)("div",{className:"modalOverlay",children:Object(f.jsx)("div",{className:"modal",children:Object(f.jsxs)("div",{className:"box boxAdmin",children:[Object(f.jsx)("div",{className:"boxTitleBar",children:Object(f.jsx)("h1",{children:"Admin"})}),Object(f.jsx)("p",{}),Object(f.jsx)("input",{type:"password",value:d,onChange:function(e){b(e.currentTarget.value)},onKeyDown:function(t){"Enter"===t.key&&se.post(re(e)+"/passwordcheck",{pass:d}).then((function(e){e.data.verified&&n(e.data.verified)})).catch((function(e){n(!1),b("")}))}})]})})})})}function ue(e){var t=Object(i.useState)(e.value),a=Object(j.a)(t,2),s=a[0],c=a[1];return Object(i.useEffect)((function(){c(e.value)}),[e.value]),Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)("input",{value:s,onChange:function(t){c(t.currentTarget.value),e.callback(t.currentTarget.value)}})," (",s,")",Object(f.jsx)("br",{})]})}function me(e){var t=Object(i.useState)({}),a=Object(j.a)(t,2),s=a[0],c=a[1];Object(i.useEffect)((function(){se.get(e.BACKENDURL+"/augment").then((function(e){var t={};e.data.rows.forEach((function(e){t[e.name]=e})),c(t)}))}),[e.BACKENDURL]);var n={weapon:{augments:["1","2"]},armor1:{augments:["2"]},armor2:{augments:[]},armor3:{augments:[]}};Object(i.useEffect)((function(){if(Object.keys(s).length>0){for(var e=[{field:"variance",variable:0},{field:"mel_dmg",variable:0}],t=0,a=[n.weapon,n.armor1,n.armor2,n.armor3];t20)throw new Error("Username must be less than 21 characters in length.");if(d.length<6)throw new Error("Password must contain at least 6 characters.");if(d!==O)throw new Error("Password fields must match.");if(!p.includes("@"))throw new Error("Invalid E-mail.")}catch(a){var t;return P(null!==(t=null===a||void 0===a?void 0:a.message)&&void 0!==t?t:a),void M(!1)}se.post(re(e)+"/register",{username:s,password:ae()(d),email:p}).then((function(t){t.data.verified?(e.setLOGGEDINUSER(s),e.setLOGGEDINHASH(ae()(d)),c(""),b(""),y(!1)):P("Could not authenticate!")})).catch((function(e){var t;P(null!==(t=null===e||void 0===e?void 0:e.message)&&void 0!==t?t:e)})).then((function(){M(!1)}))},children:"Login"})]})})})}var ve=function(){var e=Object(i.useState)("Dudley"),t=Object(j.a)(e,1)[0],a=Object(i.useState)("Fatimah"),s=Object(j.a)(a,1)[0],c=Object(i.useState)("Ranger"),n=Object(j.a)(c,1)[0],l=Object(i.useState)("Force"),r=Object(j.a)(l,1)[0],d=Object(i.useState)(20),b=Object(j.a)(d,1)[0],o=Object(i.useState)(15),O=Object(j.a)(o,1)[0],u=Object(i.useState)(1330),m=Object(j.a)(u,1)[0],g=Object(i.useState)(388),p=Object(j.a)(g,1)[0],x=Object(i.useState)(154),v=Object(j.a)(x,1)[0],S=Object(i.useState)(282),N=Object(j.a)(S,1)[0],y=Object(i.useState)(650),k=Object(j.a)(y,1)[0],D=Object(i.useState)(282),P=Object(j.a)(D,2),z=P[0],T=P[1];Object(i.useEffect)((function(){T(Number(N)+Number(k))}),[N,k]);var A=Object(i.useState)(932),_=Object(j.a)(A,1)[0],w=Object(i.useState)(.317),G=Object(j.a)(w,1)[0],I=Object(i.useState)(.241),R=Object(j.a)(I,1)[0],X=Object(i.useState)(.241),W=Object(j.a)(X,1)[0],Y=Object(i.useState)(.18),L=Object(j.a)(Y,1)[0],F=Object(i.useState)(0),U=Object(j.a)(F,1)[0],B=Object(i.useState)(0),H=Object(j.a)(B,1)[0],K=Object(i.useState)(0),q=Object(j.a)(K,1)[0],V=Object(i.useState)(0),J=Object(j.a)(V,1)[0],Q=Object(i.useState)(0),Z=Object(j.a)(Q,1)[0],$=Object(i.useState)(0),te=Object(j.a)($,1)[0],ae=Object(i.useState)(0),ce=Object(j.a)(ae,1)[0],de=Object(i.useState)(!1),je=Object(j.a)(de,2),be=je[0],oe=je[1],he=Object(i.useState)(void 0),ue=Object(j.a)(he,2),ge=ue[0],pe=ue[1],ve=Object(i.useState)({GetData:function(){}}),Se=Object(j.a)(ve,2),Ne=Se[0],ye=Se[1],ke=Object(i.useState)(!1),De=Object(j.a)(ke,2),Ce=De[0],Ee=De[1],Pe=Object(i.useState)(ie.get("username")),ze=Object(j.a)(Pe,2),Te=ze[0],Ae=ze[1],Me=Object(i.useState)(ie.get("password")),_e=Object(j.a)(Me,2),we=_e[0],Ge=_e[1],Ie="/test/:BUILDID",Re="/test";function Xe(e,t,a,i){void 0===t&&(t=""),void 0===a&&(a="");var s=i?Ne:ge;return s&&void 0!==s?void 0!==s[e]?void 0!==s[e][t]?void 0!==s[e][t][a]?s[e][t][a]:s[e][t]:s[e]:s:"no data"}return Object(i.useEffect)((function(){Ce&&(Ee(!1),se.get(re({TESTMODE:be})+"/data").then((function(e){pe(e.data)})),se.get(re({TESTMODE:be})+"/dataid").then((function(e){ye(e.data)})))}),[Ce,be]),Object(i.useEffect)((function(){Ae(ie.get("username")),Ge(ie.get("password")),se.get(re({TESTMODE:be})+"/data").then((function(e){pe(e.data)})),se.get(re({TESTMODE:be})+"/dataid").then((function(e){ye(e.data)}))}),[be]),Object(f.jsx)(f.Fragment,{children:Object(f.jsx)(E.a,{children:Object(f.jsxs)(C.c,{children:[Object(f.jsxs)(C.a,{path:"/admin",children:[Object(f.jsx)(h.a,{children:Object(f.jsx)("title",{children:"NGS Planner - Admin Panel"})}),Object(f.jsx)(Oe,{setUpdate:Ee,setTESTMODE:oe,BACKENDURL:ne,TESTMODE:be,DATA:Xe})]}),Object(f.jsxs)(C.a,{path:Ie,children:[Object(f.jsx)(M,{LOGGEDINUSER:Te,LOGGEDINHASH:we,BACKENDURL:re(ne)}),Object(f.jsx)(ee,{APP_TITLE:le,path:Ie,author:t,buildName:s,className:n,secondaryClassName:r,classLv:b,secondaryClassLv:O,bp:m,hp:p,pp:v,def:_,weaponUp1:G,weaponUp2:R,weaponUp3:W,damageResist:L,burnResist:U,shockResist:H,panicResist:q,stunResist:J,freezeResist:Z,blindResist:te,poisonResist:ce,statDisplayAtk:z,GetData:Xe,LOGGEDINUSER:Te,LOGGEDINHASH:we,BACKENDURL:re(ne)})]}),Object(f.jsxs)(C.a,{path:Re,children:[Object(f.jsx)(M,{LOGGEDINUSER:Te,LOGGEDINHASH:we,BACKENDURL:re(ne)}),Object(f.jsx)(ee,{APP_TITLE:le,path:Re,author:t,buildName:s,className:n,secondaryClassName:r,classLv:b,secondaryClassLv:O,bp:m,hp:p,pp:v,def:_,weaponUp1:G,weaponUp2:R,weaponUp3:W,damageResist:L,burnResist:U,shockResist:H,panicResist:q,stunResist:J,freezeResist:Z,blindResist:te,poisonResist:ce,statDisplayAtk:z,GetData:Xe,LOGGEDINUSER:Te,LOGGEDINHASH:we,BACKENDURL:re(ne)})]}),Object(f.jsxs)(C.a,{path:"/login",children:[Object(f.jsx)(h.a,{children:Object(f.jsx)("title",{children:"NGS Planner - Login"})}),Object(f.jsx)(M,{LOGGEDINUSER:Te,LOGGEDINHASH:we,BACKENDURL:re(ne)}),Object(f.jsx)(xe,{BACKENDURL:ne,TESTMODE:be,LOGGEDINUSER:Te,LOGGEDINHASH:we,setLOGGEDINHASH:Ge,setLOGGEDINUSER:Ae})]}),Object(f.jsxs)(C.a,{path:"/register",children:[Object(f.jsx)(h.a,{children:Object(f.jsx)("title",{children:"NGS Planner - Register"})}),Object(f.jsx)(M,{LOGGEDINUSER:Te,LOGGEDINHASH:we,BACKENDURL:re(ne)}),Object(f.jsx)(fe,{BACKENDURL:ne,TESTMODE:be,LOGGEDINUSER:Te,LOGGEDINHASH:we,setLOGGEDINHASH:Ge,setLOGGEDINUSER:Ae})]}),Object(f.jsx)(C.a,{path:"/formula",children:Object(f.jsx)(me,{})}),Object(f.jsxs)(C.a,{path:"/",children:[Object(f.jsx)(h.a,{children:Object(f.jsx)("title",{children:le})}),Object(f.jsxs)("div",{className:"modalOverlaySplash",children:[Object(f.jsx)("div",{className:"modal",children:Object(f.jsxs)("div",{className:"box boxMisc",children:[Object(f.jsx)("div",{className:"boxTitleBar",children:Object(f.jsx)("h1",{children:Xe("site_data","h1","data")})}),Object(f.jsx)("h2",{children:Xe("site_data","h2","data")}),Object(f.jsxs)("p",{children:[Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Xe("site_data","UNDER_CONSTRUCTION_TEXT","data")]}),Object(f.jsx)("br",{style:{clear:"both"}})]})}),Object(f.jsxs)("footer",{children:[Object(f.jsx)("a",{href:"https://github.com/sigonasr2/ngsplanner/",children:Object(f.jsx)("span",{className:"github",children:"\xa0"})}),Object(f.jsx)("a",{href:"https://twitter.com/ngsplanner",children:Object(f.jsx)("span",{className:"twitter",children:"@NGSPlanner"})})]})]})]})]})})})},Se=function(e){e&&e instanceof Function&&a.e(3).then(a.bind(null,162)).then((function(t){var a=t.getCLS,i=t.getFID,s=t.getFCP,c=t.getLCP,n=t.getTTFB;a(e),i(e),s(e),c(e),n(e)}))};n.a.render(Object(f.jsx)(s.a.StrictMode,{children:Object(f.jsx)(ve,{})}),document.getElementById("root")),Se()},80:function(e,t,a){},81:function(e,t,a){},82:function(e,t,a){}},[[153,1,2]]]);
+//# sourceMappingURL=main.e9249814.chunk.js.map
\ No newline at end of file
diff --git a/static/js/main.e9249814.chunk.js.map b/static/js/main.e9249814.chunk.js.map
new file mode 100644
index 0000000..789e9ab
--- /dev/null
+++ b/static/js/main.e9249814.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["skilltree/skillTree.js","skilltree/skillTreeSelector.js","skilltree/skillTreeEditor.js","DEFAULTS.js","TestHeader.js","components/ExpandTooltip.js","TestPanel.js","App.js","reportWebVitals.js","index.js"],"names":["SkillTree","p","canvasRef","useRef","useState","width","setWidth","height","setHeight","useEffect","gridSizeX","gridDimensionsX","gridPaddingX","gridSizeY","Math","ceil","gridDimensionsY","halflineheight","gridPaddingY","skillLines","context","current","getContext","clearRect","fillStyle","strokeStyle","lineWidth","setLineDash","lineDash","y","line","x","split","char","padX","padY","beginPath","moveTo","lineTo","stroke","fillRect","ref","style","className","children","SkillTreeSelector","GetData","skillList","setSkillList","cl","onChange","f","callback","currentTarget","value","Number","position","left","ADJUSTMENT","top","defaultValue","map","ch","skillCallback","skill","Object","keys","filter","class_id","id","name","SkillTreeEditor","useMemo","firstLoad","setFirstLoad","classList","setClassList","skillTreeData","setSkillTreeData","setCl","lineColor","setLineColor","setLineWidth","dimensionX","setDimensionX","dimensionY","setDimensionY","setGridSizeX","setGridSizeY","setGridPaddingX","setGridPaddingY","renderedInputs","setRenderedInputs","skillLinesTemp","setSkillLinesTemp","setSkillLines","skillData","setSkillData","message","setMessage","loading","setLoading","setHalfLineHeight","GetSkills","useCallback","filtered","length","undefined","found","data","skill_data","line_color","line_width","gridsizex","gridsizey","gridpaddingx","gridpaddingy","skillTreeString","push","repeat","controls","string","stringLine","newSkillData","s","join","newSkill","src","alt","htmlFor","isNaN","c","onClick","axios","post","BACKENDURL","pass","password","slice","str","then","color","setUpdate","catch","err","control","i","Fragment","type","DisplayIcon","icon","includes","process","require","cookies","TestHeader","LOGGEDINUSER","LOGGEDINHASH","avatar","setAvatar","username","setUsername","recoveryhash","get","verified","href","ExpandTooltip","data-tip","data-tip-disable","tooltip","data-for","overridePosition","currentEvent","node","d","document","documentElement","min","clientWidth","clientHeight","max","EditBox","timer1","setTimeout","getElementById","focus","select","clearTimeout","edit","onKeyDown","e","key","setEdit","maxLength","maxlength","onBlur","setName","originalName","EditBoxInput","setData","prefix","PageControlButton","onPageChange","pageName","setCurrentPage","page","currentPage","pageDisplay","PageControl","pages","pageNames","Class","CLASSES","class_obj","EditableClass","setClassNameSetter","editClass","setClassSelectWindowOpen","PopupWindow","ariaHideApp","isOpen","modalOpen","onRequestClose","setModalOpen","shouldFocusAfterRender","shouldCloseOnOverlayClick","shouldCloseOnEsc","overlayClassName","title","showCloseButton","setPage","SelectorWindow","onModalOpen","itemList","setItemList","tabPage","setTabPage","sortItems","sortSelector","setSortSelector","setFilter","dataFunction","item","placeholder","filterFunction","searchFieldFunction","sort","a","b","sortOrderFunction","displayFunction","LeftButton","RightButton","ClassSelectorWindow","setTitle","setEditClass","pageSetter","dat1","class","subClass","setClassName","setSubClassName","GetSpecialWeaponName","special_name","fontStyle","SkillBox","gridArea","String","fromCharCode","charCodeAt","skillPointData","boxId","maxPoints","temp","points","tempData","setPoints","setSkillPointData","SkillTreeBoxes","GetHighestLevel","skillInfo","highestLevel","class_skill_id","level","skillTreeSkillData","splitter","numb","SkillTreeContainer","setSkillTreeSkillData","skillTreeLineColor","setSkillTreeLineColor","skillTreeLineWidth","setSkillTreeLineWidth","skillTreeDimensionX","setSkillTreeDimensionX","skillTreeDimensionY","setSkillTreeDimensionY","skillTreeGridSizeX","setSkillTreeGridSizeX","skillTreeGridSizeY","setSkillTreeGridSizeY","skillTreeGridPaddingX","setSkillTreeGridPaddingX","skillTreeGridPaddingY","setSkillTreeGridPaddingY","skillTree","TestPanel","BUILDID","useParams","history","useHistory","location","useLocation","APP_TITLE","bpGraphMax","setbpGraphMax","hpGraphMax","sethpGraphMax","ppGraphMax","setppGraphMax","atkGraphMax","setatkGraphMax","defGraphMax","setdefGraphMax","author","setAuthor","buildName","setbuildName","subclassName","setLevel","secondaryLevel","setsecondaryLevel","effectPage","setEffectPage","weaponPage","setWeaponPage","statPage","setStatPage","foodMenuWindowOpen","setFoodMenuWindowOpen","classSelectWindowOpen","classSkillTreeWindowOpen","setClassSkillTreeWindowOpen","treePage","setTreePage","weaponSelectWindowOpen","setWeaponSelectWindowOpen","armorSelectWindowOpen","setArmorSelectWindowOpen","selectedWeapon","setSelectedWeapon","selectedArmor1","setSelectedArmor1","selectedArmor2","setSelectedArmor2","selectedArmor3","setSelectedArmor3","armorSlotSelection","setArmorSlotSelection","classNameSetter","rarityCheck","v","rarity","bp","pointsArr","pointsDataArr","creator","build_name","class1","class2","dat","JSON","parse","weapon_type","weaponType","weapon","weaponBaseName","potential","potential_id","potential_all","potential_tooltip","pot","existence_data","Array","isArray","weapon_existence_data","weapon_type_id","weapon_id","armor1Name","armor2Name","armor3Name","console","log","Helmet","textAlign","border","hp","pp","statDisplayAtk","def","weaponUp1","toFixed","weaponUp3","burnResist","shockResist","panicResist","stunResist","damageResist","background","weaponUp2","freezeResist","blindResist","poisonResist","saveObj","stringify","match","matchPath","pathname","path","exact","strict","replace","SaveData","searchText","toLowerCase","itemA","itemB","atk","description","it","ii","armor","slot","mel_dmg","rng_dmg","tec_dmg","REACT_APP_GITPOD_WORKSPACE_URL","REACT_APP_BACKENDURL","GetBackendURL","TESTMODE","Box","Table","classes","InputBox","setValue","failed","setFailed","sending","setSending","changeFunc","callback4","blurFunc","callback3","keydownFunc","callback2","disabled","lockSubmission","includeBlankValue","TableEditor","initialVals","fields","setFields","update","useReducer","state","field","submitVals","setSubmitVal","dependencies","setDependencies","importAllowed","setImportAllowed","setLockSubmission","dependency_map","cols","rows","col","promise_list","forEach","Promise","allSettled","reader","FileReader","onload","ev","promises","target","result","columns","skip_empty_lines","entry","dataTypeID","readAsText","files","opacity","accept","checked","delete","alert","SubmitDeletion","scope","display","response","patch","patchValue","blur","DatabaseEditor","databases","setDatabases","backgroundColor","fontSize","lineHeight","db","label","datname","dateStr","date","Date","database","AdminPanel","setVerified","setPassword","navigationData","url","table","hr","duplicate","render","DATA","setTESTMODE","nav","to","EditStatBox","DamageCalculator","augmentData","setAugmentData","character","augments","armor1","armor2","armor3","searchFields","variable","equip","variance","setAugDmgVariance","rawDmg","setRawDmg","weaponTotalAtk","setWeaponTotalAtk","weaponBaseAtk","setWeaponBaseAtk","weaponEnhanceLv","setweaponEnhanceLv","dmgVariance","setDmgVariance","weaponDmgVariance","setWeaponDmgVariance","augDmgVariance","baseAtk","setBaseAtk","enemyDef","setEnemyDef","multipliers","setMultipliers","atkmult","setAtkMult","partmult","setPartMult","elementalWeaknessMult","setElementalWeaknessMult","mainClassWeaponBoost","setMainClassWeaponBoost","classSkillMult","setClassSkillMult","equipMult","setEquipMult","augmentEquipMult","setAugmentEquipMult","potencyFloorEquipMult","setPotencyFloorEquipMult","elementalWeaponEquipMult","setElementalWeaponEquipMult","critMult","setCritMult","appropriateDistance","setAppropriateDistance","foodBoost","setFoodBoost","fieldEffects","setFieldEffects","statusAilments","setStatusAilments","enemyCorrectionMult","setEnemyCorrectionMult","highLevelEnemy","setHighLevelEnemy","val","FormField","for","VerifyLogin","LoginForm","rememberMe","setRememberMe","error","setError","SubmitLogin","md5","setLOGGEDINUSER","setLOGGEDINHASH","set","responseGoogle","profileObj","googleId","imageUrl","email","tokenId","userID","remove","marginTop","theme","clientId","buttonText","onSuccess","onFailure","cookiePolicy","RegisterForm","password2","setPassword2","setEmail","Error","App","secondaryClassName","classLv","secondaryClassLv","setstatDisplayAtk","setDATA","DATAID","setDATAID","PANELPATHWBUILD","PANELPATH","row","clear","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","StrictMode"],"mappings":"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","file":"static/js/main.e9249814.chunk.js","sourcesContent":["import { useRef,useEffect,useState } from 'react';\n\nfunction SkillTree(p) {\n const canvasRef = useRef(null)\n const [width,setWidth] = useState(0)\n const [height,setHeight] = useState(0)\n \n useEffect(() => {\n setWidth(p.gridSizeX*p.gridDimensionsX+p.gridPaddingX*(p.gridDimensionsX-1))\n setHeight(p.gridSizeY*Math.ceil(p.gridDimensionsY/2)+p.halflineheight*Math.ceil((p.gridDimensionsY-1)/2)+p.gridPaddingY*(p.gridDimensionsY-1))\n }, [p.halflineheight,p.skillLines,p.gridSizeX,p.gridSizeY,p.gridPaddingX,p.gridPaddingY,p.gridDimensionsX,p.gridDimensionsY])\n\n useEffect(()=>{\n const canvas = canvasRef.current\n const context = canvas.getContext('2d')\n context.clearRect(0,0,width,height)\n context.fillStyle = 'rgba(100,100,100,0.5)'\n context.strokeStyle=p.strokeStyle\n context.lineWidth=p.lineWidth //https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineWidth\n context.setLineDash(p.lineDash) //https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash\n var y=0\n for (var line of p.skillLines) {\n var x=0\n for (var char of line.split('')) {\n var padX = x!==0?p.gridPaddingX*x:0\n var padY = y!==0?p.gridPaddingY*y:0\n switch (char) {\n case \"─\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();break;\n case \"│\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();break;\n case \"└\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();break;\n case \"┌\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();break;\n case \"┘\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();break;\n case \"┐\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();break;\n case \"├\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();break;\n case \"┤\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();break;\n case \"┬\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();break;\n case \"┴\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();break;\n case \"┼\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.moveTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();break;\n case \"□\":context.clearRect(x*p.gridSizeX+(padX), Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY), p.gridSizeX, y%2===1?p.halflineheight:p.gridSizeY);context.fillRect(x*p.gridSizeX+(padX), Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY), p.gridSizeX, y%2===1?p.halflineheight:p.gridSizeY);break;\n default:\n }\n x++\n }\n y++\n }\n },[width,height,p.gridSizeX,p.gridSizeY,p.gridPaddingX,p.gridPaddingY,p.lineDash,p.lineWidth,p.skillLines,p.strokeStyle,p.halflineheight])\n \n return \n}\n\nexport {SkillTree}","import { useEffect, useState } from 'react'\n\nfunction SkillTreeSelector(p) {\n\n const { GetData } = p\n\n const [skillList,setSkillList] = useState([])\n\n useEffect(()=>{\n setSkillList(GetData(\"class_skill\"))\n },[p.cl,GetData])\n\n return <>\n \n {p.defaultValue==='□'&&}\n >\n\n} \n\nexport {SkillTreeSelector}","import { SkillTree } from \"./skillTree\";\nimport React, { useEffect,useState,useMemo,useCallback } from \"react\";\nimport { SkillTreeSelector } from \"./skillTreeSelector\";\nimport axios from \"axios\";\n\nfunction SkillTreeEditor(p) {\n const { GetData } = p\n\n const ADJUSTMENT = useMemo(()=>[-32,32],[])\n\n const [firstLoad,setFirstLoad] = useState(true)\n\n const [classList,setClassList] = useState({})\n const [skillTreeData,setSkillTreeData] = useState({})\n const [cl,setCl] = useState(-1)\n const [lineColor,setLineColor] = useState(\"#000000\")\n const [lineWidth,setLineWidth] = useState(3)\n const [dimensionX,setDimensionX] = useState(6)\n const [dimensionY,setDimensionY] = useState(6)\n const [gridSizeX,setGridSizeX] = useState(80)\n const [gridSizeY,setGridSizeY] = useState(60)\n const [gridPaddingX,setGridPaddingX] = useState(10)\n const [gridPaddingY,setGridPaddingY] = useState(10)\n const [renderedInputs,setRenderedInputs] = useState([])\n const [skillLinesTemp,setSkillLinesTemp] = useState([])\n const [skillLines,setSkillLines] = useState([])\n const [skillData,setSkillData] = useState([])\n const [message,setMessage] = useState(\"\")\n const [loading,setLoading] = useState(false)\n const [halflineheight,setHalfLineHeight] = useState(60)\n\n const GetSkills = useCallback((x,y)=>{\n var filtered = skillData.filter((skill)=>Number(skill.split(\",\")[0])===Number(x)&&Number(skill.split(\",\")[1])===Number(y))\n if (filtered.length>0) {\n return filtered[0]\n } else {\n return \"\"\n }\n },[skillData])\n\n function SaveSkillTrees() {\n axios.post(p.BACKENDURL+\"/saveskilltree\",{\n pass:p.password,\n data:skillLines.slice(0,dimensionY).map((str)=>str.slice(0,dimensionX)).join(','),\n skill_data:skillData.join(';'),\n line_color:lineColor,\n line_width:lineWidth,\n gridsizex:gridSizeX,\n gridsizey:gridSizeY,\n gridpaddingx:gridPaddingX,\n gridpaddingy:gridPaddingY,\n halflineheight:halflineheight,\n class_id:cl\n })\n .then((data)=>{\n if (data.data===\"OK!\") {\n setMessage({\"Successfully saved skill tree for \"+p.GetData(\"class\",undefined,undefined,true)[cl].name+\"!\"})\n p.setUpdate(true)\n }\n })\n .catch((err)=>{\n setMessage({err.message})\n })\n .then(()=>{\n setLoading(false)\n })\n }\n\n useEffect(()=>{\n setClassList(GetData(\"class\",undefined,undefined,true))\n setSkillTreeData(GetData(\"skill_tree_data\",undefined,undefined,true))\n },[GetData])\n\n useEffect(()=>{\n var keys = Object.keys(skillTreeData)\n var found = false\n for (var id of keys) {\n //console.log(cl+\"/\"+skillTreeData[id].class_id)\n if (Number(skillTreeData[id].class_id)===Number(cl)) {\n var data = skillTreeData[id].data?.split(',')\n var skill = skillTreeData[id].skill_data?.split(';')\n setSkillLinesTemp(data)\n setSkillData(skill)\n setDimensionX(data[0].length)\n setDimensionY(data.length)\n setLineColor(skillTreeData[id].line_color)\n setLineWidth(skillTreeData[id].line_width)\n setGridSizeX(skillTreeData[id].gridsizex)\n setGridSizeY(skillTreeData[id].gridsizey)\n setGridPaddingX(skillTreeData[id].gridpaddingx)\n setGridPaddingY(skillTreeData[id].gridpaddingy)\n setHalfLineHeight(skillTreeData[id].halflineheight)\n found=true\n }\n }\n if (!found) {\n setSkillLinesTemp([])\n setSkillData([])\n setDimensionX(6)\n setDimensionY(6)\n }\n },[skillTreeData,cl])\n\n useEffect(()=>{\n if (firstLoad) {\n setCl(Number(Object.keys(classList)[0]))\n setFirstLoad(false)\n }\n },[classList,firstLoad])\n\n useEffect(()=>{\n var skillTreeString = [...skillLinesTemp]\n\n while (skillTreeString.length{\n var controls = []\n for (var y=0;y{\n var string = [...skillLines]\n var stringLine = string[y].split('')\n var newSkillData = [...skillData]\n stringLine[x] = char\n if (char!==\"□\") {\n for (var s in newSkillData) {\n var split = newSkillData[s].split(',')\n if (Number(split[0])===Number(x)&&Number(split[1])===Number(y)) {\n newSkillData[s]=\"\"\n setSkillData(newSkillData)\n break;\n }\n }\n }\n string[y] = stringLine.join('')\n setSkillLinesTemp(string)\n }\n } skill={GetSkills(x,y)} skillCallback={(x,y,skill)=>{\n var newSkillData = [...skillData]\n var found=false\n var newSkill = x+\",\"+y+\",\"+skill\n for (var s in newSkillData) {\n var split = newSkillData[s].split(',')\n if (Number(split[0])===Number(x)&&Number(split[1])===Number(y)) {\n newSkillData[s]=newSkill\n found=true\n break;\n }\n }\n if (!found) {\n newSkillData.push(newSkill)\n }\n setSkillData(newSkillData)\n }} ADJUSTMENT={ADJUSTMENT} x={x} y={y} gridSizeX={gridSizeX} gridSizeY={gridSizeY} padX={padX} padY={padY} halflineheight={halflineheight}/>)\n }\n }\n }\n setRenderedInputs(controls)\n },[skillLines,gridSizeX,gridSizeY,gridPaddingX,gridPaddingY,cl,dimensionY,dimensionX,skillData,halflineheight,GetData,ADJUSTMENT,GetSkills])\n\n return <>\n {loading?
:<>\n {message}
\n \n
\n
\n {p.GetData(\"class\",undefined,undefined,true)[cl]?.name&&}\n \n \n {renderedInputs.map((control,i)=>{control})}\n
\n
\n
\n {setLineColor(f.currentTarget.value)}}/>
\n {setLineWidth(f.currentTarget.value)}}/>
\n {setDimensionX(f.currentTarget.value)}}/>
\n {setDimensionY(f.currentTarget.value)}}/>
\n {setHalfLineHeight(f.currentTarget.value)}}/>
\n {setGridSizeX(f.currentTarget.value)}}/>
\n {setGridSizeY(f.currentTarget.value)}}/>
\n {setGridPaddingX(f.currentTarget.value)}}/>
\n {setGridPaddingY(f.currentTarget.value)}}/>
\n\n >}\n >\n}\n\nexport {SkillTreeEditor}","const NICONICONII = process.env.PUBLIC_URL+\"/icons/nicodotpng.png.png\"\n\nfunction DisplayIcon(icon) {\n //console.log(icon)\n return icon&&icon.length>0?icon.includes(\"http\")?icon:process.env.PUBLIC_URL+icon:NICONICONII\n}\n\nexport {NICONICONII,DisplayIcon};","import React, { useEffect,useState } from 'react';\nimport { DisplayIcon } from './DEFAULTS';\n\n\nconst axios = require('axios');\nconst cookies = require('cookie-handler');\n\nfunction TestHeader(p) {\n\n const {BACKENDURL,LOGGEDINUSER,LOGGEDINHASH} = p;\n\n const [avatar,setAvatar] = useState(undefined);\n const [username,setUsername] = useState(undefined);\n\n useEffect(()=>{\n axios.post(BACKENDURL+\"/validUser\",{\n username:LOGGEDINUSER,\n password:LOGGEDINHASH,\n recoveryhash:cookies.get(\"userID\")\n })\n .then((data)=>{\n if (data.data.verified) {\n setAvatar(data.data.avatar)\n setUsername(LOGGEDINUSER)\n }\n })}\n ,[BACKENDURL,LOGGEDINUSER,LOGGEDINHASH])\n\n return (\n \n )\n}\n\nexport default TestHeader;","import ReactTooltip from 'react-tooltip' //https://wwayne.github.io/react-tooltip/\n\nfunction ExpandTooltip(p) {\n\n\treturn <>{p.children} {\n const d = document.documentElement;\n left = Math.min(d.clientWidth - node.clientWidth, left);\n top = Math.min(d.clientHeight - node.clientHeight, top);\n left = Math.max(0, left);\n top = Math.max(0, top);\n return { top, left }\n} }>{p.tooltip}>\n}\n\nexport {ExpandTooltip}","import {PencilFill} from 'react-bootstrap-icons'\nimport React, { useEffect,useState } from 'react';\nimport Modal from 'react-modal'\nimport { DisplayIcon } from './DEFAULTS';\nimport { ExpandTooltip } from './components/ExpandTooltip';\nimport { SkillTree } from './skilltree/skillTree';\nimport axios from 'axios';\nimport Helmet from 'react-helmet'\n\nimport { useLocation,useHistory,useParams,matchPath } from 'react-router';\n\n//Helper variables for Weapon selector with structure: [weapon_type,weapon,potential,potential_tooltip,weapon_existence_data]\nconst WEAPON_WEAPONTYPE=0;const WEAPON_WEAPON=1;const WEAPON_POTENTIAL=2;const WEAPON_POTENTIAL_TOOLTIP=3;const WEAPON_EXISTENCE_DATA=4;\n\nfunction EditBox(p) {\n\tuseEffect(()=>{\n\t\tvar timer1 = setTimeout(()=>{\n document.getElementById(\"editBoxInput\").focus()\n document.getElementById(\"editBoxInput\").select()\n },100)\n\t\treturn () => {\n\t\t\tclearTimeout(timer1);\n\t\t};\n\t},[p.edit])\n\treturn {\n\t\tif (e.key===\"Enter\") {p.setEdit(false)}\n\t\telse if (e.key===\"Escape\") {p.setEdit(false)}\n\t}}\tmaxLength={p.maxlength?p.maxlength:20} onBlur={()=>{p.setEdit(false)}} value={p.value} onChange={(f)=>{f.currentTarget.value.length>0?p.setName(f.currentTarget.value):p.setName(p.originalName)}}>\n\t\n}\n\nfunction EditBoxInput(p) {\n\tconst [edit,setEdit] = useState(false)\n\t\n\tuseEffect(()=>{\n\t\tif (p.callback) {\n\t\t\tp.callback()\n\t\t}\n\t},[edit,p])\n\t\n\treturn <>\n\t\t{setEdit(true)}}>\n\t\t\t{edit?\n\t\t\t\n\t\t\t:<>{p.prefix}{p.data}>}\n\t\t
\n\t>\n}\n\nfunction PageControlButton(p) {\n\treturn {if (p.onPageChange) {p.onPageChange(p.pageName)} p.setCurrentPage(p.page)}} className={(p.currentPage===p.page)?\"selected\":\"unselected\"}>{p.pageDisplay?p.pageDisplay[p.page-1]:p.pageName?p.pageName:p.page}\n}\n\nfunction PageControl(p) {\n\tvar pages = []\n\tfor (var i=0;i)\n\t}\n if (p.children!==undefined) {\n pages.push({p.children})\n }\n //console.log(JSON.stringify(p.children))\n\treturn pages.length>0&&\n\t\t\t{pages.map((page,i)=>{return {page}})}\n\t\t
\n}\n\nfunction Class(p) {\n const CLASSES = p.GetData(\"class\")\n\tconst class_obj = CLASSES[p.name]\n\treturn CLASSES!==\"no data\"?class_obj?<>
{class_obj.name}>:<>>:<>->\n}\n\nfunction EditableClass(p){\n\treturn <>{p.setClassNameSetter(p.editClass);p.setClassSelectWindowOpen(true)}}>\n\t
\n\t>\n}\n\nfunction PopupWindow(p) {\n\n\treturn {p.setModalOpen(false)}} shouldFocusAfterRender={true} shouldCloseOnOverlayClick={true} shouldCloseOnEsc={true} className=\"modal\" overlayClassName=\"modalOverlay\">\n \n
\n
{p.title}
\n {p.showCloseButton&&
{p.setModalOpen(false)}}>
}\n
\n
\n \n {p.children}\n \n\t\n}\n\nfunction SelectorWindow(p) {\n\n const { onModalOpen } = p\n\n const [itemList,setItemList] = useState([])\n\n const [tabPage,setTabPage] = useState(1)\n const [sortSelector,setSortSelector] = useState(p.sortItems?p.sortItems[0]:\"\")\n const [filter,setFilter] = useState(\"\")\n \n useEffect(()=>{\n if (p.dataFunction) {\n setItemList(p.dataFunction())\n }\n },[p])\n\n useEffect(()=>{\n if (onModalOpen) {\n onModalOpen(setTabPage)\n }\n },[onModalOpen])\n \n return \n {(p.sortItems||p.filter)&&\n
\n {p.sortItems&&}\n
\n
\n {p.filter?{setFilter(f.currentTarget.value)}} />:<>>}\n
\n
\n }\n \n {p.filter?itemList.filter((item)=>p.filterFunction(tabPage,item)).filter((item)=>p.searchFieldFunction(filter,item)).sort((a,b)=>p.sortOrderFunction(sortSelector,a,b)).map((item,i)=>{p.displayFunction(item)}):itemList.map((item,i)=>{p.displayFunction(item)})}\n {p.children}\n
\n \n}\n\nfunction LeftButton(p){\n\treturn \n \n}\n\nfunction RightButton(p){\n\treturn \n \n}\nfunction ClassSelectorWindow(p) {\n const [title,setTitle] = useState(\"Select Main Class\")\n useEffect(()=>{\n setTitle((p.editClass)?\"Select Sub Class\":\"Select Main Class\")\n },[p.editClass])\n return {\n if (page===\"Main Class\") {\n p.setEditClass(0)\n } else {\n p.setEditClass(1)\n }\n }}\n onModalOpen={(pageSetter)=>{\n pageSetter((p.editClass)?2:1)\n }}\n dataFunction={() => {\n var dat1 = p.GetData(\"class\")\n return Object.keys(dat1)\n }\n }\n displayFunction={(key) => {\n return {if (p.editClass===0){p.setClassName(key);p.setSubClassName(p.subClass===key?p.class:p.subClass)}else{p.setSubClassName(key);p.setClassName(p.class===key?p.subClass:p.class)}; p.setModalOpen(false) }}>
{p.GetData(\"class\", key, \"name\")}\n }}\n/>\n}\n\nfunction GetSpecialWeaponName(item) {\n return item[WEAPON_EXISTENCE_DATA]!==undefined?(item[WEAPON_EXISTENCE_DATA].special_name?.length>0)?item[WEAPON_EXISTENCE_DATA].special_name:(item[WEAPON_WEAPON].name+\" \"+item[WEAPON_WEAPONTYPE].name):<>Select Weapon>\n}\n\nfunction ConvertCoordinate(x,y) {\n return (String.fromCharCode(Number(x)+'a'.charCodeAt(0)))+(y/2+1);\n}\n\nfunction SkillBox(p) {\n return
{(p.skillPointData[p.page-1][p.boxId]?p.skillPointData[p.page-1][p.boxId]:0)+\"/\"+p.maxPoints}{typeof p.GetData(\"class_skill\",p.skill[2],\"name\",true)===\"string\"&&p.GetData(\"class_skill\",p.skill[2],\"name\",true)}\n
{\n var temp=[...p.points]\n var tempData=[...p.skillPointData]\n if (!tempData[p.page-1][p.boxId]) {\n tempData[p.page-1][p.boxId]=0\n }\n if (tempData[p.page-1][p.boxId]>0) {\n temp[p.page-1]-=1\n tempData[p.page-1][p.boxId]-=1\n p.setPoints(temp)\n p.setSkillPointData(tempData)\n }}}/>\n {\n var temp=[...p.points]\n var tempData=[...p.skillPointData]\n if (!tempData[p.page-1][p.boxId]) {\n tempData[p.page-1][p.boxId]=0\n }\n if (tempData[p.page-1][p.boxId] \n}\n\nfunction SkillTreeBoxes(p) {\n\n function GetHighestLevel(skill) {\n var skillInfo = Object.keys(p.GetData(\"class_skill_data\"))\n var highestLevel = 0\n for (var i=0;ihighestLevel) {\n highestLevel=skillData.level\n }\n }\n return highestLevel\n }\n\n function isLocked(skill) {\n return false\n }\n\n return <>\n {p.skillTreeSkillData&&p.skillTreeSkillData.map((skill,i)=>{\n var splitter = skill.split(\",\")\n return splitter[0]!==\"\"&&splitter[1]!==\"\"&&splitter[2]!==\"\"&&0?\"skillActive\":\"\"} boxId={splitter[0]+\"_\"+splitter[1]} skillPointData={p.skillPointData} setSkillPointData={p.setSkillPointData} page={p.page} cl={p.cl} maxPoints={GetHighestLevel(splitter[2])} points={p.points} setPoints={p.setPoints} GetData={p.GetData} skill={splitter.map((numb)=>Number(numb))}/>\n })}\n >\n}\n\nfunction SkillTreeContainer(p){\n\n const { GetData } = p\n\n const [skillTreeData,setSkillTreeData] = useState([])\n const [skillTreeSkillData,setSkillTreeSkillData] = useState([])\n const [skillTreeLineColor,setSkillTreeLineColor] = useState(\"\")\n const [skillTreeLineWidth,setSkillTreeLineWidth] = useState(3)\n const [skillTreeDimensionX,setSkillTreeDimensionX] = useState(6)\n const [skillTreeDimensionY,setSkillTreeDimensionY] = useState(6)\n const [skillTreeGridSizeX,setSkillTreeGridSizeX] = useState(171)\n const [skillTreeGridSizeY,setSkillTreeGridSizeY] = useState(148)\n const [skillTreeGridPaddingX,setSkillTreeGridPaddingX] = useState(10)\n const [skillTreeGridPaddingY,setSkillTreeGridPaddingY] = useState(48)\n const [halflineheight,setHalfLineHeight] = useState(60)\n\n useEffect(()=>{\n if (Object.keys(GetData(\"skill_tree_data\")).length>1) {\n for (var skillTree of GetData(\"skill_tree_data\")) {\n if (skillTree.class_id===GetData(\"class\",p.cl,'id')) {\n var data = skillTree.data.split(\",\")\n var skillData = skillTree.skill_data.split(\";\")\n setSkillTreeData(data)\n setSkillTreeSkillData(skillData)\n setSkillTreeLineColor(skillTree.line_color)\n setSkillTreeLineWidth(skillTree.line_width)\n setSkillTreeDimensionX(data[0].length)\n setSkillTreeDimensionY(data.length)\n setSkillTreeGridSizeX(skillTree.gridsizex)\n setSkillTreeGridSizeY(skillTree.gridsizey)\n setSkillTreeGridPaddingX(skillTree.gridpaddingx)\n setSkillTreeGridPaddingY(skillTree.gridpaddingy)\n setHalfLineHeight(skillTree.halflineheight)\n break;\n }\n }\n }\n },[p.cl,GetData])\n\n return \n}\n\nfunction TestPanel(p) {\n\n\nlet { BUILDID } = useParams()\nlet history = useHistory();\nlet location = useLocation();\n\nconst { GetData,LOGGEDINUSER,LOGGEDINHASH,BACKENDURL,APP_TITLE } = p\n\nconst [bpGraphMax,setbpGraphMax] = useState(1000)\nconst [hpGraphMax,sethpGraphMax] = useState(1000)\nconst [ppGraphMax,setppGraphMax] = useState(1000)\nconst [atkGraphMax,setatkGraphMax] = useState(1000)\nconst [defGraphMax,setdefGraphMax] = useState(1000)\n\nconst [author,setAuthor] = useState(\"Player\")\nconst [buildName,setbuildName] = useState(\"Character\")\nconst [className,setClassName] = useState(\"Ranger\")\nconst [subclassName,setSubClassName] = useState(\"Force\")\nconst [level,setLevel] = useState(20)\nconst [secondaryLevel,setsecondaryLevel] = useState(20)\n\nconst [effectPage,setEffectPage] = useState(1)\nconst [weaponPage,setWeaponPage] = useState(1)\nconst [statPage,setStatPage] = useState(1)\n\nconst [foodMenuWindowOpen,setFoodMenuWindowOpen] = useState(false)\nconst [classSelectWindowOpen,setClassSelectWindowOpen] = useState(false)\nconst [classSkillTreeWindowOpen,setClassSkillTreeWindowOpen] = useState(false)\nconst [treePage,setTreePage] = useState(1)\nconst [weaponSelectWindowOpen,setWeaponSelectWindowOpen] = useState(false)\nconst [armorSelectWindowOpen,setArmorSelectWindowOpen] = useState(false)\n\nconst [selectedWeapon,setSelectedWeapon] = useState([])\nconst [selectedArmor1,setSelectedArmor1] = useState([])\nconst [selectedArmor2,setSelectedArmor2] = useState([])\nconst [selectedArmor3,setSelectedArmor3] = useState([])\nconst [armorSlotSelection,setArmorSlotSelection] = useState(1)\n\nconst [classNameSetter,setClassNameSetter] = useState(0)\n\nconst [points,setPoints] = useState([])\nconst [skillPointData,setSkillPointData] = useState([])\n\nfunction SaveData() {\n var saveObj = {\n level:level,\n secondaryLevel:secondaryLevel,\n weaponBaseName:selectedWeapon[WEAPON_WEAPON]?.name,\n weaponType:selectedWeapon[WEAPON_WEAPONTYPE]?.name,\n armor1Name:selectedArmor1?.name,\n armor2Name:selectedArmor2?.name,\n armor3Name:selectedArmor3?.name,\n points:points,\n skillPointData:skillPointData,\n }\n axios.post(BACKENDURL+\"/submitBuild\",{\n id:BUILDID,\n username:LOGGEDINUSER,\n pass:LOGGEDINHASH,\n creator:author,\n build_name:buildName,\n class1:className,\n class2:subclassName,\n data:JSON.stringify(saveObj),})\n .then((data)=>{\n const match=matchPath(location.pathname,{\n path:p.path,\n exact:true,\n strict:false\n })\n history.push(match.path.replace(\"/:BUILDID\",\"\")+\"/\"+data.data.id)\n })\n}\n\nfunction rarityCheck(v) {\n return v!==undefined?v.rarity!==undefined?\" r\"+v.rarity:\"\":\"\"\n}\n\nuseEffect(()=>{\n if (p.bp>1000) {\n setbpGraphMax(3000)\n sethpGraphMax(3000)\n setppGraphMax(3000)\n setatkGraphMax(3000)\n setdefGraphMax(3000)\n } else {\n setbpGraphMax(1000)\n sethpGraphMax(1000)\n setppGraphMax(1000)\n setatkGraphMax(1000)\n setdefGraphMax(1000)\n }\n},[p.bp]) \n\nuseEffect(()=>{\n var keys = Object.keys(GetData(\"class\"))\n var pointsArr = []\n var pointsDataArr = []\n for (var i=0;i{\n if (BUILDID) {\n axios.get(BACKENDURL+\"/getBuild?id=\"+BUILDID)\n .then((data)=>{\n setAuthor(data.data.creator)\n setbuildName(data.data.build_name)\n setClassName(GetData(\"class\",data.data.class1,\"name\",true))\n setSubClassName(GetData(\"class\",data.data.class2,\"name\",true))\n var dat = JSON.parse(data.data.data)\n setLevel(dat.level)\n setsecondaryLevel(dat.secondaryLevel)\n setPoints(dat.points)\n setSkillPointData(dat.skillPointData)\n var dat1=p.GetData(\"weapon_existence_data\")\n var weapon_type=GetData(\"weapon_type\",dat.weaponType)\n var weapon=GetData(\"weapon\",dat.weaponBaseName)\n var potential=GetData(\"potential\",weapon.potential_id,undefined,true)\n var potential_all=GetData(\"potential_data\")\n var potential_tooltip=[]\n for (var pot in potential_all) {\n if (pot.includes(potential.name)) {\n potential_tooltip.push(p.GetData(\"potential_data\",pot))\n }\n }\n var existence_data = Array.isArray(dat1)?dat1.filter((weapon_existence_data)=>weapon_existence_data.weapon_type_id===weapon_type.id&&weapon_existence_data.weapon_id===weapon.id)[0]:undefined\n //console.log(JSON.stringify([weapon_type,weapon,potential,potential_tooltip,existence_data]))\n setSelectedWeapon([weapon_type,weapon,potential,potential_tooltip,existence_data])\n setSelectedArmor1(GetData(\"armor\",dat.armor1Name))\n setSelectedArmor2(GetData(\"armor\",dat.armor2Name))\n setSelectedArmor3(GetData(\"armor\",dat.armor3Name))\n })\n .catch((err)=>{\n console.log(err.message)\n })\n }\n},[BUILDID,GetData,BACKENDURL,p])\n\n//console.log(p.GetData(\"class\",p.className,\"icon\"))\n\n return (<>\n \n \n {\"Test - \"+APP_TITLE+(BUILDID?\" Build #\"+BUILDID:\"\")}\n \n\n
\n\n\n\n
\n
\n
Basic Information
\n
\n
Author
\n
Build Name
\n
{setClassSelectWindowOpen(true)}}>Class
\n
{setClassSkillTreeWindowOpen(true)}}>Sub-Class
\n\n
\n
\n\n
\n
\n
\n
\n
\n
\n
Battle Power
\n
HP
\n
PP
\n
Attack
\n
Defense
\n
Weapon Up
\n
Ailment Resist.
\n
Damage Resist.
\n\n
{p.bp}
\n
{p.hp}
\n
{p.pp}
\n
{p.statDisplayAtk}
\n
{p.def}
\n
![\"\"]({process.env.PUBLIC_URL+\"/icons/mel.png\"})
+{(p.weaponUp1*100).toFixed(1)}%
![\"\"]({process.env.PUBLIC_URL+\"/icons/tec.png\"})
+{(p.weaponUp3*100).toFixed(1)}%
\n
![\"\"]({process.env.PUBLIC_URL+\"/icons/status/burn.png\"})
{(p.burnResist*100).toFixed(1)}%
![\"\"]({process.env.PUBLIC_URL+\"/icons/status/shock.png\"})
{(p.shockResist*100).toFixed(1)}%
![\"\"]({process.env.PUBLIC_URL+\"/icons/status/panic.png\"})
{(p.panicResist*100).toFixed(1)}%
![\"\"]({process.env.PUBLIC_URL+\"/icons/status/stun.png\"})
{(p.stunResist*100).toFixed(1)}%
\n
{(p.damageResist*100).toFixed(1)}%
\n\n
\n
\n
\n
\n
\n
![\"\"]({process.env.PUBLIC_URL+\"/icons/rng.png\"})
+{(p.weaponUp2*100).toFixed(1)}%
\n
![\"\"]({process.env.PUBLIC_URL+\"/icons/status/freeze.png\"})
{(p.freezeResist*100).toFixed(1)}%
![\"\"]({process.env.PUBLIC_URL+\"/icons/status/blind.png\"})
{(p.blindResist*100).toFixed(1)}%
![\"\"]({process.env.PUBLIC_URL+\"/icons/status/poison.png\"})
{(p.poisonResist*100).toFixed(1)}%
\n\n
\n \n \n\n\n
\n
\n
Equip
\n
\n
Weapons
1![\"\"]({DisplayIcon(selectedWeapon[WEAPON_EXISTENCE_DATA]?.icon)})
\n
{setArmorSlotSelection(1);setArmorSelectWindowOpen(true)}} className={\"equipPaletteSlot\"+rarityCheck(selectedArmor1)}>
Armor 1
\n
{setArmorSlotSelection(2);setArmorSelectWindowOpen(true)}} className={\"equipPaletteSlot\"+rarityCheck(selectedArmor2)}>
Armor 2
\n
{setArmorSlotSelection(3);setArmorSelectWindowOpen(true)}} className={\"equipPaletteSlot\"+rarityCheck(selectedArmor3)}>
Armor 3
\n
\n
\n\n\n\n\n
\n
\n
\n
\n
Equipped Weapon
\n
\n
{GetSpecialWeaponName(selectedWeapon)}
\n
+40
\n
\n
Edit Details\n {weaponPage === 1 ?\n\n<>\n
\n
{setWeaponSelectWindowOpen(true)}}>\n
\n
![\"\"]({DisplayIcon(selectedWeapon[WEAPON_EXISTENCE_DATA]?.icon)})
\n
\n
\n\n
Rarity
\n
\n\n
Attack
\n
282
\n\n
Element
\n
-
\n\n
Equip Conditons
\n
Lv.15 (Current Lv.20)
\n\n
\n
\n
\n
\n
Soulspring Unit Lv.3
\n
Fixa Attack Lv.3
\n
\n
Augment\n
\n\n
Precision III
\n
\n
\n
\n\n
\n
\n
\n\n\n>\n:weaponPage === 2 ?\n
\n
Enhancement Lv.
\n
Damage Adj.
\n
Weapon Up
\n
Ailment Resist.
\n
Available Classes
\n
Multi-weapon
\n\n
40
\n
75.0% ~ 100%
\n
Weapon Up
\n
Ailment Resist.
\n
Available Classes
\n
\n\n
\n :weaponPage === 3 ?\n\n
\n
Ability Details
\n
Stat Adjustment
\n
\n
\n - Dynamo Unit Lv.3
\n - Fixa Attack Lv.3
\n - test
\n - test
\n - test
\n - test
\n - test
\n - test
\n - test
\n - test
\n
\n
\n
\n
\n\n \n HP | \n +99 | \n
\n \n PP | \n +9 | \n
\n\n
\n
\n
\n :\n <>hi2>\n }\n\n\n
\n\n\n\n\n
\n
\n
To Do List
\n
\n - UI
\n - Grids. Grids everywhere.
\n - Finish \"Item Details\" for Weapons/Armor
\n - Class Skill Window Mobile View
\n - Enemy Stats Box
\n - Food/Buffs Menu
\n - Get all the fckn icons
\n - Functionality
\n - Food/Buffs Menu
\n - Augments
\n - Save/Load Build
\n - fOrMuLaS
\n - Data
\n - Skill Trees
\n - Everything tbh
\n
\n
\n\n\n\n\n\n\n\n\n
\n
\n\n\n
\n
\n
\n
Damage Stats
\n
\n \n \n {statPage===1?<>\n \n Critical Hit Rate | \n 5% | \n
\n \n Critical Multiplier | \n 120% | \n
\n \n Midrange | \n 126 | \n
\n \n Critical | \n 152 | \n
\n \n Effective | \n 127 | \n
\n >:<>\n \n Critical Hit Rate | \n - | \n
\n \n Critical Multiplier | \n - | \n
\n \n Midrange | \n - | \n
\n \n Critical | \n - | \n
\n \n Effective | \n - | \n
\n >\n }\n \n
\n \n
\n
\n\n\n { setClassSkillTreeWindowOpen(false) }} shouldFocusAfterRender={true} shouldCloseOnOverlayClick={true} shouldCloseOnEsc={true} className=\"modal\" overlayClassName=\"modalOverlay\">\n \n
\n
Class Skill Tree
\n
{ setClassSkillTreeWindowOpen(false) }}>
\n
\n
cl)} pageDisplay={Object.keys(p.GetData(\"class\")).map((cl)=><>
{cl}>)} currentPage={treePage} setCurrentPage={setTreePage} />\n \n \n
Your Skill Points{20-points[treePage-1]}
\n
SP{points[treePage-1]}
\n
\n ConfirmCancel
\n \n \n\n{\n var dat1=p.GetData(\"weapon_existence_data\")\n return Array.isArray(dat1)?dat1.map((weapon_existence_data)=>{\n var weapon_type=p.GetData(\"weapon_type\",weapon_existence_data.weapon_type_id,undefined,true)\n var weapon=p.GetData(\"weapon\",weapon_existence_data.weapon_id,undefined,true)\n var potential=p.GetData(\"potential\",weapon.potential_id,undefined,true)\n var potential_all=p.GetData(\"potential_data\")\n var potential_tooltip=[]\n for (var pot in potential_all) {\n if (pot.includes(potential.name)) {\n potential_tooltip.push(p.GetData(\"potential_data\",pot))\n }\n }\n return [weapon_type,weapon,potential,potential_tooltip,weapon_existence_data]\n }):[]\n }}\n filterFunction={(page,item)=>{\n switch (page) {\n case 2:return item[WEAPON_WEAPONTYPE].name===\"Assault Rifle\"\n case 3:return item[WEAPON_WEAPONTYPE].name===\"Launcher\"\n case 4:return item[WEAPON_WEAPONTYPE].name===\"Rod\"\n case 5:return item[WEAPON_WEAPONTYPE].name===\"Talis\"\n default:return true\n }\n }}\n searchFieldFunction={(searchText,item)=>searchText.length>0?(item[WEAPON_WEAPON].name.toLowerCase()+\" \"+item[WEAPON_WEAPONTYPE].name.toLowerCase()).includes(searchText.toLowerCase()):true}\n sortOrderFunction={(sort,itemA,itemB)=>{\n switch (sort) {\n case \"Rarity\":return itemB[1].rarity-itemA[1].rarity\n case \"Attack\":return itemB[1].atk-itemA[1].atk\n default:return 0\n } \n }}\n displayFunction={(item)=>{\n return{setSelectedWeapon(item);setWeaponSelectWindowOpen(false)}}>
{GetSpecialWeaponName(item)}
{item[WEAPON_WEAPON].atk}\n \n {item[WEAPON_POTENTIAL_TOOLTIP].map((pot,i)=>{(i!==0)&&
}{pot.name}: {pot.description?pot.description.split(\"\\\\n\").map((it,ii)=>{it}
):})}>}>\n\n {item[WEAPON_POTENTIAL].name}\n
}}\n />\n \n{\n var dat1=p.GetData(\"armor\")\n return typeof dat1===\"object\"&&dat1!==null?Object.keys(dat1).map((armor)=>{\n return dat1[armor]\n }):[]\n }}\n filterFunction={(page,item)=>item.slot===armorSlotSelection}\n searchFieldFunction={(searchText,item)=>searchText.length>0?item.name.toLowerCase().includes(searchText.toLowerCase()):true}\n sortOrderFunction={(sort,itemA,itemB)=>{\n switch (sort) {\n case \"Rarity\":return itemB.rarity-itemA.rarity\n case \"HP\":return itemB.hp-itemA.hp\n case \"PP\":return itemB.pp-itemA.pp\n case \"Melee Potency\":return itemB.mel_dmg-itemA.mel_dmg\n case \"Range Potency\":return itemB.rng_dmg-itemA.rng_dmg\n case \"Tech Potency\":return itemB.tec_dmg-itemA.tec_dmg\n default:return 0\n } \n }}\n displayFunction={(item)=>{\n return {\n switch(armorSlotSelection) {\n case 1:setSelectedArmor1(item);break;\n case 2:setSelectedArmor2(item);break;\n case 3:setSelectedArmor3(item);break;\n default:setSelectedArmor1(item)\n }\n setArmorSelectWindowOpen(false)}}>\n
\n
{item.name}
\n
\n
{item.def}
\n
\n }}\n />\n\n\n\nXXXL Super Duper Extra Crispy Delicious Sweet Mouth-Watering Meat
9999Indomitable Unit
-0+
\nPotato 2
9999Indomitable Unit
-0+
\nDog with Claws
9999Indomitable Unit
-0+
\nIf you put your ear to it you can hear the PSO2 lobby music
9999Indomitable Unit
-0+
\nXXXL Super Duper Extra Crispy Delicious Sweet Mouth-Watering Meat
9999Indomitable Unit
-0+
\nPotato 2
9999Indomitable Unit
-0+
\nDog with Claws
9999Indomitable Unit
-0+
\nIf you put your ear to it you can hear the PSO2 lobby music
9999Indomitable Unit
-0+
\nXXXL Super Duper Extra Crispy Delicious Sweet Mouth-Watering Meat
9999Indomitable Unit
-0+
\nPotato 2
9999Indomitable Unit
-0+
\nDog with Claws
9999Indomitable Unit
-0+
\nIf you put your ear to it you can hear the PSO2 lobby music
9999Indomitable Unit
-0+
\n\n\n\n>\n)\n}\n\nexport default TestPanel;","import './reset.css'; // Generic reset\nimport './style.css'; // The new new\nimport React, {useState,useEffect,useReducer} from 'react';\nimport Toggle from 'react-toggle' //Tooltip props: http://aaronshaf.github.io/react-toggle/\nimport Helmet from 'react-helmet'\n\nimport {TrashFill, PlusCircle, LifePreserver, Server, CloudUploadFill} from 'react-bootstrap-icons'\n\nimport { SkillTreeEditor } from './skilltree/skillTreeEditor'\n\nimport { GoogleLogin } from 'react-google-login';\n\nimport {\n HashRouter,\n Switch,\n Route,\n useHistory\n} from \"react-router-dom\";\n\nimport { HashLink as Link } from 'react-router-hash-link';\n\nimport TestHeader from './TestHeader'; // Test Header!\nimport TestPanel from './TestPanel'; // Dudley's Test Panel\nimport md5 from 'md5';\n\n\nconst cookies = require('cookie-handler');\nconst axios = require('axios');\nconst parse = require('csv-parse/lib/sync')\n\n/*\nDamage types\nconst MELEE_DMG = 0\nconst RANGE_DMG = 1\nconst TECH_DMG = 2\n\nArt properties\nconst NORMAL = 0\nconst PHOTON_ART = 1\nconst WEAPON_ACTION = 2\nconst STEP_COUNTER = 3\nconst PARRY_COUNTER = 4\n//NOT USED YET*/\n\nconst BACKENDURL=process.env.REACT_APP_GITPOD_WORKSPACE_URL||process.env.REACT_APP_BACKENDURL||'https://projectdivar.com:4504'\nconst APP_TITLE = \"NGS Planner\"\n\nfunction GetBackendURL(p) {\n\treturn (BACKENDURL)+(p.TESTMODE?\"/test\":\"\")\n}\n\nfunction Box(p) {\n\treturn <>\n\t\t\n\t\t
\n\t\t
{p.title}
\n\t\t\n\t\t\t{p.children} \n\t\t
\n\t>\n}\n\nfunction Table(p) {\n\treturn \n\n\t\t\t{p.children}\n\n\t\n}\n\nfunction InputBox(p) {\n\tconst [value,setValue] = useState(p.value)\n\tconst [failed,setFailed] = useState(false)\n\tconst [sending,setSending] = useState(false)\n\n\tfunction changeFunc(f){setValue(f.currentTarget.value)\n\t\tif (p.callback4) {\n\t\t\tp.callback4(f.currentTarget.value)\n\t\t}}\n\tfunction blurFunc(f){\n\t\tif (p.callback) {\n\t\t\tsetSending(true)\n\t\t\tsetFailed(false)\n\t\t\tp.callback(f.currentTarget.value)\n\t\t\t.then(()=>{setFailed(false)})\n\t\t\t.catch(()=>{setFailed(true)})\n\t\t\t.then(()=>{setSending(false)})}\n\t\telse \n\t\tif (p.callback3) {\n\t\t\tp.callback3(f.currentTarget.value)\n\t\t}}\n\tfunction keydownFunc(f){\n\t\tif (p.callback2) {\n\t\t\tp.callback2(f,value)\n\t\t}\n\t}\n\n\treturn p.data?:{keydownFunc(f)}} onChange={(f)=>{changeFunc(f)}} onBlur={(f)=>{blurFunc(f)}}/>\n}\n\nfunction TableEditor(p) {\n\t\n\tconst initialVals={}\n\n\tconst { TESTMODE } = p\n\t\n\tfunction updateVals(state,update) {\n\t\tif (update==='Clear') {\n\t\t\treturn initialVals\n\t\t}\n\t\tstate[update.field]=update.value\n\t\treturn state \n\t}\n\t\n\tconst [fields,setFields] = useState([])\n\tconst [data,setData] = useState([])\n\tconst [update,setUpdate] = useState(false)\n\tconst [submitVals,setSubmitVal] = useReducer(updateVals,initialVals)\n\tconst [loading,setLoading] = useState(false)\n\tconst [dependencies,setDependencies] = useState([])\n\tconst [importAllowed,setImportAllowed] = useState(false)\n\tconst [lockSubmission,setLockSubmission] = useState(false)\n\n\tfunction patchValue(value,p,col,dat) {\n\t\treturn axios.patch(p.BACKENDURL+p.path,{\n\t\t\t[col.name]:value===\"null\"?null:value,\n\t\t\tid:dat.id,\n\t\t\tpass:p.password\n\t\t})\n\t}\n\t\n\tfunction SubmitBoxes() {\n\t\tif (!lockSubmission) {\n\t\t\tsetLockSubmission(true)\n\t\t\taxios.post(p.BACKENDURL+p.path,{...submitVals,pass:p.password})\n\t\t\t.then(()=>{\n\t\t\t\tsetSubmitVal(\"Clear\")\n\t\t\t\tsetUpdate(true)\n\t\t\t})\n\t\t\t.catch((err)=>{\n\t\t\t\talert(JSON.stringify(err.response.data))\n\t\t\t})\n\t\t\t.then(()=>{\n\t\t\t\tsetLockSubmission(false)\n\t\t\t})\n\t\t}\n\t}\n\n\tfunction SubmitDeletion() {\n\t\tif (!lockSubmission) {\n\t\t\tsetLockSubmission(true)\n\t\t\tvar promises = []\n\t\t\tfor (var dat of data) {\n\t\t\t\tif (document.getElementById(\"delete_\"+dat.id).checked) {\n\t\t\t\t\tpromises.push(axios.delete(p.BACKENDURL+p.path,{data:{pass:p.password,id:dat.id}}))\n\t\t\t\t}\n\t\t\t}\n\t\t\tPromise.allSettled(promises)\n\t\t\t.catch((err)=>{\n\t\t\t\talert(err.message)\n\t\t\t})\n\t\t\t.then((data)=>{\n\t\t\t\tsetLockSubmission(false)\n\t\t\t\tsetUpdate(true)\n\t\t\t})\n\t\t}\n\t}\n\t\n\tuseEffect(()=>{\n\t\tsetUpdate(true)\n\t},[p.path,TESTMODE])\n\n\tuseEffect(()=>{\n\t\tfor (var col of fields) {\n\t\t\tif (col.name===\"name\") {\n\t\t\t\tsetImportAllowed(true)\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t},[fields])\n\t\n\tuseEffect(()=>{\n\t\tif (update) {\n\t\t\tsetLoading(true)\n\t\t\tvar dependency_map = {}\n\t\t\taxios.get(p.BACKENDURL+p.path+\"?pass=\"+p.password)\n\t\t\t.then((data)=>{\n\t\t\t\tvar cols = data.data.fields\n\t\t\t\tvar rows = data.data.rows\n\t\t\t\t\n\t\t\t\tsetFields(cols.filter((col,i)=>col.name!==\"id\"&&!(i===0&&col.name===\"name\")))\n\n\t\t\t\tvar promise_list = []\n\n\t\t\t\tcols.filter((col)=>col.name!==\"id\"&&col.name.includes(\"_id\")).forEach((col)=>{\n\t\t\t\t\tpromise_list.push(axios.get(p.BACKENDURL+\"/\"+col.name.replace(\"_id\",\"\")+\"?pass=\"+p.password)\n\t\t\t\t\t.then((data)=>{\n\t\t\t\t\t\tdependency_map[col.name]=data.data.rows.sort((a,b)=>b.id-a.id)\n\t\t\t\t\t}))\n\t\t\t\t})\n\t\t\t\tsetData(rows)\n\t\t\t\treturn Promise.allSettled(promise_list)\n\t\t\t})\n\t\t\t.then(()=>{\n\t\t\t\tsetDependencies(dependency_map)\n\t\t\t\tsetLoading(false)\n\t\t\t})\n\t\t\tsetUpdate(false)\n\t\t}\n\t},[update,p.path,p.BACKENDURL,p.password])\n\t\n\treturn <>\n\t{!loading?<>\t\t\t {importAllowed&&{\n\t\t\t\tconst reader = new FileReader()\n\t\t\t\treader.onload=(ev)=>{\n\t\t\t\t\tvar promises=[]\n\t\t\t\t\tparse(ev.target.result,{columns:true,skip_empty_lines:true}).forEach((entry)=>{\n\t\t\t\t\t\tfor (var col of fields) {\n\t\t\t\t\t\t\tif ((col.dataTypeID===23||col.dataTypeID===701||col.dataTypeID===16)&&entry[col.name]===\"\") {\n\t\t\t\t\t\t\t\tentry[col.name]=0\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpromises.push(axios.post(p.BACKENDURL+p.path,{...entry,pass:p.password}))\n\t\t\t\t\t})\n\t\t\t\t\tPromise.allSettled(promises)\n\t\t\t\t\t.then(()=>{\n\t\t\t\t\t\tsetUpdate(true)\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treader.readAsText(f.target.files[0])\n\t\t\t }} style={{opacity:0}} id=\"uploads\" type=\"file\" accept=\".txt,.csv\"/>}\n\t\t>:<>![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
![\"\"/]({process.env.PUBLIC_URL+\"/spinner.gif\"})
>}\n\t>\n}\n\nfunction DatabaseEditor(p) {\n\tconst [loading,setLoading] = useState(true)\n\tconst [message,setMessage] = useState()\n\tconst [databases,setDatabases] = useState([])\n\tconst [update,setUpdate] = useState(true)\n\n\tuseEffect(()=>{\n\t\tif (update) {\n\t\t\taxios.get(p.BACKENDURL+\"/databases?pass=\"+p.password)\n\t\t\t.then((data)=>{\n\t\t\t\tsetDatabases(data.data)\n\t\t\t})\n\t\t\t.catch((err)=>{\n\t\t\t\tconsole.log(err.message)\n\t\t\t})\n\t\t\t.then(()=>{\n\t\t\t\tsetLoading(false)\n\t\t\t})\n\t\t\tsetUpdate(false)\n\t\t}\n\t},[update,p.BACKENDURL,p.password])\n\n\treturn <>\n\t\t{!loading?<>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t>:
\n\t\t}\n\t\t{message}\n\t\t
\n\t\t
\n\t\tCurrent Databases
\n\t\t
\n\t\tLive Database\n\t\t Test Database
\n\t\t{databases.map((db,i)=>{\n\t\t\tvar label = \"\"\n\t\t\tif (db.datname!==\"ngsplanner\"&&db.datname!==\"ngsplanner2\") {\n\t\t\t\tvar dateStr = db.datname.replace(\"ngsplanner\",\"\")\n\t\t\t\tvar date = new Date(dateStr.slice(0,4),dateStr.slice(4,6),dateStr.slice(6,8),dateStr.slice(8,10),dateStr.slice(10,12),dateStr.slice(12,14))\n\t\t\t\tlabel=<>{\"Backup from \"+date}>\n\t\t\t\treturn {label}
\n\t\t\t} else {\n\t\t\t\treturn \n\t\t\t}\n\t\t})}\n\t>\n}\n\nfunction AdminPanel(p) {\n\tconst [verified,setVerified] = useState(false)\n\tconst [password,setPassword] = useState(\"\")\n\n\tconst navigationData=[\n\t\t{page:\"Class\",url:\"/admin/class\",table:\"/class\"},\n\t\t{page:\"Class Data\",url:\"/admin/classdata\",table:\"/class_level_data\"},\n\t\t{page:\"Class-Weapon Compatibility\",url:\"/admin/classweaponcompatibility\",table:\"/class_weapon_type_data\"},\n\t\t{page:\"Class Skills\",url:\"/admin/classskills\",table:\"/class_skill\"},\n\t\t{page:\"Class Skill Data\",url:\"/admin/classskilldata\",table:\"/class_skill_data\"},\n\t\t{hr:true},\n\t\t{page:\"Weapons\",url:\"/admin/weapons\",table:\"/weapon\"},\n\t\t{page:\"Weapon Existence Data\",url:\"/admin/weaponexistencedata\",table:\"/weapon_existence_data\"},\n\t\t{page:\"Weapon Types\",url:\"/admin/weapontypes\",table:\"/weapon_type\"},\n\t\t{page:\"Class-Weapon Compatibility\",url:\"/admin/classweaponcompatibility\",table:\"/class_weapon_type_data\",duplicate:true},\n\t\t{page:\"Photon Arts\",url:\"/admin/photonarts\",table:\"/photon_art\"},\n\t\t{hr:true},\n\t\t{page:\"Armor\",url:\"/admin/armor\",table:\"/armor\"},\n\t\t{page:\"Potentials\",url:\"/admin/potentials\",table:\"/potential\"},\n\t\t{page:\"Potential Data\",url:\"/admin/potentialdata\",table:\"/potential_data\"},\n\t\t{hr:true},\n\t\t{page:\"Builds\",url:\"/admin/builds\",table:\"/builds\"},\n\t\t{hr:true},\n\t\t{page:\"Skills\",url:\"/admin/skills\",table:\"/skill\"},\n\t\t{page:\"Skill Types\",url:\"/admin/skilltypes\",table:\"/skill_type\"},\n\t\t{page:\"Skill Data\",url:\"/admin/skilldata\",table:\"/skill_data\"},\n\t\t{page:Skill Tree Editor,url:\"/admin/skilltreeeditor\",render:},\n\t\t{page:\"Skill Tree Data\",url:\"/admin/skilltreedata\",table:\"/skill_tree_data\"},\n\t\t{page:\"Photon Arts\",url:\"/admin/photonarts\",table:\"/photon_art\",duplicate:true},\n\t\t{page:\"Class Skills\",url:\"/admin/classskills\",table:\"/class_skill\",duplicate:true},\n\t\t{page:\"Class Skill Data\",url:\"/admin/classskilldata\",table:\"/class_skill_data\",duplicate:true},\n\t\t{hr:true},\n\t\t{page:\"Augment Types\",url:\"/admin/augmenttypes\",table:\"/augment_type\"},\n\t\t{page:\"Augments\",url:\"/admin/augments\",table:\"/augment\"},\n\t\t{page:\"Elements\",url:\"/admin/elements\",table:\"/element\"},\n\t\t{hr:true},\n\t\t{page:\"Enemy Data\",url:\"/admin/enemydata\",table:\"/enemy_data\"},\n\t\t{hr:true},\n\t\t{page:\"Food\",url:\"/admin/food\",table:\"/food\"},\n\t\t{page:\"Food Multipliers\",url:\"/admin/foodmultipliers\",table:\"/food_mult\"},\n\t\t{hr:true},\n\t\t{page:\"Roles\",url:\"/admin/roles\",table:\"/roles\"},\n\t\t{page:\"Users\",url:\"/admin/users\",table:\"/users\"},\n\t\t{hr:true},\n\t\t{page:\"Misc. Site Data\",url:\"/admin/sitedata\",table:\"/site_data\"},\n\t\t{page:\"Database Audit\",url:\"/admin/database_audit\",table:\"/database_audit\"},\n\t]\n\n\treturn \n\t\t{!verified?\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
Admin
\n\t\t\t\t\t\t
\n\t\t\t
{setPassword(f.currentTarget.value)}} onKeyDown={(e)=>{\n\t\t\t\tif (e.key===\"Enter\") {\n\t\t\t\t\taxios.post(GetBackendURL(p)+\"/passwordcheck\",{\n\t\t\t\t\t\tpass:password\n\t\t\t\t\t})\n\t\t\t\t\t.then((data)=>{\n\t\t\t\t\t\tif (data.data.verified) {\n\t\t\t\t\t\t\tsetVerified(data.data.verified)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch((err)=>{\n\t\t\t\t\t\tsetVerified(false)\n\t\t\t\t\t\tsetPassword(\"\")\n\t\t\t\t\t})}}}>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n:<>\n\t\t\n\t\t
\n\t\t
\n\t\t
Navigation
\n\t\t\n\t\t
Testing Mode {p.setTESTMODE(f.target.checked)}}/> {p.TESTMODE?ON:OFF}
\n\t\t
\n\t\t
\n\t\t {navigationData.map((nav,i)=>(nav.hr)?
:{nav.page}
)}\n\t\t Database Manager
\n\t\t
\n\t\t
\n\t\t
\t\t\n\t\t\n\n\n\n\t\t\t{navigationData.map((nav,i)=>(nav.duplicate===undefined&&nav.hr===undefined)&&
\n\t\t\t\n\t\t
\n\t\t
{nav.page}
\n\t\t
\n\t\t
\n\t\t\t\t\t{APP_TITLE+\" - Admin Panel: \"+nav.page}\n\t\t\t\t\n\t\t\t\t{nav.render??
}\n\t\t\t\t)}\n\n\t\t\t
\n\t\t\t\n\t\t\t
\n\t\t
Database Editor
\n\t\t
\n\t\t\t\t\t\n\t\t\t\t
\t\t\t\t\t\n\t\t\t\t
\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t>}\n\t
\n}\n\nfunction EditStatBox(p) {\n\n\tconst [value,setValue] = useState(p.value)\n\n\tuseEffect(()=>{\n\t\tsetValue(p.value)\n\t},[p.value])\n\n\treturn <>{setValue(f.currentTarget.value);p.callback(f.currentTarget.value)}}/> ({value})
>\n}\n\nfunction DamageCalculator(p) {\n\n\tconst [augmentData,setAugmentData] = useState({})\n\t//const [update,setUpdate] = useState(false)\n\n\tuseEffect(()=>{\n\t\taxios.get(p.BACKENDURL+\"/augment\")\n\t\t.then((data)=>{\n\t\t\tvar augmentData = {}\n\t\t\tdata.data.rows.forEach((entry)=>{augmentData[entry.name]=entry})\n\t\t\tsetAugmentData(augmentData)\n\t\t})\n\t},[p.BACKENDURL])\n\n\tconst character = {\n\t\tweapon:{\n\t\t\taugments:[\"1\",\"2\"]\n\t\t},\n\t\tarmor1:{\n\t\t\taugments:[\"2\"]\n\t\t},\n\t\tarmor2:{\n\t\t\taugments:[]\n\t\t},\n\t\tarmor3:{\n\t\t\taugments:[]\n\t\t}\n\t}\n\n\tuseEffect(()=>{\n\t\tif (Object.keys(augmentData).length>0) {\n\t\t\tvar searchFields = [{field:\"variance\",variable:0},{field:\"mel_dmg\",variable:0}]\n\t\t\tfor (var equip of [character.weapon,character.armor1,character.armor2,character.armor3]) {\n\t\t\t\tfor (var field of searchFields) {\n\t\t\t\t\tfor (var i=0;i{\n\t\tsetWeaponTotalAtk(Number(weaponBaseAtk)+Number(weaponEnhanceLv))\n\t},[weaponBaseAtk,weaponEnhanceLv])\n\n\tconst [dmgVariance,setDmgVariance] = useState(1)\n\n\t\tconst [weaponDmgVariance,setWeaponDmgVariance] = useState(1)\n\t\tconst [augDmgVariance,setAugDmgVariance] = useState(1)\n\n\tuseEffect(()=>{\n\t\tsetDmgVariance(Number(weaponDmgVariance)+Number(augDmgVariance))\n\t},[weaponDmgVariance,augDmgVariance])\n\n\tconst [baseAtk,setBaseAtk] = useState(100)\n\tconst [enemyDef,setEnemyDef] = useState(5)\n\tconst [multipliers,setMultipliers] = useState(1)\n\n\tuseEffect(()=>{\n\t\tsetRawDmg(((Number(weaponTotalAtk)*Number(dmgVariance))+Number(baseAtk)-Number(enemyDef))*Number(multipliers)/5)\n\t},[weaponTotalAtk,dmgVariance,baseAtk,enemyDef,multipliers])\n\t\n\tconst [atkmult,setAtkMult] = useState(1);\n\tconst [partmult,setPartMult] = useState(1);\n\tconst [elementalWeaknessMult,setElementalWeaknessMult] = useState(1.2)\n\tconst [mainClassWeaponBoost,setMainClassWeaponBoost] = useState(1.1)\n\tconst [classSkillMult,setClassSkillMult] = useState(1)\n\tconst [equipMult,setEquipMult] = useState(1)\n\n\tconst [augmentEquipMult,setAugmentEquipMult] = useState(1)\n\tconst [potencyFloorEquipMult,setPotencyFloorEquipMult] = useState(1)\n\tconst [elementalWeaponEquipMult,setElementalWeaponEquipMult] = useState(1.1)\n\t\n\tconst [critMult,setCritMult] = useState(1.2)\n\tconst [appropriateDistance,setAppropriateDistance] = useState(1)\n\t\n\tconst [foodBoost,setFoodBoost] = useState(1)\n\tconst [fieldEffects,setFieldEffects] = useState(1.05)\n\tconst [statusAilments,setStatusAilments] = useState(1)\n\n\tconst [enemyCorrectionMult,setEnemyCorrectionMult] = useState(1)\n\n\tconst [highLevelEnemy,setHighLevelEnemy] = useState(1)\n\n\tuseEffect(()=>{\n\t\tsetMultipliers(Number(atkmult)*Number(partmult)*Number(elementalWeaknessMult)*Number(mainClassWeaponBoost)*Number(classSkillMult)*Number(equipMult)*Number(augmentEquipMult)*Number(potencyFloorEquipMult)*Number(elementalWeaponEquipMult)*Number(critMult)*Number(appropriateDistance)*Number(foodBoost)*Number(fieldEffects)*Number(statusAilments)*Number(enemyCorrectionMult)*Number(highLevelEnemy))\n\t},[atkmult,partmult,elementalWeaknessMult,mainClassWeaponBoost,classSkillMult,equipMult,augmentEquipMult,potencyFloorEquipMult,elementalWeaponEquipMult,critMult,appropriateDistance,foodBoost,fieldEffects,statusAilments,enemyCorrectionMult,highLevelEnemy])\n\n\treturn <>\n\t\t\n\t\t\tWeapon Total Atk:
{setWeaponTotalAtk(val)}}/>\n\t\t\t\n\t\t\t\t- ●Weapon Base Atk:{setWeaponBaseAtk(val)}}/>
\n\t\t\t\t- ●Weapon Enhance Lv:{setweaponEnhanceLv(val)}}/>
\n\t\t\t
\n\t\t\t
\n\t\t\tDamage Variance:{setDmgVariance(val)}}/>\n\t\t\t\n\t\t\t\t- ●Weapon Damage Variance:{setWeaponDmgVariance(val)}}/>
\n\t\t\t\t- ●Augment Damage Variance:{setAugDmgVariance(val)}}/>
\n\t\t\t
\n\t\t\t
\n\t\t\tBase Attack:{setBaseAtk(val)}}/>\n\t\t\tEnemy Defense:{setEnemyDef(val)}}/>\n\t\t\tMultipliers:{setMultipliers(val)}}/>\n\t\t\t\n\t\t\t\t- ●Atk Mult:{setAtkMult(val)}}/>
\n\t\t\t\t- ●Part Mult:{setPartMult(val)}}/>
\n\t\t\t\t- ●Elemental Weakness Mult:{setElementalWeaknessMult(val)}}/>
\n\t\t\t\t- ●Main Class Weapon Boost:{setMainClassWeaponBoost(val)}}/>
\n\t\t\t\t- ●Class Skill Mult:{setClassSkillMult(val)}}/>
\n\t\t\t\t- ●Equip Mult:{setEquipMult(val)}}/>
\n\t\t\t\t- \n\t\t\t\t\t
\n\t\t\t\t\t\t- ●Augment Equip Mult:{setAugmentEquipMult(val)}}/>
\n\t\t\t\t\t\t- ●Potency Floor Equip Mult:{setPotencyFloorEquipMult(val)}}/>
\n\t\t\t\t\t\t- ●Elemental Weapon Equip Mult:{setElementalWeaponEquipMult(val)}}/>
\n\t\t\t\t\t
\n\t\t\t\t \n\t\t\t\t- ●Crit Mult:{setCritMult(val)}}/>
\n\t\t\t\t- ●Appropriate Distance:{setAppropriateDistance(val)}}/>
\n\t\t\t\t- ●Food Boost:{setFoodBoost(val)}}/>
\n\t\t\t\t- ●Field Effects:{setFieldEffects(val)}}/>
\n\t\t\t\t- ●Status Ailments:{setStatusAilments(val)}}/>
\n\t\t\t\t- ●Enemy Correction Multiplier:{setEnemyCorrectionMult(val)}}/>
\n\t\t\t\t- ●High Level Enemy:{setHighLevelEnemy(val)}}/>
\n\t\t\t
\n\t\t\t
\n\t\t\tRaw Dmg:{rawDmg}\n\t\t \n\t>\n}\n\nfunction FormField(p) {\n\treturn <>{\n\t\tp.type===\"toggle\"?<> >:} >\n}\n\nfunction VerifyLogin(p) {\n\taxios.post(GetBackendURL(p)+\"/validUser\",{\n\t\tusername:p.LOGGEDINUSER,\n\t\tpassword:p.LOGGEDINHASH,\n\t\trecoveryhash:cookies.get(\"userID\")\n\t})\n\t.then((data)=>{\n\t\tif (data.data.verified) {\n\t\t\tp.history.push(\"/\")\n\t\t}\n\t})\n\t.catch((err)=>{\n\t\tconsole.log(err.message)\n\t})\n}\n\nfunction LoginForm(p) {\n\tconst [username,setUsername] = useState(\"\")\n\tconst [password,setPassword] = useState(\"\")\n\tconst [rememberMe,setRememberMe] = useState(false)\n\tconst [error,setError] = useState(\"\")\n\tconst [loading,setLoading] = useState(false)\n\tconst [message,setMessage] = useState(\"\")\n\n\tconst history = useHistory()\n\n\tuseEffect(()=>{\n\t\tVerifyLogin({...p,history:history})\n\t},[history,p])\n\n\tfunction SubmitLogin() {\n\t\tsetError(\"\")\n\t\tsetLoading(true)\n\t\taxios.post(GetBackendURL(p)+\"/validUser\",{\n\t\t\tusername:username,\n\t\t\tpassword:md5(password)\n\t\t})\n\t\t.then((data)=>{\n\t\t\tif (data.data.verified) {\n\t\t\t\tp.setLOGGEDINUSER(username)\n\t\t\t\tp.setLOGGEDINHASH(md5(password))\n\t\t\t\tcookies.set(\"username\",username,30,'d')\n\t\t\t\tcookies.set(\"password\",md5(password),30,'d')\n\t\t\t\tsetUsername(\"\")\n\t\t\t\tsetPassword(\"\")\n\t\t\t\tsetRememberMe(false)\n\t\t\t\thistory.push(\"/\")\n\t\t\t} else {\n\t\t\t\tsetError(\"Could not authenticate!\")\n\t\t\t}\n\t\t})\n\t\t.catch((err)=>{\n\t\t\tsetError(err?.message??err);\n\t\t})\n\t\t.then(()=>{\n\t\t\tsetLoading(false)\n\t\t})\n\t}\n\n\tfunction responseGoogle(response) {\n\t\t//setMessage(JSON.stringify(response))\n\t\tif (response.error) {\n\t\t\tsetMessage(JSON.stringify(response))\n\t\t} else \n\t\tif (response.profileObj.googleId&&\n\t\t\tresponse.profileObj.imageUrl&&\n\t\t\tresponse.profileObj.email&&\n\t\t\tresponse.profileObj.name&&\n\t\t\tresponse.tokenId){\n\t\t\taxios.post(GetBackendURL(p)+\"/registerUser\",{\n\t\t\t\tusername:response.profileObj.name,\n\t\t\t\temail:response.profileObj.email,\n\t\t\t\tpassword:response.tokenId,\n\t\t\t\tavatar:response.profileObj.imageUrl,\n\t\t\t\tuserID:response.profileObj.googleId,\n\t\t\t\trecoveryhash:response.profileObj.googleId\n\t\t\t})\n\t\t\t.then((data)=>{\n\t\t\t\tif (data.data.verified) {\n\t\t\t\t\tp.setLOGGEDINUSER(response.profileObj.name)\n\t\t\t\t\tp.setLOGGEDINHASH(response.tokenId)\n\t\t\t\t\tcookies.set(\"username\",response.profileObj.name,30,'d')\n\t\t\t\t\tcookies.set(\"password\",response.tokenId,30,'d')\n\t\t\t\t\tcookies.set(\"userID\",response.profileObj.googleId,30,'d')\n\t\t\t\t\tsetUsername(\"\")\n\t\t\t\t\tsetPassword(\"\")\n\t\t\t\t\tsetRememberMe(false)\n\t\t\t\t\thistory.push(\"/\")\n\t\t\t\t} else {\n\t\t\t\t\tcookies.remove(\"userID\")\n\t\t\t\t\tsetError(\"Could not authenticate!\")\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t }\n\n\treturn <>\n\t\n\t{loading?\n\t\t
\n\t\t:<>{if (f.key===\"Enter\") {SubmitLogin()}}}>
{error}
\n\t\t{setUsername(p.currentTarget.value)}} placeholder=\"Username\"/>
\n\t\t{setPassword(p.currentTarget.value)}} placeholder=\"Password\"/>
\n\t\t{setRememberMe(p.currentTarget.checked)}}/>
\n\t\t\n\t\t
\n\t\t{message}
\n\t\t\n\t\t>\n\t}\n\t>\n}\n\nfunction RegisterForm(p) {\n\tconst [username,setUsername] = useState(\"\")\n\tconst [password,setPassword] = useState(\"\")\n\tconst [password2,setPassword2] = useState(\"\")\n\tconst [email,setEmail] = useState(\"\")\n\tconst [rememberMe,setRememberMe] = useState(false)\n\tconst [error,setError] = useState(\"\")\n\tconst [loading,setLoading] = useState(false)\n\n\tconst history = useHistory()\n\n\tuseEffect(()=>{\n\t\tVerifyLogin({...p,history:history})\n\t},[history,p])\n\n\tfunction SubmitRegister() {\n\t\tsetError(\"\")\n\t\tsetLoading(true)\n\t\ttry{\n\t\t\tif (username.length<4) {throw new Error(\"Username must be at least 4 characters in length.\")}\n\t\t\tif (username.length>20) {throw new Error(\"Username must be less than 21 characters in length.\")}\n\t\t\tif (password.length<6) {throw new Error(\"Password must contain at least 6 characters.\")}\n\t\t\tif (password!==password2) {throw new Error(\"Password fields must match.\")}\n\t\t\tif (!email.includes(\"@\")) {throw new Error(\"Invalid E-mail.\")}\n\t\t}catch(err){\n\t\t\tsetError(err?.message??err);\n\t\t\tsetLoading(false)\n\t\t\treturn\n\t\t}\n\t\taxios.post(GetBackendURL(p)+\"/register\",{\n\t\t\tusername:username,\n\t\t\tpassword:md5(password),\n\t\t\temail:email\n\t\t})\n\t\t.then((data)=>{\n\t\t\tif (data.data.verified) {\n\t\t\t\tp.setLOGGEDINUSER(username)\n\t\t\t\tp.setLOGGEDINHASH(md5(password))\n\t\t\t\tsetUsername(\"\")\n\t\t\t\tsetPassword(\"\")\n\t\t\t\tsetRememberMe(false)\n\t\t\t} else {\n\t\t\t\tsetError(\"Could not authenticate!\")\n\t\t\t}\n\t\t})\n\t\t.catch((err)=>{\n\t\t\tsetError(err?.message??err);\n\t\t})\n\t\t.then(()=>{\n\t\t\tsetLoading(false)\n\t\t})\n\t}\n\n\treturn <>\n\t\n\t{loading?\n\t\t
\n\t\t:<>{error}
\n\t\t{setUsername(p.currentTarget.value)}} placeholder=\"Username\" tooltip=\"Enter a username (4-20 characters, a-z and _ only)\"/>
\n\t\t{setPassword(p.currentTarget.value)}} placeholder=\"Password\" tooltip=\"Enter a password (6 or more characters)\"/>
\n\t\t{setPassword2(p.currentTarget.value)}} placeholder=\"Verify Password\" tooltip=\"Enter password again.\"/>
\n\t\t{setEmail(p.currentTarget.value)}} placeholder=\"email@example.com\" tooltip=\"This is used to send you password reset emails.\"/>
\n\t\t{setRememberMe(p.currentTarget.checked)}}/>
\n\t\t>\n\t}\n\t>\n}\n\n\nfunction App() {\n\t\n\tconst [author] = useState(\"Dudley\")\n\tconst [buildName] = useState(\"Fatimah\")\n\tconst [className] = useState(\"Ranger\")\n\tconst [secondaryClassName] = useState(\"Force\")\n\tconst [classLv] = useState(20)\n\tconst [secondaryClassLv] = useState(15)\n\t\t\n\t\n\tconst [bp] = useState(1330)\n\tconst [hp] = useState(388)\n\tconst [pp] = useState(154)\n\tconst [weaponTotalAtk] = useState(282)\n\tconst [baseAtk] = useState(650)\n\tconst [statDisplayAtk,setstatDisplayAtk] = useState(282)\n\n\tuseEffect(()=>{\n\t\tsetstatDisplayAtk(Number(weaponTotalAtk)+Number(baseAtk))\n\t},[weaponTotalAtk,baseAtk])\n\n\tconst [def] = useState(932)\n\tconst [weaponUp1] = useState(0.317)\n\tconst [weaponUp2] = useState(0.241)\n\tconst [weaponUp3] = useState(0.241)\n\tconst [damageResist] = useState(0.18)\n\tconst [burnResist] = useState(0)\n\tconst [shockResist] = useState(0)\n\tconst [panicResist] = useState(0)\n\tconst [stunResist] = useState(0)\n\tconst [freezeResist] = useState(0)\n\tconst [blindResist] = useState(0)\n\tconst [poisonResist] = useState(0)\n\t\n\tconst [TESTMODE,setTESTMODE] = useState(false)\n\tconst [DATA,setDATA] = useState(undefined)\n\tconst [DATAID,setDATAID] = useState({GetData:()=>{}})\n\tconst [update,setUpdate] = useState(false)\n\n\tconst [LOGGEDINUSER,setLOGGEDINUSER] = useState(cookies.get(\"username\"))\n\tconst [LOGGEDINHASH,setLOGGEDINHASH] = useState(cookies.get(\"password\"))\n\n\tconst PANELPATHWBUILD = process.env.PUBLIC_URL+\"/test/:BUILDID\"\n\tconst PANELPATH = process.env.PUBLIC_URL+\"/test\"\n\n\tfunction GetData(table,row,col,id){\n\t\tif (row===undefined) {row=''}\n\t\tif (col===undefined) {col=''}\n\t\tvar data = id?DATAID:DATA\n\t\tif (!data) {\n\t\t\treturn \"no data\"\n\t\t} else {\n\t\t\treturn data!==undefined?data[table]!==undefined?data[table][row]!==undefined?data[table][row][col]!==undefined?data[table][row][col]:data[table][row]:data[table]:data:\"no data\"\n\t\t}\n\t}\n\t\n\tuseEffect(()=>{\n\t\tif (update) {\n\t\t\tsetUpdate(false)\n\t\t\taxios.get(GetBackendURL({TESTMODE:TESTMODE})+\"/data\")\n\t\t\t.then((data)=>{\n\t\t\t\tsetDATA(data.data)\n\t\t\t})\n\t\t\taxios.get(GetBackendURL({TESTMODE:TESTMODE})+\"/dataid\")\n\t\t\t.then((data)=>{\n\t\t\t\tsetDATAID(data.data)\n\t\t\t})\n\t\t}\n\t},[update,TESTMODE])\n\n\tuseEffect(()=>{\n\t\tsetLOGGEDINUSER(cookies.get(\"username\"))\n\t\tsetLOGGEDINHASH(cookies.get(\"password\"))\n\t\taxios.get(GetBackendURL({TESTMODE:TESTMODE})+\"/data\")\n\t\t.then((data)=>{\n\t\t\tsetDATA(data.data)\n\t\t})\n\t\taxios.get(GetBackendURL({TESTMODE:TESTMODE})+\"/dataid\")\n\t\t.then((data)=>{\n\t\t\tsetDATAID(data.data)\n\t\t})\n\t},[TESTMODE])\n\n return (\n \t<>\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{APP_TITLE+\" - Admin Panel\"}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{APP_TITLE+\" - Login\"}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{APP_TITLE+\" - Register\"}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{APP_TITLE}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
{GetData(\"site_data\",\"h1\",\"data\")}
{GetData(\"site_data\",\"h2\",\"data\")}
\n\t\t\t\t{GetData(\"site_data\",\"UNDER_CONSTRUCTION_TEXT\",\"data\")}
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\n\t\t\n\t>\n );\n}\n\nexport default App;\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}
\ No newline at end of file