bc-model-viewer 1.7.53 → 1.7.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0bL=a0b;(function(b,c){const bJ=a0b,d=b();while(!![]){try{const e=-parseInt(bJ(0x6e3))/0x1+-parseInt(bJ(0x284))/0x2+-parseInt(bJ(0x196))/0x3+-parseInt(bJ(0x988))/0x4*(-parseInt(bJ(0x32a))/0x5)+parseInt(bJ(0x645))/0x6+-parseInt(bJ(0x523))/0x7+parseInt(bJ(0x9cf))/0x8*(parseInt(bJ(0x37b))/0x9);if(e===c)break;else d['push'](d['shift']());}catch(f){d['push'](d['shift']());}}}(a0a,0x49617),(function(){'use strict';const bK=a0b;try{if(typeof document<'u'){var b=document[bK(0x86)]('style');b[bK(0x2cf)](document['createTextNode']('.progress-container{position:absolute;width:100%;background:#eb888833;z-index:9999;top:80%}.progress-message{width:100%;position:absolute;text-align:center;top:0;line-height:30px}.progress-bar{background:linear-gradient(90deg,#4caf50,#ace9ae);height:30px;width:0;transition:width\x200s}.bmv-container\x20*{margin:0;padding:0}.height-100vh{height:100vh}.bmv-container\x20.camera{position:relative;width:28px;height:28px}.bmv-container\x20.pivot\x20.lens{position:absolute;top:50%;left:50%;width:18px;height:18px;border-radius:50%;background-color:#8896e656;transform:translate(-50%,-50%);pointer-events:none}.bmv-container\x20.pivot\x20.lens-border{position:absolute;top:50%;left:50%;width:18px;height:18px;border-radius:50%;background-color:#8896e617;transform:translate(-50%,-50%);animation:bmv-animation-pulse\x203s\x20infinite;cursor:pointer;border:3px\x20solid\x20#ffffff6d;pointer-events:none}.bmv-container\x20.measure-snap-point\x20.lens{position:absolute;top:50%;left:50%;width:12px;height:12px;border-radius:50%;background-color:#8d8bebaa;transform:translate(-50%,-50%);pointer-events:none}.bmv-container\x20.measure-snap-point\x20.lens-border{position:absolute;top:50%;left:50%;width:12px;height:12px;border-radius:50%;background-color:#7b828faa;transform:translate(-50%,-50%);pointer-events:none;cursor:pointer;border:2px\x20solid\x20#fff}.bmv-measure-label-delete{cursor:pointer;padding:6px\x200\x206px\x206px;margin-left:4px;color:#ebab10;border-left:1px\x20solid\x20#aaa}.bmv-container\x20.measure-adsorb\x20.lens{position:absolute;top:50%;left:50%;width:12px;height:12px;border-radius:50%;background-color:#3432c0aa;transform:translate(-50%,-50%);pointer-events:none}.bmv-container\x20.measure-adsorb\x20.lens-border{position:absolute;top:50%;left:50%;width:12px;height:12px;border-radius:50%;background-color:#0b2c65aa;transform:translate(-50%,-50%);animation:bmv-animation-pulse\x201.5s\x20infinite;pointer-events:none;cursor:pointer;border:2px\x20solid\x20#fff}.bmv-container\x20.measure-point{pointer-events:none}.bmv-container\x20.measure-point\x20.lens{position:absolute;top:50%;left:50%;width:12px;height:12px;border-radius:50%;background-color:#3432c0aa;transform:translate(-50%,-50%)}.bmv-container\x20.dimension-endpoint{pointer-events:none}.bmv-container\x20.dimension-endpoint\x20.lens{position:absolute;top:50%;left:50%;width:2px;height:12px;background-color:gray;transform:translate(-50%,-50%)\x20rotate(45deg)}.bmv-container\x20.dimension-endpoint\x20.lens-border{position:absolute;top:50%;left:50%;width:3px;height:14px;background-color:gray;transform:translate(-50%,-50%)\x20rotate(45deg);opacity:.6}.bmv-container\x20.measure-point\x20.lens-border{position:absolute;top:50%;left:50%;width:12px;height:12px;border-radius:50%;background-color:#0b2c65aa;transform:translate(-50%,-50%);animation:bmv-animation-pulse\x201.5s\x20infinite;cursor:pointer;border:2px\x20solid\x20#fff}.bmv-container\x20.camera\x20.lens-border{position:absolute;top:50%;left:50%;width:28px;height:28px;border-radius:50%;background-color:#2ecc71aa;transform:translate(-50%,-50%)}.bmv-container\x20.camera\x20.lens-border{position:absolute;top:50%;left:50%;width:28px;height:28px;border-radius:50%;background-color:#2ecc71aa;transform:translate(-50%,-50%);box-shadow:0\x200\x2020px\x20#2ecc7133,0\x200\x2040px\x20#2ecc7133;animation:bmv-animation-pulse\x201.5s\x20infinite;cursor:pointer;border:4px\x20solid\x20#fff}@keyframes\x20bmv-animation-pulse{0%,to{transform:translate(-50%,-50%)\x20scale(1);opacity:.8}50%{transform:translate(-50%,-50%)\x20scale(1.1);opacity:.2}}#joystick{width:220px;height:100px;position:absolute;bottom:60px;left:50%;transform:translate(-50%);z-index:555;border-radius:50%}#joystick\x20.nipple\x20.front,#joystick\x20.nipple\x20.back{box-shadow:#0006\x200\x200\x208px\x203px}.bmv-click-point\x20.lens,.bmv-click-point\x20.lens-border{width:14px;height:14px}#joystick\x20.up-down-container{position:absolute;width:100%;display:flex;justify-content:space-between;top:50%;transform:translateY(-50%)}#joystick\x20.up-down-container\x20.btn{border:none;border-radius:50%;width:40px;height:40px;background:#ffffff80;text-align:center;box-shadow:#0003\x200\x200\x205px\x203px}#joystick\x20.up-down-container\x20.btn-bottom\x20.svg{position:relative;top:9px;color:#fff}#joystick\x20.up-down-container\x20.btn-top\x20.svg{position:relative;top:7px;color:#fff}.bmv-annotation-label{cursor:pointer;display:block;position:absolute;color:#fff;opacity:.75;font:14px\x20宋体;overflow:hidden;border:1px\x20solid\x20#000;background-color:#2d0707cc;padding:3px\x206px;border-radius:6px;pointer-events:auto}.bmv-annotation-content{display:flex;align-items:center;gap:4px}.bmv-annotation-text{display:inline}.bmv-annotation-image-indicator{display:inline;font-size:12px}.bmv-su-annotation-label{cursor:default;display:block;position:absolute;color:#000;opacity:.75;font:14px\x20宋体;overflow:hidden}.bmv-su-annotation-label:hover{opacity:1}.bmv-measure-label{cursor:default;display:block;vertical-align:middle;position:absolute;color:#eee;padding:3px\x206px;background-color:#000000e6;border:1px\x20solid\x20rgb(239,100,100);opacity:.75;font:13px\x20Helvetica\x20Neue,arial,sans-serif;overflow:hidden;border-radius:6px}.bmv-measure-label:hover{border:1px\x20solid\x20rgb(255,0,0);color:#fff;opacity:1}canvas{cursor:url(\x22data:image/svg+xml,%3csvg%20width=\x2732\x27%20height=\x2732\x27%20viewBox=\x270%200%2032%2032\x27%20fill=\x27none\x27%20xmlns=\x27http://www.w3.org/2000/svg\x27%3e%3cpath%20fill-rule=\x27evenodd\x27%20clip-rule=\x27evenodd\x27%20d=\x27M10.1987%2022.9126L10%206.66667L22%2017.7398L17.3581%2017.8332L19.6149%2023.2504L15.0634%2025.3333L13.0377%2019.7809L10.1987%2022.9126Z\x27%20fill=\x27%230E416C\x27/%3e%3cpath%20d=\x27M10.1987%2022.9126L9.82377%2022.9172L9.83544%2023.8717L10.4766%2023.1645L10.1987%2022.9126ZM10%206.66667L10.2543%206.39108L9.61438%205.80057L9.62503%206.67126L10%206.66667ZM22%2017.7398L22.0075%2018.1147L22.939%2018.096L22.2543%2017.4642L22%2017.7398ZM17.3581%2017.8332L17.3506%2017.4583L16.8003%2017.4693L17.012%2017.9774L17.3581%2017.8332ZM19.6149%2023.2504L19.7709%2023.5914L20.1004%2023.4407L19.961%2023.1062L19.6149%2023.2504ZM15.0634%2025.3333L14.7111%2025.4619L14.8503%2025.8433L15.2194%2025.6743L15.0634%2025.3333ZM13.0377%2019.7809L13.39%2019.6524L13.1771%2019.0688L12.7598%2019.529L13.0377%2019.7809ZM10.5737%2022.908L10.375%206.66208L9.62503%206.67126L9.82377%2022.9172L10.5737%2022.908ZM9.74569%206.94227L21.7457%2018.0154L22.2543%2017.4642L10.2543%206.39108L9.74569%206.94227ZM21.9925%2017.3649L17.3506%2017.4583L17.3657%2018.2081L22.0075%2018.1147L21.9925%2017.3649ZM17.012%2017.9774L19.2687%2023.3946L19.961%2023.1062L17.7043%2017.689L17.012%2017.9774ZM19.4588%2022.9094L14.9073%2024.9923L15.2194%2025.6743L19.7709%2023.5914L19.4588%2022.9094ZM15.4157%2025.2048L13.39%2019.6524L12.6854%2019.9094L14.7111%2025.4619L15.4157%2025.2048ZM12.7598%2019.529L9.92091%2022.6607L10.4766%2023.1645L13.3155%2020.0328L12.7598%2019.529Z\x27%20fill=\x27white\x27/%3e%3c/svg%3e\x22)\x209\x206,auto}.bmv-container\x20canvas.--wait{cursor:wait}.bmv-container\x20canvas.--clip{cursor:url(\x22data:image/svg+xml,%3c?xml%20version=\x271.0\x27%20standalone=\x27no\x27?%3e%3c!DOCTYPE%20svg%20PUBLIC%20\x27-//W3C//DTD%20SVG%201.1//EN\x27%20\x27http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\x27%3e%3csvg%20t=\x271751013526054\x27%20class=\x27icon\x27%20viewBox=\x270%200%201024%201024\x27%20version=\x271.1\x27%20xmlns=\x27http://www.w3.org/2000/svg\x27%20p-id=\x276911\x27%20width=\x2732\x27%20height=\x2732\x27%20xmlns:xlink=\x27http://www.w3.org/1999/xlink\x27%3e%3cpath%20d=\x27M306.33%20364.55h230.82v299.39H306.33z\x27%20fill=\x27%23279ACC\x27%20p-id=\x276912\x27%3e%3c/path%3e%3cpath%20d=\x27M512.68%20924.8a27.3%2027.3%200%200%201-27.31-27.31v-772a27.31%2027.31%200%201%201%2054.61%200v772a27.3%2027.3%200%200%201-27.3%2027.31z\x27%20fill=\x27%23303030\x27%20p-id=\x276913\x27%3e%3c/path%3e%3cpath%20d=\x27M845.15%20783.58H512.68a27.31%2027.31%200%201%201%200-54.61h277.85V293.9H512.68a27.31%2027.31%200%201%201%200-54.62h332.47z\x27%20fill=\x27%23303030\x27%20p-id=\x276914\x27%3e%3c/path%3e%3cpath%20d=\x27M512.68%20783.58h-51.35a27.31%2027.31%200%201%201%200-54.61h51.35a27.31%2027.31%200%200%201%200%2054.61z%20m-138.74%200h-87.38a27.31%2027.31%200%201%201%200-54.61h87.38a27.31%2027.31%200%201%201%200%2054.61z%20m-166.43-8.34a27.3%2027.3%200%200%201-27.3-27.31v-87.39a27.31%2027.31%200%200%201%2054.61%200v87.39a27.3%2027.3%200%200%201-27.31%2027.31z%20m0-174.78a27.3%2027.3%200%200%201-27.3-27.3v-87.39a27.31%2027.31%200%201%201%2054.61%200v87.39a27.3%2027.3%200%200%201-27.31%2027.3z%20m0-174.77a27.31%2027.31%200%200%201-27.3-27.31V311a27.31%2027.31%200%201%201%2054.61%200v87.39a27.31%2027.31%200%200%201-27.31%2027.3zM512.68%20293.9h-87.39a27.31%2027.31%200%200%201%200-54.62h87.39a27.31%2027.31%200%200%201%200%2054.62z%20m-174.78%200h-87.39a27.31%2027.31%200%200%201%200-54.62h87.39a27.31%2027.31%200%201%201%200%2054.62z\x27%20fill=\x27%23303030\x27%20p-id=\x276915\x27%3e%3c/path%3e%3c/svg%3e\x22)\x2015\x2015,auto}.bmv-container\x20canvas.--orbit{cursor:url(\x22data:image/svg+xml,%3csvg%20width=\x2732\x27%20height=\x2732\x27%20viewBox=\x270%200%2032%2032\x27%20fill=\x27none\x27%20xmlns=\x27http://www.w3.org/2000/svg\x27%3e%3cline%20x1=\x2715.5622\x27%20y1=\x272.24707\x27%20x2=\x2715.5622\x27%20y2=\x2727.5804\x27%20stroke=\x27%230E416C\x27%20stroke-width=\x271.33333\x27/%3e%3cpath%20d=\x27M9.97551%2016.3446V21.6604C8.54264%2021.1883%205.36373%2020.0627%204.11107%2019.3366C2.85841%2018.6105%202.60514%2017.5314%202.63509%2017.0826V11.8412C2.63498%2011.8297%202.63497%2011.8182%202.63509%2011.8067V11.8412C2.65885%2014.1923%207.53069%2015.8219%209.97551%2016.3446Z\x27%20fill=\x27%23FF0404\x27/%3e%3cpath%20d=\x27M13.9448%2012.4051V7.66773C7.69749%207.58794%204.55355%209.5106%204.4751%2010.9358C4.37935%2012.6751%205.79276%2013.2039%206.58731%2013.4C8.85327%2012.291%2012.2992%2012.4849%2013.9448%2012.4051Z\x27%20fill=\x27%23FF0404\x27/%3e%3cpath%20d=\x27M17.1662%2012.4051V7.66773C25.8431%208.30599%2026.4361%209.36408%2027.0345%209.86275C27.3907%2010.1596%2027.4737%2011.5902%2026.9303%2012.1336L25.347%2013.4669C23.0588%2012.0143%2019.0412%2012.4549%2017.1662%2012.4051Z\x27%20fill=\x27%23FF0404\x27/%3e%3cpath%20d=\x27M20.7168%2016.3645C26.9242%2015.9815%2029.0479%2013.2927%2029.3338%2011.9961V17.5613C29.3338%2020.689%2023.3763%2021.4576%2020.3976%2021.4509V23.6251L17.1662%2018.8578L20.7168%2014.1504V16.3645Z\x27%20fill=\x27%23FF0404\x27/%3e%3c/svg%3e\x22)\x209\x206,auto}.bmv-container\x20canvas.--walk{cursor:url(\x22data:image/svg+xml,%3csvg%20width=\x2732\x27%20height=\x2732\x27%20viewBox=\x270%200%2032%2032\x27%20fill=\x27none\x27%20xmlns=\x27http://www.w3.org/2000/svg\x27%3e%3cg%20clip-path=\x27url(%23clip0_26063_14706)\x27%3e%3cline%20x1=\x2723.3285\x27%20y1=\x279.91956\x27%20x2=\x2723.3285\x27%20y2=\x2729.3779\x27%20stroke=\x27%23009AD9\x27%20stroke-width=\x270.666667\x27/%3e%3cpath%20d=\x27M12.8778%206.81251C13.155%206.48557%2015.7068%207.0005%2016.4242%207.15297C16.5443%207.1785%2016.6452%207.25488%2016.7048%207.36226L17.469%208.74031L18.8417%2012.0587C18.8655%2012.1161%2018.9002%2012.1667%2018.9463%2012.2083C19.3338%2012.5587%2021.2997%2014.2996%2023.1877%2015.2987C23.247%2015.3301%2023.2994%2015.374%2023.3353%2015.4306C24.0166%2016.5078%2022.8573%2017.6058%2022.0778%2017.3458C20.0778%2016.4123%2017.7664%2014.5463%2017.4111%2014.2793C17.0559%2014.0123%2016.7099%2013.7823%2016.7099%2013.7823L16.7099%2016.3176C16.7099%2016.4033%2016.7356%2016.4871%2016.7836%2016.5582L19.3694%2020.3849L20.0615%2021.5843C20.0723%2021.6031%2020.0805%2021.6194%2020.0883%2021.6396C20.2404%2022.0297%2021.991%2026.526%2022.7389%2028.6731C22.817%2028.8971%2022.6953%2029.1402%2022.4702%2029.2152L20.4402%2029.8919C20.2335%2029.9608%2020.008%2029.864%2019.9154%2029.6668L17.0312%2023.5219C17.0179%2023.4935%2017.0014%2023.4666%2016.9822%2023.4418L14.7444%2020.546C14.7444%2023.1456%2012.1313%2024.6141%2010.8415%2029.8655C10.7855%2030.0936%2010.5598%2030.2409%2010.3299%2030.193L7.9617%2029.6996C7.73072%2029.6515%207.58103%2029.4264%207.63672%2029.1971C8.21556%2026.8141%209.68859%2024.0784%209.91503%2023.6658C9.93517%2023.6291%209.94905%2023.5918%209.95813%2023.5509L11.2778%2017.6126L11.4106%2016.2847L11.4112%2016.2781C11.426%2016.1611%2012.5569%207.19094%2012.8778%206.81251Z\x27%20fill=\x27%230E416C\x27/%3e%3cpath%20d=\x27M11.2778%2017.6126L12.7381%2019.2058C12.7424%2019.2104%2012.7464%2019.2146%2012.7508%2019.2189C12.8218%2019.2879%2013.4863%2019.9169%2014.7444%2020.546M11.2778%2017.6126L9.95813%2023.5509C9.94905%2023.5918%209.93517%2023.6291%209.91503%2023.6658C9.68859%2024.0784%208.21556%2026.8141%207.63672%2029.1971C7.58103%2029.4264%207.73072%2029.6515%207.9617%2029.6996L10.3299%2030.193C10.5598%2030.2409%2010.7855%2030.0936%2010.8415%2029.8655C12.1313%2024.6141%2014.7444%2023.1456%2014.7444%2020.546M11.2778%2017.6126L11.4106%2016.2847C11.4109%2016.2811%2011.4108%2016.2818%2011.4112%2016.2781C11.426%2016.1611%2012.5569%207.19094%2012.8778%206.81251C13.155%206.48557%2015.7068%207.0005%2016.4242%207.15297C16.5443%207.1785%2016.6452%207.25488%2016.7048%207.36226L17.469%208.74031M17.469%208.74031L17.4111%209.8792L16.7099%2013.7823M17.469%208.74031L18.8417%2012.0587C18.8655%2012.1161%2018.9002%2012.1667%2018.9463%2012.2083C19.3338%2012.5587%2021.2997%2014.2996%2023.1877%2015.2987C23.247%2015.3301%2023.2994%2015.374%2023.3353%2015.4306C24.0166%2016.5078%2022.8573%2017.6058%2022.0778%2017.3458C20.0778%2016.4123%2017.7664%2014.5463%2017.4111%2014.2793C17.0559%2014.0123%2016.7099%2013.7823%2016.7099%2013.7823M16.7099%2013.7823L16.7099%2016.3176C16.7099%2016.4033%2016.7356%2016.4871%2016.7836%2016.5582L19.3694%2020.3849L20.0615%2021.5843C20.0723%2021.6031%2020.0805%2021.6194%2020.0883%2021.6396C20.2404%2022.0297%2021.991%2026.526%2022.7389%2028.6731C22.817%2028.8971%2022.6953%2029.1402%2022.4702%2029.2152L20.4402%2029.8919C20.2335%2029.9608%2020.008%2029.864%2019.9154%2029.6668L17.0312%2023.5219C17.0179%2023.4935%2017.0014%2023.4666%2016.9822%2023.4418L14.7444%2020.546\x27%20stroke=\x27white\x27%20stroke-width=\x270.666667\x27/%3e%3ccircle%20cx=\x2715.5617\x27%20cy=\x274.22796\x27%20r=\x272.66495\x27%20transform=\x27rotate(-16.3858%2015.5617%204.22796)\x27%20fill=\x27%230E416C\x27%20stroke=\x27white\x27%20stroke-width=\x270.666667\x27/%3e%3cpath%20d=\x27M10.9707%207.82574C10.2439%207.72276%209.55317%208.17393%209.35537%208.88087L7.94623%2013.9171C7.64625%2014.9892%208.39362%2016.0704%209.50259%2016.1685C10.437%2016.2512%2011.2751%2015.594%2011.4177%2014.6668L12.2125%209.49788C12.3364%208.69198%2011.778%207.94012%2010.9707%207.82574Z\x27%20fill=\x27%23FF0404\x27%20stroke=\x27white\x27%20stroke-width=\x270.333333\x27/%3e%3cpath%20d=\x27M6.66699%2029.7891H26.667\x27%20stroke=\x27%230E416C\x27%20stroke-width=\x270.815293\x27%20stroke-linecap=\x27round\x27/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id=\x27clip0_26063_14706\x27%3e%3crect%20width=\x2732\x27%20height=\x2732\x27%20fill=\x27white\x27/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e\x22)\x209\x2032,auto}.bmv-container\x20canvas.--look_around{cursor:url(\x22data:image/svg+xml,%3csvg%20width=\x2732\x27%20height=\x2732\x27%20viewBox=\x270%200%2032%2032\x27%20fill=\x27none\x27%20xmlns=\x27http://www.w3.org/2000/svg\x27%3e%3ccircle%20cx=\x2719.1257\x27%20cy=\x2716.8745\x27%20r=\x279.27195\x27%20fill=\x27white\x27%20stroke=\x27%230E416C\x27%20stroke-width=\x271.87157\x27/%3e%3cpath%20d=\x27M25.7328%2018.1664C25.7328%2021.2446%2023.2375%2023.7399%2020.1594%2023.7399C17.0812%2023.7399%2014.5859%2021.2446%2014.5859%2018.1664C14.5859%2015.0883%2017.0812%2012.593%2020.1594%2012.593C23.2375%2012.593%2025.7328%2015.0883%2025.7328%2018.1664Z\x27%20fill=\x27%23009AD9\x27/%3e%3ccircle%20cx=\x2718.7656\x27%20cy=\x2717.3535\x27%20r=\x272\x27%20fill=\x27white\x27/%3e%3cpath%20d=\x27M10.1209%2016.3411L10.1209%2017.0493L10.6662%2016.5983L10.6663%2016.5982L10.6665%2016.5981L10.6667%2016.5979L10.6668%2016.5979L10.671%2016.5944L10.692%2016.5779C10.7115%2016.5628%2010.7422%2016.5396%2010.7839%2016.5094C10.8674%2016.4491%2010.9954%2016.361%2011.168%2016.2543C11.5131%2016.0409%2012.0365%2015.7532%2012.7393%2015.4644C14.1442%2014.8872%2016.269%2014.3045%2019.1253%2014.3045C21.524%2014.3045%2023.6166%2014.8846%2025.1117%2015.4667C25.8586%2015.7575%2026.4543%2016.0481%2026.8619%2016.265C27.0656%2016.3735%2027.2222%2016.4634%2027.3269%2016.5257C27.3793%2016.5569%2027.4187%2016.5811%2027.4446%2016.5973L27.4732%2016.6153L27.4797%2016.6195L27.481%2016.6203L27.4811%2016.6203L27.4812%2016.6204L27.4812%2016.6204L27.4812%2016.6204L27.9964%2016.9563L27.9964%2016.3411C27.9964%2015.2397%2027.6383%2014.1664%2027.2386%2013.2014C26.8235%2012.1994%2026.0831%2011.1627%2025.3267%2010.4063C24.5521%209.63166%2023.2394%208.8981%2022.265%208.49451C21.2471%208.07286%2020.1689%208.00331%2019.1253%208.00331C18.0479%208.00331%2016.981%208.21553%2015.9856%208.62784C15.0113%209.03143%2013.6986%209.76499%2012.9239%2010.5397C12.2022%2011.2614%2011.3041%2012.1746%2010.8788%2013.2014C10.479%2014.1664%2010.1209%2015.2397%2010.1209%2016.3411Z\x27%20fill=\x27%230E416C\x27%20stroke=\x27%230E416C\x27%20stroke-width=\x270.666667\x27/%3e%3cpath%20d=\x27M11.3837%2015.2598L3.21777%2014.5817\x27%20stroke=\x27%230E416C\x27%20stroke-width=\x271.87157\x27%20stroke-linecap=\x27round\x27/%3e%3cpath%20d=\x27M12.7283%2014.4792L5.12402%2011.4833\x27%20stroke=\x27%230E416C\x27%20stroke-width=\x271.87157\x27%20stroke-linecap=\x27round\x27/%3e%3cpath%20d=\x27M14.1279%2013.9739L7.72754%208.8465\x27%20stroke=\x27%230E416C\x27%20stroke-width=\x271.87157\x27%20stroke-linecap=\x27round\x27/%3e%3c/svg%3e\x22)\x2018\x2017,auto}.bmv-container\x20canvas.--pan{cursor:url(\x22data:image/svg+xml,%3csvg%20width=\x2732\x27%20height=\x2732\x27%20viewBox=\x270%200%2032%2032\x27%20fill=\x27none\x27%20xmlns=\x27http://www.w3.org/2000/svg\x27%3e%3cg%20clip-path=\x27url(%23clip0_26063_14703)\x27%3e%3cpath%20fill-rule=\x27evenodd\x27%20clip-rule=\x27evenodd\x27%20d=\x27M19.2285%203.23553C19.2286%202.94482%2019.5426%202.76257%2019.795%202.90681L26.0946%206.50662C26.349%206.65198%2026.349%207.01876%2026.0946%207.16411L19.795%2010.7639C19.5426%2010.9081%2019.2285%2010.7258%2019.2285%2010.4351L19.2285%209.0139L15.1075%209.01393C14.8983%209.01393%2014.7288%208.84442%2014.7288%208.63531L14.7287%205.03552C14.7287%204.8264%2014.8983%204.65688%2015.1074%204.65688L19.2285%204.65684L19.2285%203.23553Z\x27%20fill=\x27%23FF0404\x27/%3e%3cpath%20d=\x27M19.2285%203.23553L19.4629%203.23554L19.2285%203.23553ZM19.795%202.90681L19.9113%202.70334L19.795%202.90681ZM26.0946%206.50662L25.9783%206.71009L26.0946%206.50662ZM26.0946%207.16411L26.2109%207.36758L26.0946%207.16411ZM19.795%2010.7639L19.6787%2010.5604L19.795%2010.7639ZM19.2285%2010.4351L18.9942%2010.4351L19.2285%2010.4351ZM19.2285%209.0139L19.4629%209.01391L19.4629%208.77955L19.2285%208.77956L19.2285%209.0139ZM15.1075%209.01393L15.1075%208.77958L15.1075%208.77958L15.1075%209.01393ZM14.7288%208.63531L14.9632%208.6353L14.7288%208.63531ZM14.7287%205.03552L14.4944%205.03552L14.7287%205.03552ZM15.1074%204.65688L15.1074%204.42253L15.1074%204.42253L15.1074%204.65688ZM19.2285%204.65684L19.2285%204.89119L19.4628%204.89119L19.4628%204.65686L19.2285%204.65684ZM19.4629%203.23554C19.4629%203.12476%2019.5826%203.05532%2019.6788%203.11028L19.9113%202.70334C19.5027%202.46983%2018.9942%202.76487%2018.9942%203.23552L19.4629%203.23554ZM19.6788%203.11028L25.9783%206.71009L26.2109%206.30315L19.9113%202.70334L19.6788%203.11028ZM25.9783%206.71009C26.0752%206.76548%2026.0752%206.90525%2025.9783%206.96064L26.2109%207.36758C26.6227%207.13226%2026.6227%206.53847%2026.2109%206.30315L25.9783%206.71009ZM25.9783%206.96064L19.6787%2010.5604L19.9113%2010.9673L26.2109%207.36758L25.9783%206.96064ZM19.6787%2010.5604C19.5825%2010.6154%2019.4628%2010.5459%2019.4629%2010.4351L18.9942%2010.4351C18.9941%2010.9058%2019.5026%2011.2008%2019.9113%2010.9673L19.6787%2010.5604ZM19.4629%2010.4351L19.4629%209.01391L18.9942%209.0139L18.9942%2010.4351L19.4629%2010.4351ZM19.2285%208.77956L15.1075%208.77958L15.1075%209.24828L19.2285%209.24825L19.2285%208.77956ZM15.1075%208.77958C15.0278%208.77958%2014.9632%208.71498%2014.9632%208.6353L14.4945%208.63531C14.4945%208.97385%2014.7689%209.24828%2015.1075%209.24828L15.1075%208.77958ZM14.9632%208.6353L14.9631%205.03551L14.4944%205.03552L14.4945%208.63531L14.9632%208.6353ZM14.9631%205.03551C14.9631%204.95583%2015.0277%204.89123%2015.1074%204.89123L15.1074%204.42253C14.7688%204.42253%2014.4944%204.69698%2014.4944%205.03552L14.9631%205.03551ZM15.1074%204.89123L19.2285%204.89119L19.2285%204.42249L15.1074%204.42253L15.1074%204.89123ZM19.4628%204.65686L19.4629%203.23554L18.9942%203.23552L18.9941%204.65683L19.4628%204.65686Z\x27%20fill=\x27white\x27/%3e%3cpath%20fill-rule=\x27evenodd\x27%20clip-rule=\x27evenodd\x27%20d=\x27M10.3672%2010.435C10.3671%2010.7257%2010.0531%2010.908%209.80066%2010.7637L3.50112%207.16391C3.24675%207.01855%203.24675%206.65178%203.50112%206.50642L9.80071%202.90667C10.0531%202.76243%2010.3672%202.9447%2010.3672%203.23542L10.3672%204.65663L14.4882%204.6566C14.6974%204.6566%2014.8669%204.82612%2014.8669%205.03523L14.867%208.63501C14.867%208.84413%2014.6974%209.01365%2014.4883%209.01365L10.3672%209.01369L10.3672%2010.435Z\x27%20fill=\x27%23FF0404\x27/%3e%3cpath%20d=\x27M10.3672%2010.435L10.1328%2010.435L10.3672%2010.435ZM9.80066%2010.7637L9.68439%2010.9672L9.80066%2010.7637ZM3.50112%207.16391L3.61739%206.96044L3.50112%207.16391ZM3.50112%206.50642L3.38485%206.30295L3.50112%206.50642ZM9.80071%202.90667L9.91698%203.11014L9.80071%202.90667ZM10.3672%203.23542L10.6015%203.23542L10.3672%203.23542ZM10.3672%204.65663L10.1328%204.65663L10.1328%204.89098L10.3672%204.89098L10.3672%204.65663ZM14.4882%204.6566L14.4882%204.89095L14.4882%204.89095L14.4882%204.6566ZM14.8669%205.03523L14.6325%205.03523L14.8669%205.03523ZM14.867%208.63501L15.1013%208.63501L14.867%208.63501ZM14.4883%209.01365L14.4883%209.248L14.4883%209.248L14.4883%209.01365ZM10.3672%209.01369L10.3672%208.77934L10.1329%208.77934L10.1329%209.01368L10.3672%209.01369ZM10.1328%2010.435C10.1328%2010.5458%2010.0131%2010.6152%209.91694%2010.5603L9.68439%2010.9672C10.093%2011.2007%2010.6015%2010.9057%2010.6015%2010.435L10.1328%2010.435ZM9.91694%2010.5603L3.61739%206.96044L3.38484%207.36738L9.68439%2010.9672L9.91694%2010.5603ZM3.61739%206.96044C3.52046%206.90505%203.52046%206.76528%203.61739%206.70989L3.38485%206.30295C2.97304%206.53827%202.97304%207.13206%203.38484%207.36738L3.61739%206.96044ZM3.61739%206.70989L9.91698%203.11014L9.68445%202.7032L3.38485%206.30295L3.61739%206.70989ZM9.91698%203.11014C10.0132%203.05518%2010.1329%203.12463%2010.1329%203.23542L10.6015%203.23542C10.6016%202.76476%2010.0931%202.46969%209.68445%202.7032L9.91698%203.11014ZM10.1329%203.23542L10.1328%204.65663L10.6015%204.65663L10.6015%203.23542L10.1329%203.23542ZM10.3672%204.89098L14.4882%204.89095L14.4882%204.42225L10.3672%204.42228L10.3672%204.89098ZM14.4882%204.89095C14.5679%204.89095%2014.6325%204.95555%2014.6325%205.03523L15.1012%205.03522C15.1012%204.69669%2014.8268%204.42225%2014.4882%204.42225L14.4882%204.89095ZM14.6325%205.03523L14.6326%208.63502L15.1013%208.63501L15.1012%205.03522L14.6325%205.03523ZM14.6326%208.63502C14.6326%208.7147%2014.568%208.7793%2014.4883%208.7793L14.4883%209.248C14.8269%209.248%2015.1013%208.97355%2015.1013%208.63501L14.6326%208.63502ZM14.4883%208.7793L10.3672%208.77934L10.3672%209.24804L14.4883%209.248L14.4883%208.7793ZM10.1329%209.01368L10.1328%2010.435L10.6015%2010.435L10.6016%209.0137L10.1329%209.01368Z\x27%20fill=\x27white\x27/%3e%3cpath%20d=\x27M26.4435%2023.1815C26.4435%2024.964%2022.8774%2029.0001%2019.9887%2029.0001C15.0515%2029.0001%2014.9684%2025.8074%208.61565%2017.1432C8.21285%2016.4491%208.18972%2014.7256%2010.3529%2015.4428C10.9883%2015.6535%2013.2564%2017.2705%2013.2564%2017.2705L13.453%208.93019C13.453%207.19617%2016.4606%207.1951%2016.4606%208.93019L16.5184%2014.5752C16.5184%2014.5752%2017.2734%2013.0253%2018.5081%2013.1409C19.7335%2013.2556%2019.9922%2014.565%2019.9776%2015.1282C19.9944%2014.8437%2020.5126%2014.1149%2021.4983%2014.1149C23.2389%2014.1149%2023.0958%2015.844%2023.112%2017.0045C23.1165%2017.3283%2023.66%2015.8556%2024.7334%2015.8556C25.8069%2015.8556%2026.3836%2016.383%2026.3836%2017.1432L26.4435%2023.1815Z\x27%20fill=\x27%23DCEDF9\x27%20stroke=\x27%230E416C\x27/%3e%3cpath%20d=\x27M13.4646%208.78125C13.4646%208.64517%2013.4968%208.50725%2013.5634%208.37438C13.6302%208.24102%2013.7315%208.11308%2013.8671%208.00098C14.0029%207.88876%2014.1688%207.79589%2014.3574%207.73132C14.5459%207.66677%2014.7503%207.63281%2014.9584%207.63281C15.1664%207.63281%2015.3709%207.66677%2015.5594%207.73132C15.7479%207.79589%2015.9138%207.88876%2016.0496%208.00098C16.1852%208.11308%2016.2865%208.24102%2016.3533%208.37438C16.4199%208.50725%2016.4521%208.64517%2016.4521%208.78125\x27%20stroke=\x27white\x27/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id=\x27clip0_26063_14703\x27%3e%3crect%20width=\x2732\x27%20height=\x2732\x27%20fill=\x27white\x27/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e\x22)\x209\x206,auto}.bmv-container\x20canvas.--tape_measure_guides{cursor:url(\x22data:image/svg+xml,%3csvg%20width=\x2732\x27%20height=\x2732\x27%20viewBox=\x270%200%2032%2032\x27%20fill=\x27none\x27%20xmlns=\x27http://www.w3.org/2000/svg\x27%3e%3cpath%20d=\x27M16.1913%2023.2415L8.49512%2027.6847\x27%20stroke=\x27%230E416C\x27%20stroke-width=\x271.66667\x27/%3e%3cpath%20d=\x27M8.08105%2027.0331L10.0186%2030.3247\x27%20stroke=\x27%230E416C\x27%20stroke-width=\x270.666667\x27%20stroke-linecap=\x27round\x27/%3e%3cpath%20d=\x27M28.7591%2017.3672L17.176%2024.0547L16.0823%2022.1603L16.7814%2021.0419C14.6102%2020.4479%2012.1465%2017.8573%2011.3984%2016.5892C8.92142%2011.399%2011.0146%208.74393%2012.3708%208.06516C14.2757%207.19791%2018.5366%205.20297%2020.3408%204.1613C22.145%203.11964%2023.559%204.38816%2024.0405%205.15262L29.4155%2014.4624C30.3238%2016.0357%2029.3564%2017.0545%2028.7591%2017.3672Z\x27%20fill=\x27%23DCEDF9\x27/%3e%3cpath%20d=\x27M17.176%2024.0547L16.4543%2024.4714L16.871%2025.1931L17.5927%2024.7764L17.176%2024.0547ZM28.7591%2017.3672L28.3725%2016.629L28.3573%2016.637L28.3425%2016.6456L28.7591%2017.3672ZM24.0405%205.15262L24.7622%204.73596L24.7541%204.72208L24.7456%204.70853L24.0405%205.15262ZM12.3708%208.06516L12.0255%207.30673L12.0115%207.31309L11.9978%207.31995L12.3708%208.06516ZM11.3984%2016.5892L10.6463%2016.9481L10.6621%2016.9812L10.6807%2017.0127L11.3984%2016.5892ZM16.7814%2021.0419L17.4881%2021.4836L18.0819%2020.5337L17.0013%2020.2381L16.7814%2021.0419ZM16.0823%2022.1603L15.3757%2021.7186L15.1102%2022.1433L15.3606%2022.577L16.0823%2022.1603ZM17.5927%2024.7764L29.1758%2018.0889L28.3425%2016.6456L16.7594%2023.3331L17.5927%2024.7764ZM29.1457%2018.1055C29.5801%2017.878%2030.1296%2017.4125%2030.4219%2016.7062C30.7333%2015.9536%2030.708%2015.0344%2030.1372%2014.0457L28.6938%2014.8791C29.0313%2015.4637%2028.9764%2015.8405%2028.8819%2016.0689C28.7682%2016.3435%2028.5354%2016.5437%2028.3725%2016.629L29.1457%2018.1055ZM30.1372%2014.0457L24.7622%204.73596L23.3188%205.56929L28.6938%2014.8791L30.1372%2014.0457ZM24.7456%204.70853C24.4368%204.21826%2023.8459%203.58088%2023.0235%203.21744C22.1574%202.83467%2021.0716%202.77714%2019.9241%203.43962L20.7575%204.88299C21.4143%204.5038%2021.9376%204.5597%2022.3498%204.74188C22.8058%204.94341%2023.1626%205.32252%2023.3353%205.59672L24.7456%204.70853ZM19.9241%203.43962C18.1614%204.45733%2013.9395%206.43533%2012.0255%207.30673L12.7161%208.82359C14.6119%207.96048%2018.9118%205.94862%2020.7575%204.88299L19.9241%203.43962ZM11.9978%207.31995C11.1068%207.7659%2010.0888%208.79097%209.64349%2010.415C9.19473%2012.0515%209.34468%2014.2207%2010.6463%2016.9481L12.1505%2016.2303C10.9751%2013.7675%2010.9332%2012.0141%2011.2508%2010.8558C11.5719%209.68504%2012.2786%209.04319%2012.7438%208.81037L11.9978%207.31995ZM10.6807%2017.0127C11.1107%2017.7415%2011.9769%2018.7705%2012.9996%2019.6885C14.015%2020.5999%2015.2899%2021.4978%2016.5616%2021.8457L17.0013%2020.2381C16.1018%2019.992%2015.0592%2019.2976%2014.1129%2018.4482C13.1739%2017.6053%2012.4342%2016.705%2012.1161%2016.1658L10.6807%2017.0127ZM16.0748%2020.6001L15.3757%2021.7186L16.7889%2022.602L17.4881%2021.4836L16.0748%2020.6001ZM15.3606%2022.577L16.4543%2024.4714L17.8977%2023.6381L16.804%2021.7436L15.3606%2022.577Z\x27%20fill=\x27%230E416C\x27/%3e%3ccircle%20cx=\x2719.2275\x27%20cy=\x2713.4857\x27%20r=\x274.29486\x27%20fill=\x27%23FF0404\x27/%3e%3cpath%20d=\x27M9.06018%2016.866L9.63005%2014.853C9.63005%2014.853%2010.7239%2018.9286%2013.8768%2020.4334L12.9199%2021.3012C10.7369%2020.3868%209.43717%2017.9634%209.06018%2016.866Z\x27%20stroke=\x27%230E416C\x27%20stroke-width=\x270.666667\x27%20stroke-linecap=\x27round\x27/%3e%3cpath%20fill-rule=\x27evenodd\x27%20clip-rule=\x27evenodd\x27%20d=\x27M5.33398%205.33313V7.9998H4.00065V5.33313H1.33398V3.9998H4.00065V1.33313L5.33398%201.33313V3.9998H8.00065V5.33313H5.33398ZM5.33398%2013.3331V9.33313H4.00065L4.00065%2013.3331H5.33398ZM5.33398%2014.6665V18.6665H4.00065L4.00065%2014.6665H5.33398Z\x27%20fill=\x27%23FF0404\x27/%3e%3c/svg%3e\x22)\x2010\x2030,auto}.bmv-container\x20canvas.--explode{cursor:url(\x22data:image/svg+xml,%3c?xml%20version=\x271.0\x27%20standalone=\x27no\x27?%3e%3c!DOCTYPE%20svg%20PUBLIC%20\x27-//W3C//DTD%20SVG%201.1//EN\x27%20\x27http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\x27%3e%3csvg%20t=\x271764057866747\x27%20class=\x27icon\x27%20viewBox=\x270%200%201024%201024\x27%20version=\x271.1\x27%20xmlns=\x27http://www.w3.org/2000/svg\x27%20p-id=\x275422\x27%20width=\x2732\x27%20height=\x2732\x27%20xmlns:xlink=\x27http://www.w3.org/1999/xlink\x27%3e%3cpath%20d=\x27M517.688889%20455.111111l-79.644445-207.644444c-2.844444-5.688889-8.533333-11.377778-14.222222-14.222223-5.688889-2.844444-14.222222%200-19.911111%205.688889l-190.577778%20190.577778c-5.688889%205.688889-8.533333%2014.222222-5.688889%2022.755556l79.644445%20207.644444c2.844444%205.688889%208.533333%2011.377778%2014.222222%2014.222222h5.688889c5.688889%200%2011.377778-2.844444%2014.222222-5.688889l190.577778-190.577777c5.688889-5.688889%208.533333-14.222222%205.688889-22.755556z%20m-201.955556%20159.288889l-62.577777-162.133333%20156.444444-156.444445%2062.577778%20162.133334-156.444445%20156.444444zM802.133333%20617.244444v-2.844444-5.688889l-2.844444-2.844444s0-2.844444-2.844445-2.844445c0%200-2.844444%200-2.844444-2.844444%200%200-2.844444-2.844444-5.688889-2.844445l-207.644444-79.644444H571.733333%20563.2l-2.844444%202.844444s-2.844444%200-2.844445%202.844445l-190.577778%20190.577778s0%202.844444-2.844444%202.844444l-2.844445%202.844444v14.222223c0%202.844444%202.844444%202.844444%202.844445%205.688889v2.844444s2.844444%202.844444%205.688889%202.844444c0%200%202.844444%200%202.844444%202.844445l207.644445%2079.644444h8.533333c5.688889%200%2011.377778-2.844444%2014.222222-5.688889l190.577778-190.577777c0-2.844444%202.844444-2.844444%202.844444-5.688889v-2.844445c5.688889-2.844444%205.688889-2.844444%205.688889-5.688889z%20m-219.022222%20164.977778l-162.133333-62.577778%20156.444444-156.444444L739.555556%20625.777778l-156.444445%20156.444444zM827.733333%20506.311111l-79.644444-207.644444c-2.844444-5.688889-5.688889-11.377778-11.377778-11.377778l-207.644444-79.644445c-8.533333-2.844444-17.066667%200-22.755556%205.688889-5.688889%205.688889-8.533333%2014.222222-5.688889%2022.755556l79.644445%20207.644444c2.844444%205.688889%205.688889%208.533333%2011.377777%2011.377778l207.644445%2079.644445c2.844444%200%205.688889%202.844444%208.533333%202.844444h8.533334s2.844444%200%202.844444-2.844444l8.533333-8.533334v-2.844444c2.844444-8.533333%202.844444-14.222222%200-17.066667z%20m-210.488889-88.177778l-59.733333-153.6%20153.6%2059.733334%2059.733333%20153.6-153.6-59.733334z\x27%20fill=\x27%23444444\x27%20p-id=\x275423\x27%3e%3c/path%3e%3c/svg%3e\x22)\x2010\x2030,auto}.bmv-container\x20canvas.--freehand{cursor:url(\x22data:image/svg+xml,%3csvg%20width=\x2732\x27%20height=\x2732\x27%20viewBox=\x270%200%2032%2032\x27%20fill=\x27none\x27%20xmlns=\x27http://www.w3.org/2000/svg\x27%3e%3cpath%20d=\x27M11.5574%202.33334C11.5574%202.33334%2014.849%202.49999%2014.1823%204.41668C13.0648%207.6296%209.9849%204.64322%206.68243%204.66668C4.32758%204.6834%204.09239%207.15067%205.89077%207.66668C7.73278%208.15141%2011.6309%208.36309%2010.4034%2010.2218C8.63761%2012.8957%204.63267%208.29057%202.93235%209.79168C1.59125%2010.9757%203.25586%2012.4868%204.18229%2012.7917\x27%20stroke=\x27%230E416C\x27%20stroke-width=\x271.33333\x27%20stroke-linecap=\x27round\x27/%3e%3cpath%20fill-rule=\x27evenodd\x27%20clip-rule=\x27evenodd\x27%20d=\x27M12.8689%2023.391L28.5256%207.66962L29.0905%207.10468C30.3224%205.87274%2026.1118%201.65545%2024.8765%202.89067C24.351%203.41616%2024.3656%203.40152%2024.3656%203.40152L8.58301%2019.1051L12.8689%2023.391ZM26.0723%207.75337L27.3386%206.4839C27.9042%205.91836%2026.059%204.06651%2025.4907%204.63479L24.2206%205.90167L26.0723%207.75337ZM25.4636%208.36365L23.6104%206.5104L22.3968%207.72089L24.2531%209.57719L25.4636%208.36365ZM21.7866%208.32963L10.1913%2019.8957L12.0783%2021.7827L23.6444%2010.1875L21.7866%208.32963Z\x27%20fill=\x27%23FF0404\x27/%3e%3cpath%20d=\x27M10.1913%2019.8957L21.7866%208.32963L23.6444%2010.1875L12.0783%2021.7827L10.1913%2019.8957Z\x27%20fill=\x27white\x27/%3e%3cpath%20d=\x27M23.6104%206.5104L25.4636%208.36365L24.2531%209.57719L22.3968%207.72089L23.6104%206.5104Z\x27%20fill=\x27white\x27/%3e%3cpath%20d=\x27M27.3386%206.4839L26.0723%207.75337L24.2206%205.90167L25.4907%204.63479C26.059%204.06651%2027.9042%205.91836%2027.3386%206.4839Z\x27%20fill=\x27white\x27/%3e%3cpath%20d=\x27M2.66699%2029.3333L12.3793%2023.6202L8.3801%2019.621L2.66699%2029.3333Z\x27%20fill=\x27%230E416C\x27/%3e%3c/svg%3e\x22)\x204\x2030,auto}.bmv-container\x20canvas.--pencil{cursor:url(\x22data:image/svg+xml,%3csvg%20width=\x2732\x27%20height=\x2732\x27%20viewBox=\x270%200%2032%2032\x27%20fill=\x27none\x27%20xmlns=\x27http://www.w3.org/2000/svg\x27%3e%3cpath%20fill-rule=\x27evenodd\x27%20clip-rule=\x27evenodd\x27%20d=\x27M12.8669%2023.391L28.5236%207.66962L29.0885%207.10468C30.3204%205.87274%2026.1098%201.65545%2024.8745%202.89067C24.349%203.41616%2024.3637%203.40152%2024.3637%203.40152L8.58105%2019.1051L12.8669%2023.391ZM26.0704%207.75337L27.3367%206.4839C27.9022%205.91836%2026.0571%204.06651%2025.4888%204.63479L24.2187%205.90167L26.0704%207.75337ZM25.4617%208.36365L23.6084%206.5104L22.3949%207.72089L24.2512%209.57719L25.4617%208.36365ZM21.7846%208.32963L10.1893%2019.8957L12.0764%2021.7827L23.6424%2010.1875L21.7846%208.32963Z\x27%20fill=\x27%23FF0404\x27/%3e%3cpath%20d=\x27M10.1893%2019.8957L21.7846%208.32963L23.6424%2010.1875L12.0764%2021.7827L10.1893%2019.8957Z\x27%20fill=\x27white\x27/%3e%3cpath%20d=\x27M23.6084%206.5104L25.4617%208.36365L24.2512%209.57719L22.3949%207.72089L23.6084%206.5104Z\x27%20fill=\x27white\x27/%3e%3cpath%20d=\x27M27.3367%206.4839L26.0704%207.75337L24.2187%205.90167L25.4888%204.63479C26.0571%204.06651%2027.9022%205.91836%2027.3367%206.4839Z\x27%20fill=\x27white\x27/%3e%3cpath%20d=\x27M2.66406%2029.3333L12.3763%2023.6202L8.37717%2019.621L2.66406%2029.3333Z\x27%20fill=\x27%230E416C\x27/%3e%3c/svg%3e\x22)\x204\x2030,auto}.bmv-container\x20canvas.--label{cursor:url(\x22data:image/svg+xml,%3csvg%20width=\x2732\x27%20height=\x2732\x27%20viewBox=\x270%200%2032%2032\x27%20fill=\x27none\x27%20xmlns=\x27http://www.w3.org/2000/svg\x27%3e%3crect%20x=\x278.37012\x27%20y=\x272.62378\x27%20width=\x2720.9632\x27%20height=\x2718.7096\x27%20rx=\x270.5\x27%20fill=\x27white\x27%20stroke=\x27%230E416C\x27%20stroke-width=\x271.25\x27/%3e%3cpath%20fill-rule=\x27evenodd\x27%20clip-rule=\x27evenodd\x27%20d=\x27M17.4701%2013.4517C17.4226%2013.3249%2017.3731%2013.2457%2017.3216%2013.214C17.2701%2013.1823%2017.1652%2013.1665%2017.0068%2013.1665H14.8919C14.7335%2013.1665%2014.6245%2013.1942%2014.5651%2013.2497C14.5057%2013.3051%2014.4285%2013.4556%2014.3335%2013.7012L13.9889%2014.616C13.9572%2014.7032%2013.9414%2014.7863%2013.9414%2014.8655C13.9414%2015.119%2014.0958%2015.2457%2014.4047%2015.2457C14.484%2015.2457%2014.5968%2015.2378%2014.7434%2015.222C14.8899%2015.2061%2014.9988%2015.1982%2015.0701%2015.1982C15.3949%2015.1982%2015.5572%2015.3368%2015.5572%2015.6141C15.5572%2015.8755%2015.379%2016.0061%2015.0226%2016.0061C14.9592%2016.0061%2014.8721%2015.9982%2014.7612%2015.9824L14.1671%2015.8992C14.0562%2015.8834%2013.874%2015.8755%2013.6206%2015.8755C13.3433%2015.8755%2013.1493%2015.8834%2013.0384%2015.8992L12.5394%2015.9705C12.3176%2016.0022%2012.1552%2016.018%2012.0522%2016.018C11.7433%2016.018%2011.5889%2015.8873%2011.5889%2015.6259C11.5889%2015.3487%2011.7394%2015.2101%2012.0404%2015.2101C12.1037%2015.2101%2012.1513%2015.2141%2012.1829%2015.222H12.3374C12.5513%2015.222%2012.7136%2015.1388%2012.8245%2014.9725C12.8721%2014.9091%2012.9513%2014.723%2013.0622%2014.414L15.2721%208.43774C15.3988%208.10506%2015.6483%207.93872%2016.0206%207.93872C16.385%207.93872%2016.6266%208.10506%2016.7454%208.43774L18.8721%2014.3309C19.0068%2014.7032%2019.1296%2014.9487%2019.2404%2015.0675C19.3513%2015.1863%2019.5098%2015.2457%2019.7157%2015.2457C19.7791%2015.2457%2019.8266%2015.2418%2019.8583%2015.2339C20.0801%2015.218%2020.191%2015.2101%2020.191%2015.2101C20.4919%2015.2101%2020.6424%2015.3368%2020.6424%2015.5903C20.6424%2015.8596%2020.4919%2015.9943%2020.191%2015.9943C20.1038%2015.9943%2019.989%2015.9863%2019.8464%2015.9705C19.3474%2015.9151%2018.9751%2015.8873%2018.7295%2015.8873C18.4365%2015.8873%2017.9612%2015.919%2017.3038%2015.9824C17.1374%2015.9982%2017.0107%2016.0061%2016.9236%2016.0061C16.6067%2016.0061%2016.4483%2015.8715%2016.4483%2015.6022C16.4483%2015.3329%2016.6226%2015.1982%2016.9711%2015.1982C17.0424%2015.1982%2017.1474%2015.2061%2017.286%2015.222C17.4246%2015.2378%2017.5295%2015.2457%2017.6008%2015.2457C17.8622%2015.2457%2017.9929%2015.1388%2017.9929%2014.9249C17.9929%2014.8933%2017.9612%2014.7903%2017.8979%2014.616L17.4701%2013.4517Z\x27%20fill=\x27%230E416C\x27/%3e%3cpath%20fill-rule=\x27evenodd\x27%20clip-rule=\x27evenodd\x27%20d=\x27M16.0124%208.8689L14.9193%2012.1481C14.9034%2012.1957%2014.8955%2012.2234%2014.8955%2012.2313C14.8955%2012.3026%2014.9549%2012.3382%2015.0737%2012.3382H16.9629C17.0579%2012.3382%2017.1054%2012.3066%2017.1054%2012.2432C17.1054%2012.2274%2017.0975%2012.1957%2017.0817%2012.1481L16.0124%208.8689Z\x27%20fill=\x27white\x27/%3e%3cpath%20fill-rule=\x27evenodd\x27%20clip-rule=\x27evenodd\x27%20d=\x27M23.721%209.72165C23.7131%209.31769%2023.6715%209.04838%2023.5962%208.91372C23.521%208.77907%2023.3725%208.71174%2023.1507%208.71174C23.0715%208.71174%2022.9566%208.72164%2022.8061%208.74144C22.6556%208.76125%2022.5408%208.77115%2022.4616%208.77115C22.1527%208.77115%2021.9982%208.63253%2021.9982%208.3553C21.9982%208.07807%2022.1447%207.93945%2022.4378%207.93945C22.5329%207.93945%2022.6814%207.94935%2022.8834%207.96916C23.0854%207.98896%2023.2418%207.99886%2023.3527%207.99886C23.6061%207.99886%2023.8161%207.99094%2023.9824%207.9751C24.2279%207.95133%2024.3784%207.93945%2024.4339%207.93945C24.6081%207.93945%2024.7151%207.99094%2024.7547%208.09391C24.7864%208.1652%2024.8022%208.28797%2024.8022%208.46223C24.8022%208.48599%2024.7982%208.58104%2024.7903%208.74738C24.7507%209.59492%2024.7309%2010.3632%2024.7309%2011.0524V12.395C24.7309%2012.6405%2024.7349%2012.9692%2024.7428%2013.3811C24.7586%2013.8801%2024.7666%2014.2088%2024.7666%2014.3673C24.7745%2014.9138%2024.9567%2015.1871%2025.3131%2015.1871C25.4002%2015.1871%2025.5309%2015.1772%2025.7052%2015.1574C25.8794%2015.1376%2026.0101%2015.1277%2026.0973%2015.1277C26.4775%2015.1277%2026.6676%2015.2663%2026.6676%2015.5435C26.6676%2015.8207%2026.4933%2015.9594%2026.1448%2015.9594C26.0101%2015.9594%2025.8834%2015.9514%2025.7646%2015.9356C25.0992%2015.8485%2024.5923%2015.8049%2024.2438%2015.8049C23.8953%2015.8049%2023.4675%2015.8405%2022.9606%2015.9118C22.6754%2015.9514%2022.4735%2015.9712%2022.3546%2015.9712C22.014%2015.9712%2021.8438%2015.8287%2021.8438%2015.5435C21.8438%2015.2663%2022.0378%2015.1277%2022.4259%2015.1277C22.5447%2015.1277%2022.6675%2015.1395%2022.7943%2015.1633C22.9844%2015.1791%2023.1032%2015.1871%2023.1507%2015.1871C23.4279%2015.1871%2023.5982%2015.0782%2023.6616%2014.8603C23.725%2014.6425%2023.7566%2014.0781%2023.7566%2013.1672L23.721%209.72165Z\x27%20fill=\x27%230E416C\x27/%3e%3cpath%20fill-rule=\x27evenodd\x27%20clip-rule=\x27evenodd\x27%20d=\x27M4.03172%2030.6084C4.18773%2030.9594%204.68595%2030.9594%204.84196%2030.6084L7.50196%2024.6234C7.63226%2024.3302%207.41766%2024%207.09684%2024H1.77684C1.45602%2024%201.24142%2024.3302%201.37172%2024.6234L4.03172%2030.6084Z\x27%20fill=\x27%230E416C\x27/%3e%3cpath%20d=\x27M8.37492%2010.9583H4.52051V27.9999\x27%20stroke=\x27%230E416C\x27%20stroke-width=\x271.25\x27%20stroke-linecap=\x27square\x27/%3e%3c/svg%3e\x22)\x2015\x2040,auto}.explosion-tool-panel\x20input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:#4caf50;cursor:pointer;box-shadow:0\x201px\x203px\x20#0006;transition:background\x20.2s}.explosion-tool-panel\x20input[type=range]::-webkit-slider-thumb:hover{background:#45a049}.explosion-tool-panel\x20input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#4caf50;cursor:pointer;border:none;box-shadow:0\x201px\x203px\x20#0006;transition:background\x20.2s}.explosion-tool-panel\x20input[type=range]::-moz-range-thumb:hover{background:#45a049}.clipper-tool-panel\x20input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:#4caf50;cursor:pointer;box-shadow:0\x201px\x203px\x20#0006;transition:background\x20.2s}.clipper-tool-panel\x20input[type=range]::-webkit-slider-thumb:hover{background:#45a049}.clipper-tool-panel\x20input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#4caf50;cursor:pointer;border:none;box-shadow:0\x201px\x203px\x20#0006;transition:background\x20.2s}.clipper-tool-panel\x20input[type=range]::-moz-range-thumb:hover{background:#45a049}.explosion-tool-panel{position:absolute;top:10%;left:50%;transform:translate(-50%,-50%);z-index:1000;background:#00000080;backdrop-filter:blur(8px);border-radius:6px;padding:8px\x2012px;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe\x20UI,Roboto,sans-serif;display:flex;flex-direction:column;gap:8px;align-items:center;box-shadow:0\x202px\x2012px\x20#0000004d}.explosion-tool-panel\x20.slider-container{display:flex;align-items:center;gap:8px;width:auto}.explosion-tool-panel\x20label{font-size:12px;font-weight:500;color:#fff;white-space:nowrap}.explosion-tool-panel\x20.slider-wrapper{flex:1;min-width:180px}.explosion-tool-panel\x20input[type=range]{width:100%;height:3px;border-radius:2px;background:#ffffff4d;outline:none;-webkit-appearance:none;appearance:none;cursor:pointer}.explosion-tool-panel\x20button{padding:4px\x2012px;background:#ffffff26;color:#fff;border:1px\x20solid\x20rgba(255,255,255,.3);border-radius:3px;cursor:pointer;font-size:11px;font-weight:500;transition:all\x20.2s;white-space:nowrap}.explosion-tool-panel\x20button:hover{background:#ffffff40}.clipper-tool-panel{position:absolute;top:16%;left:50%;transform:translate(-50%,-50%);z-index:1000;background:#00000080;backdrop-filter:blur(8px);border-radius:6px;padding:8px\x2012px;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe\x20UI,Roboto,sans-serif;display:flex;flex-direction:column;gap:8px;align-items:stretch;box-shadow:0\x202px\x2012px\x20#0000004d;min-width:280px;max-width:450px;max-height:70vh;overflow-y:auto}.bmv-annotation-input{flex:1;width:100%;min-height:80px;max-height:200px;padding:8px\x2010px;border:1px\x20solid\x20rgba(255,255,255,.3);border-radius:3px;background:#ffffff1a;color:#fff;font-size:12px;font-weight:500;resize:vertical;font-family:-apple-system,BlinkMacSystemFont,Segoe\x20UI,Roboto,sans-serif;outline:none;transition:all\x20.2s}.bmv-annotation-input:focus{border-color:#ffffff80;background:#ffffff26}.bmv-annotation-input::-webkit-input-placeholder{color:#bbb}.bmv-annotation-input::-moz-placeholder{color:#bbb}.bmv-annotation-input:-ms-input-placeholder{color:#bbb}.bmv-annotation-input::placeholder{color:#bbb}.clipper-tool-panel\x20.select-container{display:flex;flex-direction:column;gap:6px}.clipper-tool-panel\x20.plane-select{width:100%;padding:6px\x2028px\x206px\x2010px;background:#ffffff1a;color:#fff;border:1px\x20solid\x20rgba(255,255,255,.3);border-radius:3px;font-size:12px;font-weight:500;cursor:pointer;outline:none;transition:all\x20.2s;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url(\x22data:image/svg+xml,%3Csvg\x20xmlns=\x27http://www.w3.org/2000/svg\x27\x20width=\x2710\x27\x20height=\x2710\x27\x20viewBox=\x270\x200\x2012\x2012\x27%3E%3Cpath\x20fill=\x27%23fff\x27\x20d=\x27M6\x209L1\x204h10z\x27/%3E%3C/svg%3E\x22);background-repeat:no-repeat;background-position:right\x2010px\x20center}.clipper-tool-panel\x20.plane-select:hover{background-color:#ffffff26;border-color:#fff6}.clipper-tool-panel\x20.plane-select:focus{background-color:#ffffff26;border-color:#ffffff80}.clipper-tool-panel\x20.plane-select\x20option{background:#000000e6;color:#fff;padding:8px}.clipper-tool-panel\x20.sliders-container{display:flex;flex-direction:column;gap:8px}.clipper-tool-panel\x20.button-container{display:flex;gap:6px;justify-content:flex-end;margin-top:2px}.clipper-tool-panel\x20.empty-message{padding:16px;text-align:center;color:#fff9;font-size:12px;background:#ffffff0d;border-radius:4px;border:1px\x20dashed\x20rgba(255,255,255,.2)}.clipper-tool-panel\x20.plane-control{display:flex;flex-direction:column;gap:6px;padding:8px;background:#ffffff0d;border-radius:4px;border:1px\x20solid\x20rgba(255,255,255,.1)}.clipper-tool-panel\x20.plane-control-header{display:flex;justify-content:space-between;align-items:center}.clipper-tool-panel\x20.plane-control-label{font-size:12px;font-weight:500;color:#fff}.clipper-tool-panel\x20.plane-control-value{font-size:12px;font-weight:600;color:#4caf50;min-width:45px;text-align:right}.clipper-tool-panel\x20.slider-wrapper{position:relative}.clipper-tool-panel\x20input[type=range]{width:100%;height:3px;border-radius:2px;background:#ffffff4d;outline:none;-webkit-appearance:none;appearance:none;cursor:pointer}.clipper-tool-panel\x20.plane-control-actions{display:flex;gap:6px;margin-top:2px}.clipper-tool-panel\x20button{flex:1;padding:4px\x2010px;font-size:11px;border:1px\x20solid\x20rgba(255,255,255,.2);background:#ffffff1a;color:#fff;border-radius:3px;cursor:pointer;transition:all\x20.2s}.clipper-tool-panel\x20button:hover{background:#fff3}.clipper-tool-panel\x20button.danger{border:1px\x20solid\x20rgba(244,67,54,.4);background:#f4433633}.clipper-tool-panel\x20button.danger:hover{background:#f443364d}')),document['head']['appendChild'](b);}}catch(c){console['error'](bK(0x684),c);}}()));var Rc=Object['defineProperty'],Pc=(b,c,d)=>c in b?Rc(b,c,{'enumerable':!0x0,'configurable':!0x0,'writable':!0x0,'value':d}):b[c]=d,C=(b,c,d)=>Pc(b,typeof c!=a0bL(0x59a)?c+'':c,d);import{Vector3 as a0c,Object3D as a0d,Mesh as a0e,SphereGeometry as a0f,MeshBasicMaterial as a0g,Box3 as a0h,LineBasicMaterial as a0i,BufferGeometry as a0j,LineSegments as a0k,Vector2 as a0l,Matrix4 as a0m,OrthographicCamera as a0n,Float32BufferAttribute as a0o,InstancedBufferGeometry as a0p,InstancedInterleavedBuffer as a0q,InterleavedBufferAttribute as a0r,WireframeGeometry as a0s,Sphere as a0t,ShaderMaterial as a0u,ShaderLib as a0v,UniformsUtils as a0w,UniformsLib as a0x,Vector4 as a0y,Line3 as a0z,MathUtils as a0A,Loader as a0B,FileLoader as a0C,SRGBColorSpace as a0D,LinearSRGBColorSpace as a0E,BufferAttribute as a0F,Color as a0G,ColorManagement as a0H,CompressedCubeTexture as a0I,CompressedArrayTexture as a0J,CompressedTexture as a0K,LinearFilter as a0L,LinearMipmapLinearFilter as a0M,NoColorSpace as a0N,RGBA_ASTC_6x6_Format as a0O,RGBA_ASTC_4x4_Format as a0P,RedFormat as a0Q,RGFormat as a0R,RGBAFormat as a0S,UnsignedByteType as a0T,HalfFloatType as a0U,FloatType as a0V,DataTexture as a0W,Data3DTexture as a0X,RGBA_S3TC_DXT1_Format as a0Y,RGB_PVRTC_4BPPV1_Format as a0Z,RGB_ETC2_Format as a0a0,RGB_ETC1_Format as a0a1,RGBA_S3TC_DXT5_Format as a0a2,RGBA_PVRTC_4BPPV1_Format as a0a3,RGBA_ETC2_EAC_Format as a0a4,RGBA_BPTC_Format as a0a5,RGB_BPTC_UNSIGNED_Format as a0a6,WebGLRenderTarget as a0a7,NoBlending as a0a8,Clock as a0a9,DepthTexture as a0aa,DepthStencilFormat as a0ab,UnsignedInt248Type as a0ac,NearestFilter as a0ad,MeshNormalMaterial as a0ae,AddEquation as a0af,ZeroFactor as a0ag,DstAlphaFactor as a0ah,DstColorFactor as a0ai,CustomBlending as a0aj,RepeatWrapping as a0ak,AdditiveBlending as a0al,BoxGeometry as a0am,EdgesGeometry as a0an,Line as a0ao,CylinderGeometry as a0ap,Plane as a0aq,CanvasTexture as a0ar,PlaneGeometry as a0as,DoubleSide as a0at,Quaternion as a0au,LOD as a0av,InstancedMesh as a0aw,Matrix3 as a0ax,Group as a0ay,ShapeUtils as a0az,Triangle as a0aA,BackSide as a0aB,REVISION as a0aC,FrontSide as a0aD,BatchedMesh as a0aE,Ray as a0aF,MeshStandardMaterial as a0aG,MeshPhysicalMaterial as a0aH,WebGLRenderer as a0aI,Raycaster as a0aJ,Spherical as a0aK,PerspectiveCamera as a0aL,TrianglesDrawMode as a0aM,TriangleFanDrawMode as a0aN,TriangleStripDrawMode as a0aO,LoaderUtils as a0aP,SpotLight as a0aQ,PointLight as a0aR,DirectionalLight as a0aS,InstancedBufferAttribute as a0aT,TextureLoader as a0aU,ImageBitmapLoader as a0aV,InterleavedBuffer as a0aW,NearestMipmapLinearFilter as a0aX,LinearMipmapNearestFilter as a0aY,NearestMipmapNearestFilter as a0aZ,MirroredRepeatWrapping as a0b0,ClampToEdgeWrapping as a0b1,PointsMaterial as a0b2,Material as a0b3,MeshPhongMaterial as a0b4,PropertyBinding as a0b5,SkinnedMesh as a0b6,LineLoop as a0b7,Points as a0b8,Skeleton as a0b9,AnimationClip as a0ba,Bone as a0bb,InterpolateDiscrete as a0bc,InterpolateLinear as a0bd,Texture as a0be,VectorKeyframeTrack as a0bf,NumberKeyframeTrack as a0bg,QuaternionKeyframeTrack as a0bh,Interpolant as a0bi,LoadingManager as a0bj,CubeTextureLoader as a0bk,LineDashedMaterial as a0bl,EventDispatcher as a0bm,AmbientLight as a0bn,HemisphereLight as a0bo,Scene as a0bp}from'three';import{merge as a0bq,throttle as a0br}from'lodash-es';function zl(b,c){return new Promise((d,f)=>{const bM=a0b;if(!b||typeof b!='string'){f(new Error(bM(0xaf5)));return;}if(typeof c!=bM(0x652)){f(new Error(bM(0x580)));return;}const g=new XMLHttpRequest();g['open'](bM(0x528),b,!0x0),g[bM(0x77)]='blob',g[bM(0xa12)]=function(h){const bN=bM;if(h[bN(0x218)]&&h[bN(0x399)]>0x0){const i=h[bN(0x948)]/h[bN(0x399)]*0x64;c(i['toFixed'](0x2));}},g[bM(0x2f2)]=function(){const bO=bM;g[bO(0x4c1)]>=0xc8&&g['status']<0x12c?d(g[bO(0x6ab)]):f(new Error('HTTP\x20'+g[bO(0x4c1)]+':\x20'+(g['statusText']||bO(0x201))));},g[bM(0x9d0)]=function(){f(new Error('Network\x20error:\x20Failed\x20to\x20download\x20file'));},g['ontimeout']=function(){const bP=bM;f(new Error(bP(0x6b4)));},g[bM(0x62d)]();});}function Hl(b,c){const bQ=a0bL;if(!Array[bQ(0x335)](b))throw new Error(bQ(0x241));if(!Number['isInteger'](c)||c<0x1)throw new Error(bQ(0x87a));const d=Array['from']({'length':c},()=>[]);return b[bQ(0xb8)]((f,g)=>{const bR=bQ;d[g%c][bR(0x4f5)](f);}),d;}function ql(b){if(!(b instanceof a0d)){console['warn']('hideAllChildren:\x20提供的对象不是有效的\x20Object3D\x20实例');return;}b['visible']=!0x1,b['traverse'](c=>{c['visible']=!0x1;});}function Vl(){const bS=a0bL;return typeof navigator>'u'?!0x1:[bS(0x4df),'iPhone\x20Simulator','iPod\x20Simulator',bS(0x9f5),bS(0x16d),bS(0x8b4)][bS(0xa1c)](navigator[bS(0x239)])||navigator['userAgent'][bS(0xa1c)](bS(0x255))&&bS(0x1c3)in document;}function jl(b,c){const bT=a0bL;if(!Number['isFinite'](b)||!Number[bT(0x6ba)](c))throw new Error('Min\x20and\x20max\x20must\x20be\x20finite\x20numbers');if(b>c)throw new Error(bT(0x6ed));return Math['floor'](Math['random']()*(c-b+0x1))+b;}function Yl(b,c=0.7){const bU=a0bL;if(typeof b!='function')throw new Error(bU(0x378));if(typeof c!='number'||c<0x0||c>0x1)throw new Error('Probability\x20must\x20be\x20a\x20number\x20between\x200\x20and\x201');Math['random']()<=c&&b();}function Gr(b){const bV=a0bL;return b===null||typeof b!='object'||(Object['freeze'](b),Object[bV(0x557)](b)['forEach'](c=>{const bW=bV,d=b[c];typeof d=='object'&&d!==null&&!Object[bW(0xa4e)](d)&&Gr(d);})),b;}function Kl(b=new a0c(0x0,0x0,0x0),c=0.1){const bX=a0bL;if(!b||typeof b['x']!='number'&&!(b instanceof a0c))throw new Error(bX(0x430));if(typeof c!='number'||c<=0x0)throw new Error(bX(0x7d4));const d=new a0e(new a0f(c,0x20,0x20),new a0g({'color':0xff0000}));return b instanceof a0c?d['position']['copy'](b):d['position']['set'](b['x']||0x0,b['y']||0x0,b['z']||0x0),d;}function Wl(b,d){const bY=a0bL;if(!b||!d)throw new Error(bY(0x3f2));const f=new a0h()[bY(0x256)](b),{min:g,max:h}=f,i=[new a0c(g['x'],g['y'],g['z']),new a0c(h['x'],g['y'],g['z']),new a0c(h['x'],h['y'],g['z']),new a0c(g['x'],h['y'],g['z']),new a0c(g['x'],g['y'],h['z']),new a0c(h['x'],g['y'],h['z']),new a0c(h['x'],h['y'],h['z']),new a0c(g['x'],h['y'],h['z'])],j=[[0x0,0x1],[0x1,0x2],[0x2,0x3],[0x3,0x0],[0x4,0x5],[0x5,0x6],[0x6,0x7],[0x7,0x4],[0x0,0x4],[0x1,0x5],[0x2,0x6],[0x3,0x7]],k=[],m=new a0i({'color':0xff00});return j[bY(0xb8)](p=>{const bZ=bY,u=new a0j()['setFromPoints']([i[p[0x0]],i[p[0x1]]]),v=new a0k(u,m);k[bZ(0x4f5)](v),d[bZ(0x577)](v);}),k;}function Jl(b){const c0=a0bL;if(typeof b!=c0(0x4ed)||b<0x0)throw new Error('File\x20size\x20must\x20be\x20a\x20non-negative\x20number');const d=0x5*0x400*0x400,f=0xf*0x400*0x400,g=0x46,h=0xa,i=0x64;if(b<d)return i;if(b>=f)return h;const j=(b-d)/(f-d),k=g-j*(g-h);return Math[c0(0x43f)](k);}function zr(b,c){const c1=a0bL;if(b===null||typeof b!=c1(0x3e3)||c===null||typeof c!=c1(0x3e3))return c!==void 0x0?c:b;const d=Array[c1(0x335)](b)?[...b]:{...b};for(const f in c){if(!Object[c1(0x9e4)][c1(0x603)]['call'](c,f))continue;const g=c[f],h=d[f];g===null||Array[c1(0x335)](g)||typeof g!='object'?d[f]=g:typeof h=='object'&&h!==null&&!Array[c1(0x335)](h)?d[f]=zr(h,g):d[f]=g;}return d;}function mr(b){const c2=a0bL;if(!b||typeof b['traverse']!=c2(0x652))throw new Error(c2(0x5eb));let c=0x0,d=0x0,f=0x0;return b['traverse'](g=>{const c3=c2;if(g[c3(0x356)]&&g[c3(0x813)]){if(f++,g['geometry'][c3(0xaf)]){const h=g[c3(0x813)]['attributes'][c3(0x1b7)];h&&(d+=h['count'],g['geometry'][c3(0x9ee)]?c+=g[c3(0x813)][c3(0x9ee)][c3(0x675)]/0x3:c+=Math[c3(0xb11)](h[c3(0x675)]/0x3));}else g[c3(0x813)]['isGeometry']&&(g['geometry']['vertices']&&(d+=g[c3(0x813)][c3(0x2bc)]['length']),g['geometry'][c3(0x3e4)]&&(c+=g['geometry'][c3(0x3e4)][c3(0x3ea)]));}}),{'triangles':Math[c2(0xb11)](c),'vertices':d,'geometries':f};}function br(b,d){const c4=a0bL;if(typeof b!=c4(0x45f)||typeof d!=c4(0x45f))throw new Error('Both\x20arguments\x20must\x20be\x20version\x20strings');const f=b['split']('.')[c4(0x428)](Number),g=d['split']('.')[c4(0x428)](Number);if(f[c4(0xaa5)](isNaN)||g['some'](isNaN))throw new Error('Invalid\x20version\x20format');const h=Math[c4(0x36b)](f[c4(0x3ea)],g[c4(0x3ea)]);for(let i=0x0;i<h;i++){const j=f[i]||0x0,k=g[i]||0x0;if(j>k)return!0x0;if(j<k)return!0x1;}return!0x0;}function xa(b){const c5=a0bL;if(b){if(b['name']&&b['name'][c5(0xa1c)]('ROOT_LOD'))return b;if(b['parent'])return xa(b[c5(0x476)]);}}function va(b){const c6=a0bL;if(b){if(b['name']&&(b['name'][c6(0xa1c)](c6(0x5b9))||b['name']['includes']('DFC_ROOT_NODE')))return b;if(b[c6(0x476)])return va(b['parent']);}}function _a(b){const c7=a0bL;if(b){if(b['name']&&['泵','锅炉','散热器','管']['some'](c=>b['name'][c7(0xa1c)](c)))return b;if(b['parent'])return _a(b['parent']);}}function Ta(b,c){const c8=a0bL;if(!b)return!0x1;if(!Array[c8(0x335)](c))throw new Error(c8(0xa37));return b['name']===c8(0x1af)||b['userData']['layer']===void 0x0?!0x0:b[c8(0x476)]&&Ta(b['parent'],c)===!0x1?!0x1:b[c8(0x6f)][c8(0x804)][c8(0x74)]===c8(0x10f)?!0x0:c['includes'](b['userData']['layer']['name']);}const Xl=((()=>{let b=performance['now'](),c=0x0,d=0x0;return{'compute'(){c++;const f=performance['now']();return f-b>=0x3e8&&(d=c,c=0x0,b=f),d;},'reset'(){b=performance['now'](),c=0x0,d=0x0;}};})());function $l(){const c9=a0bL;return Xl[c9(0x8cc)]();}function Zl(b){const cb=a0bL;if(!b||typeof b[cb(0x268)]!='function')throw new Error(cb(0x5eb));const c=new Set();return b[cb(0x268)](d=>{const ce=cb;if(d[ce(0x356)]&&d['material']){const f=d[ce(0x690)];Array['isArray'](f)?f['forEach'](g=>{const cj=ce;g&&c[cj(0x577)](g);}):c['add'](f);}}),c[cb(0x410)];}function eh(b,c){const ck=a0bL;if(!b||!c)throw new Error(ck(0xa7a));let d,f;if(c instanceof TouchEvent){if(c['touches'][ck(0x3ea)]===0x0)throw new Error('TouchEvent\x20has\x20no\x20touches');d=c[ck(0x30e)][0x0][ck(0x4f8)],f=c['touches'][0x0]['clientY'];}else{if(c instanceof MouseEvent)d=c[ck(0x4f8)],f=c['clientY'];else throw new Error(ck(0x547));}const g=b['getBoundingClientRect'](),h=new a0l();return h['x']=(d-g['left'])/b['offsetWidth']*0x2-0x1,h['y']=-((f-g['top'])/b[ck(0x498)])*0x2+0x1,h;}function th(b){const cm=a0bL;if(!b||typeof b!='string'&&!Array['isArray'](b)&&!(b instanceof Uint8Array))throw new Error(cm(0x88f));let c=0x1505;for(let d=0x0;d<b[cm(0x3ea)];d++){const f=typeof b=='string'?b[cm(0x5c0)](d):b[d];c=(c<<0x5)+c+f;}return c>>>0x0;}function ih(b){const cn=a0bL;if(typeof b!=cn(0x4ed)||!isFinite(b))throw new Error(cn(0x743));const c=(b%0x168+0x168)%0x168;return c>=337.5||c<22.5?'right':c>=22.5&&c<67.5?'up_right':c>=67.5&&c<112.5?'up':c>=112.5&&c<157.5?'up_left':c>=157.5&&c<202.5?'left':c>=202.5&&c<247.5?'down_left':c>=247.5&&c<292.5?'down':'down_right';}function sn(){const cp=a0bL;if(typeof navigator>'u'||typeof window>'u')return!0x1;const b=/Android|iPhone|iPod|Mobile/i[cp(0x2b6)](navigator[cp(0x21b)]),c=window['screen'][cp(0xb1f)]<=0x3e8,d=cp(0x3be)in window||navigator['maxTouchPoints']>0x0;return b&&(c||d);}function sh(b={}){const cq=a0bL,f={'id':b['id']||cq(0x803)+Math[cq(0x3ac)]()[cq(0x2d7)](0x24)[cq(0x7d6)](0x2,0x8),'checked':b['checked']||!0x1,'size':b['size']||cq(0x3db),'onColor':b['onColor']||cq(0xaae),'offColor':b[cq(0x633)]||'#96c7d0','label':b[cq(0x5ff)]||'','labelPosition':b['labelPosition']||'left','onChange':b['onChange']||null},g={'small':{'width':0x28,'height':0x16,'sliderSize':0x10},'medium':{'width':0x3c,'height':0x22,'sliderSize':0x1a},'large':{'width':0x50,'height':0x2e,'sliderSize':0x24}},{width:i,height:j,sliderSize:k}=g[f['size']]||g['medium'],m=document[cq(0x86)](cq(0x521));m[cq(0x9a8)]='toggle-container\x20label-'+f['labelPosition'];let p=null;f['label']&&(p=document['createElement']('span'),p[cq(0x9a8)]=cq(0x21c),p['textContent']=f['label']);const v=document['createElement']('label');v['className']='switch',v['style'][cq(0xb1f)]=i+'px',v['style'][cq(0x19e)]=j+'px';const w=document[cq(0x86)]('input');w['type']=cq(0xa2e),w['id']=f['id'],w['checked']=f['checked'];const x=document[cq(0x86)](cq(0x785));if(x['className']=cq(0x765),v[cq(0x2cf)](w),v['appendChild'](x),p){if(f[cq(0xaec)]===cq(0x5df))m[cq(0x2cf)](p),m[cq(0x2cf)](v);else{if(f[cq(0xaec)]==='right')m['appendChild'](v),m[cq(0x2cf)](p);else{if(f['labelPosition']==='top'){const z=document[cq(0x86)]('div');z['className']=cq(0x651),z[cq(0x2cf)](p),z[cq(0x2cf)](v),m['appendChild'](z);}else{if(f['labelPosition']===cq(0x342)){const B=document[cq(0x86)]('div');B['className']=cq(0x651),B['appendChild'](v),B['appendChild'](p),m['appendChild'](B);}}}}}else m['appendChild'](v);f[cq(0x93b)]&&w['addEventListener'](cq(0xae8),E=>{f['onChange'](E['target']['checked']);});const y=document['createElement'](cq(0xa1a));return y['textContent']=cq(0x48c)+k/0x2+cq(0x5d6)+f['offColor']+';\x0a\x20\x20\x20\x20\x20\x20transition:\x20.4s;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20.slider:before\x20{\x0a\x20\x20\x20\x20\x20\x20position:\x20absolute;\x0a\x20\x20\x20\x20\x20\x20content:\x20\x22\x22;\x0a\x20\x20\x20\x20\x20\x20height:\x20'+k+'px;\x0a\x20\x20\x20\x20\x20\x20width:\x20'+k+cq(0x4dd)+(j-k)/0x2+cq(0x2ed)+(j-k)/0x2+'px;\x0a\x20\x20\x20\x20\x20\x20background-color:\x20white;\x0a\x20\x20\x20\x20\x20\x20transition:\x20.4s;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20input:checked\x20+\x20.slider\x20{\x0a\x20\x20\x20\x20\x20\x20background-color:\x20'+f['onColor']+cq(0x902)+(i-k-(j-k))+'px);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20.slider.round\x20{\x0a\x20\x20\x20\x20\x20\x20border-radius:\x20'+j+cq(0x334)+f[cq(0x31a)]+';\x0a\x20\x20\x20\x20}\x0a\x20\x20',m['appendChild'](y),m;}function nh(){return typeof window<'u'&&window['location']?window['location']['hostname']:'';}function rh(b){if(typeof b!='string')return!0x1;try{return new URL(b);}catch{return!0x1;}}function Qa(b){const cv=a0bL;if(typeof b!='string'||!b)return'';if(b['startsWith'](cv(0xae7))){const d=b[cv(0x110)]('/');return d[d['length']-0x1]||'';}const c=rh(b);if(c===!0x1)return b['split']('/')['pop']()||b['split']('\x5c')['pop']()||'';{const f=c[cv(0x68)];return f['substring'](f[cv(0x515)]('/')+0x1)||'';}}async function oh(){const cw=a0bL;if(typeof navigator>'u'||!navigator['storage']||!navigator['storage']['estimate'])return null;try{const b=await navigator['storage']['estimate'](),c=b[cw(0x989)]||0x0,d=b[cw(0x946)]||0x0,f=d>0x0?(c/d*0x64)[cw(0xab3)](0x1):cw(0x6d0);return{'usage':c,'quota':d,'usagePercent':parseFloat(f)};}catch(g){return console['error'](cw(0x65b),g),null;}}async function ah(){const cx=a0bL;try{if(!(cx(0x22e)in window))return!0x1;const b='__bmv_indexedDB_test_'+Date['now']();return await new Promise(c=>{let d=!0x1;const f=indexedDB['open'](b);f['onsuccess']=()=>{d||(d=!0x0,indexedDB['deleteDatabase'](b),c(!0x0));},f['onerror']=()=>{d||(d=!0x0,c(!0x1));},setTimeout(()=>{d||(d=!0x0,c(!0x1));},0x2710);});}catch(c){return console['error']('IndexedDB检测失败:',c),!0x1;}}async function Sa(){const cy=a0bL;try{const b=(await window[cy(0x22e)]['databases']())[cy(0x428)](c=>new Promise((d,f)=>{const cz=cy,g=indexedDB['deleteDatabase'](c['name']);g[cz(0x381)]=()=>{d();},g['onerror']=h=>{const cB=cz;console[cB(0x644)]('数据库\x20'+c['name']+'\x20删除失败',h),f(new Error(cB(0x8d9)+c[cB(0x74)]+'\x20失败'));},g['onblocked']=()=>{const cC=cz;alert(cC(0x8b6)),console[cC(0x5fb)]('数据库\x20'+c[cC(0x74)]+cC(0x404));};}));await Promise[cy(0x90)](b);}catch(c){throw console[cy(0x644)](cy(0x2eb),c),c;}}function ch(b,c='m'){const cD=a0bL;if(typeof b!=cD(0x4ed)||!isFinite(b))throw new Error(cD(0x2e0));if(b<0x0)throw new Error('Distance\x20must\x20be\x20non-negative');const d=c['toLowerCase']();let f;switch(d){case'm':f=b;break;case'cm':f=b*0x64;break;case'mm':f=b*0x3e8;break;default:throw new Error('Invalid\x20unit.\x20Please\x20use\x20\x22m\x22,\x20\x22cm\x22,\x20or\x20\x22mm\x22.');}return f[cD(0xab3)](0x2)+c;}const Wg=Object['freeze'](Object['defineProperty']({'__proto__':null,'addSphereByPoint':Kl,'calculateMousePosition':eh,'calculateScaleFactor':Jl,'checkStorageQuota':oh,'clearAllIndexedDB':Sa,'computeFPS':$l,'countGeometryStats':mr,'createBoundBoxEdge':Wl,'createLabeledToggleSwitch':sh,'deepFreeze':Gr,'djb2Hash':th,'downloadFileWithProgress':zl,'formatDistance':ch,'getCurrentDomain':nh,'getDfcHHNodeByMesh':_a,'getDfcNodeByMesh':va,'getEightDirection':ih,'getFileNameByUrl':Qa,'getRandomNumber':jl,'getRootLODByMesh':xa,'getUniqueMaterialsCount':Zl,'hideAllChildren':ql,'isIOS':Vl,'isIndexedDBSupported':ah,'isMobileEnhanced':sn,'isVersionGreaterOrEqual':br,'layerIsVisible':Ta,'mergeOptions':zr,'randomExecute':Yl,'splitArrayIntoParts':Hl},Symbol['toStringTag'],{'value':'Module'}));class lh extends a0d{constructor(b=document[a0bL(0x86)](a0bL(0x521))){const cE=a0bL;super(),this[cE(0x884)]=!0x0,this['element']=b,this[cE(0x1de)]['style'][cE(0x1b7)]='absolute',this[cE(0x1de)]['style'][cE(0x9db)]='none',this[cE(0x1de)][cE(0xe4)](cE(0x570),!0x1),this[cE(0xabb)]=new a0l(0.5,0.5),this['addEventListener']('removed',function(){const cF=cE;this[cF(0x268)](function(c){const cG=cF;c['element']instanceof c['element']['ownerDocument']['defaultView']['Element']&&c[cG(0x1de)][cG(0x1d0)]!==null&&c[cG(0x1de)][cG(0x592)]();});});}['copy'](b,c){const cH=a0bL;return super['copy'](b,c),this['element']=b['element'][cH(0x238)](!0x0),this['center']=b['center'],this;}}const Wt=new a0c(),Ao=new a0m(),uo=new a0m(),go=new a0c(),fo=new a0c();class hh{constructor(b={}){const cI=a0bL,f=this;let i,j,k,m;const p={'objects':new WeakMap()},v=b[cI(0x1de)]!==void 0x0?b[cI(0x1de)]:document['createElement'](cI(0x521));v[cI(0xa1a)]['overflow']=cI(0x31e),this[cI(0x9da)]=v,this['getSize']=function(){return{'width':i,'height':j};},this['render']=function(E,F){const cJ=cI;E['matrixWorldAutoUpdate']===!0x0&&E['updateMatrixWorld'](),F[cJ(0x476)]===null&&F[cJ(0x837)]===!0x0&&F['updateMatrixWorld'](),Ao[cJ(0x3fe)](F['matrixWorldInverse']),uo[cJ(0xafb)](F['projectionMatrix'],Ao),x(E,E,F),B(E);},this['setSize']=function(E,F){const cK=cI;i=E,j=F,k=i/0x2,m=j/0x2,v['style'][cK(0xb1f)]=E+'px',v[cK(0xa1a)]['height']=F+'px';};function w(E){const cL=cI;E[cL(0x884)]&&(E[cL(0x1de)][cL(0xa1a)][cL(0x46e)]='none');for(let F=0x0,H=E[cL(0x56d)]['length'];F<H;F++)w(E[cL(0x56d)][F]);}function x(F,H,L){const cM=cI;if(F[cM(0x12e)]===!0x1){w(F);return;}if(F['isCSS2DObject']){Wt[cM(0x4ec)](F['matrixWorld']),Wt['applyMatrix4'](uo);const N=Wt['z']>=-0x1&&Wt['z']<=0x1&&F['layers'][cM(0x2b6)](L[cM(0x643)])===!0x0,R=F[cM(0x1de)];R['style']['display']=N===!0x0?'':'none',N===!0x0&&(F[cM(0x1b0)](f,H,L),R['style'][cM(0xd1)]=cM(0x724)+-0x64*F[cM(0xabb)]['x']+'%,'+-0x64*F[cM(0xabb)]['y']+cM(0xb0a)+(Wt['x']*k+k)+'px,'+(-Wt['y']*m+m)+cM(0x2e9),R['parentNode']!==v&&v[cM(0x2cf)](R),F[cM(0x49b)](f,H,L));const S={'distanceToCameraSquared':y(L,F)};p['objects']['set'](F,S);}for(let T=0x0,U=F[cM(0x56d)][cM(0x3ea)];T<U;T++)x(F['children'][T],H,L);}function y(E,F){const cN=cI;return go['setFromMatrixPosition'](E[cN(0x14e)]),fo['setFromMatrixPosition'](F['matrixWorld']),go[cN(0x319)](fo);}function z(E){const F=[];return E['traverseVisible'](function(H){const cO=a0b;H[cO(0x884)]&&F[cO(0x4f5)](H);}),F;}function B(F){const cQ=cI,H=z(F)['sort'](function(N,R){const cP=a0b;if(N[cP(0x4da)]!==R['renderOrder'])return R[cP(0x4da)]-N['renderOrder'];const S=p[cP(0xad3)][cP(0x7d7)](N)[cP(0x5c3)],T=p['objects'][cP(0x7d7)](R)['distanceToCameraSquared'];return S-T;}),L=H['length'];for(let N=0x0,R=H['length'];N<R;N++)H[N]['element'][cQ(0xa1a)]['zIndex']=L-N;}}}class vi{constructor(){const cR=a0bL;this[cR(0x64d)]=!0x0,this[cR(0x2d3)]=!0x0,this['needsSwap']=!0x0,this['clear']=!0x1,this[cR(0x5b6)]=!0x1;}[a0bL(0x23b)](){}[a0bL(0x8d0)](){const cS=a0bL;console[cS(0x644)](cS(0x369));}['dispose'](){}}const Ah=new a0n(-0x1,0x1,0x1,-0x1,0x0,0x1);class dh extends a0j{constructor(){const cT=a0bL;super(),this[cT(0xe4)](cT(0x1b7),new a0o([-0x1,0x3,0x0,-0x1,-0x1,0x0,0x3,-0x1,0x0],0x3)),this['setAttribute']('uv',new a0o([0x0,0x2,0x0,0x0,0x2,0x0],0x2));}}const uh=new dh();class Hr{constructor(b){const cU=a0bL;this[cU(0x1ea)]=new a0e(uh,b);}['dispose'](){const cV=a0bL;this[cV(0x1ea)][cV(0x813)][cV(0x1a5)]();}[a0bL(0x8d0)](b){const cW=a0bL;b[cW(0x8d0)](this['_mesh'],Ah);}get[a0bL(0x690)](){return this['_mesh']['material'];}set['material'](b){this['_mesh']['material']=b;}}const gh=0x0,po=0x2,fh=0x1,mo=0x2,ph=0x0,mh=0x1,bh=0xa,Eh=0x0,Da=0x9,Ma=0xf,La=0x10,Ra=0x16,Pa=0x25,ka=0x2b,Fa=0x4c,Oa=0x53,Na=0x61,Ua=0x64,Ga=0x67,za=0x6d,Ha=0xa5,qa=0xa6,qr=0x3b9bcbd0;class Ch{constructor(){const cX=a0bL;this[cX(0xce)]=0x0,this['typeSize']=0x1,this[cX(0x1ca)]=0x0,this[cX(0x153)]=0x0,this['pixelDepth']=0x0,this[cX(0x1a8)]=0x0,this['faceCount']=0x1,this['supercompressionScheme']=0x0,this[cX(0x462)]=[],this['dataFormatDescriptor']=[{'vendorId':0x0,'descriptorType':0x0,'descriptorBlockSize':0x0,'versionNumber':0x2,'colorModel':0x0,'colorPrimaries':0x1,'transferFunction':0x2,'flags':0x0,'texelBlockDimension':[0x0,0x0,0x0,0x0],'bytesPlane':[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0],'samples':[]}],this['keyValue']={},this['globalData']=null;}}class Oi{constructor(b,c,d,f){const cY=a0bL;this['_dataView']=void 0x0,this['_littleEndian']=void 0x0,this['_offset']=void 0x0,this['_dataView']=new DataView(b[cY(0x186)],b[cY(0xa4f)]+c,d),this['_littleEndian']=f,this[cY(0x88b)]=0x0;}[a0bL(0x882)](){const cZ=a0bL,b=this[cZ(0xb0c)][cZ(0x76f)](this[cZ(0x88b)]);return this['_offset']+=0x1,b;}['_nextUint16'](){const d0=a0bL,b=this[d0(0xb0c)]['getUint16'](this[d0(0x88b)],this[d0(0xa7e)]);return this[d0(0x88b)]+=0x2,b;}['_nextUint32'](){const d1=a0bL,b=this[d1(0xb0c)][d1(0x398)](this[d1(0x88b)],this[d1(0xa7e)]);return this['_offset']+=0x4,b;}[a0bL(0x864)](){const d2=a0bL,b=this[d2(0xb0c)]['getUint32'](this[d2(0x88b)],this[d2(0xa7e)])+0x100000000*this[d2(0xb0c)][d2(0x398)](this['_offset']+0x4,this['_littleEndian']);return this[d2(0x88b)]+=0x8,b;}[a0bL(0x2c3)](){const d3=a0bL,b=this['_dataView'][d3(0xa04)](this[d3(0x88b)],this[d3(0xa7e)]);return this[d3(0x88b)]+=0x4,b;}[a0bL(0x108)](b){const d4=a0bL,c=new Uint8Array(this[d4(0xb0c)]['buffer'],this[d4(0xb0c)]['byteOffset']+this[d4(0x88b)],b);return this['_offset']+=b,c;}[a0bL(0x9a5)](b){return this['_offset']+=b,this;}['_scan'](b,c){const d5=a0bL;c===void 0x0&&(c=0x0);const d=this[d5(0x88b)];let f=0x0;for(;this['_dataView']['getUint8'](this['_offset'])!==c&&f<b;)f++,this[d5(0x88b)]++;return f<b&&this['_offset']++,new Uint8Array(this[d5(0xb0c)]['buffer'],this[d5(0xb0c)]['byteOffset']+d,f);}}const xe=[0xab,0x4b,0x54,0x58,0x20,0x32,0x30,0xbb,0xd,0xa,0x1a,0xa];function bo(b){const d6=a0bL;return new TextDecoder()[d6(0x439)](b);}function yh(i){const d7=a0bL,a0=new Uint8Array(i['buffer'],i[d7(0xa4f)],xe[d7(0x3ea)]);if(a0[0x0]!==xe[0x0]||a0[0x1]!==xe[0x1]||a0[0x2]!==xe[0x2]||a0[0x3]!==xe[0x3]||a0[0x4]!==xe[0x4]||a0[0x5]!==xe[0x5]||a0[0x6]!==xe[0x6]||a0[0x7]!==xe[0x7]||a0[0x8]!==xe[0x8]||a0[0x9]!==xe[0x9]||a0[0xa]!==xe[0xa]||a0[0xb]!==xe[0xb])throw new Error(d7(0x3ee));const a1=new Ch(),a2=0x11*Uint32Array[d7(0x499)],a3=new Oi(i,xe[d7(0x3ea)],a2,!0x0);a1[d7(0xce)]=a3[d7(0xac2)](),a1[d7(0x524)]=a3[d7(0xac2)](),a1[d7(0x1ca)]=a3['_nextUint32'](),a1[d7(0x153)]=a3['_nextUint32'](),a1[d7(0x3f1)]=a3['_nextUint32'](),a1['layerCount']=a3['_nextUint32'](),a1[d7(0x2e2)]=a3['_nextUint32']();const a4=a3[d7(0xac2)]();a1['supercompressionScheme']=a3['_nextUint32']();const a5=a3['_nextUint32'](),a6=a3['_nextUint32'](),a7=a3['_nextUint32'](),a8=a3[d7(0xac2)](),a9=a3[d7(0x864)](),ab=a3['_nextUint64'](),aj=new Oi(i,xe['length']+a2,0x3*a4*0x8,!0x0);for(let aL=0x0;aL<a4;aL++)a1[d7(0x462)][d7(0x4f5)]({'levelData':new Uint8Array(i['buffer'],i[d7(0xa4f)]+aj['_nextUint64'](),aj[d7(0x864)]()),'uncompressedByteLength':aj[d7(0x864)]()});const ak=new Oi(i,a5,a6,!0x0),am={'vendorId':ak['_skip'](0x4)[d7(0x9b7)](),'descriptorType':ak[d7(0x9b7)](),'versionNumber':ak[d7(0x9b7)](),'descriptorBlockSize':ak['_nextUint16'](),'colorModel':ak['_nextUint8'](),'colorPrimaries':ak[d7(0x882)](),'transferFunction':ak[d7(0x882)](),'flags':ak['_nextUint8'](),'texelBlockDimension':[ak['_nextUint8'](),ak[d7(0x882)](),ak['_nextUint8'](),ak[d7(0x882)]()],'bytesPlane':[ak['_nextUint8'](),ak[d7(0x882)](),ak[d7(0x882)](),ak[d7(0x882)](),ak['_nextUint8'](),ak[d7(0x882)](),ak[d7(0x882)](),ak[d7(0x882)]()],'samples':[]},an=(am['descriptorBlockSize']/0x4-0x6)/0x4;for(let aM=0x0;aM<an;aM++){const aN={'bitOffset':ak[d7(0x9b7)](),'bitLength':ak['_nextUint8'](),'channelType':ak['_nextUint8'](),'samplePosition':[ak['_nextUint8'](),ak[d7(0x882)](),ak[d7(0x882)](),ak['_nextUint8']()],'sampleLower':-0x1/0x0,'sampleUpper':0x1/0x0};0x40&aN[d7(0x372)]?(aN[d7(0x67f)]=ak[d7(0x2c3)](),aN['sampleUpper']=ak[d7(0x2c3)]()):(aN[d7(0x67f)]=ak[d7(0xac2)](),aN[d7(0x127)]=ak['_nextUint32']()),am['samples'][aM]=aN;}a1[d7(0x1aa)]['length']=0x0,a1['dataFormatDescriptor'][d7(0x4f5)](am);const ap=new Oi(i,a7,a8,!0x0);for(;ap[d7(0x88b)]<a8;){const aO=ap[d7(0xac2)](),aP=ap[d7(0xd4)](aO),aQ=bo(aP);if(a1['keyValue'][aQ]=ap['_nextUint8Array'](aO-aP['byteLength']-0x1),aQ['match'](/^ktx/i)){const aR=bo(a1['keyValue'][aQ]);a1['keyValue'][aQ]=aR['substring'](0x0,aR[d7(0x515)]('\x00'));}ap[d7(0x9a5)](aO%0x4?0x4-aO%0x4:0x0);}if(ab<=0x0)return a1;const aq=new Oi(i,a9,ab,!0x0),av=aq['_nextUint16'](),aw=aq['_nextUint16'](),ax=aq[d7(0xac2)](),ay=aq['_nextUint32'](),az=aq[d7(0xac2)](),aB=aq[d7(0xac2)](),aC=[];for(let aS=0x0;aS<a4;aS++)aC[d7(0x4f5)]({'imageFlags':aq['_nextUint32'](),'rgbSliceByteOffset':aq[d7(0xac2)](),'rgbSliceByteLength':aq['_nextUint32'](),'alphaSliceByteOffset':aq[d7(0xac2)](),'alphaSliceByteLength':aq['_nextUint32']()});const aD=a9+aq[d7(0x88b)],aE=aD+ax,aF=aE+ay,aG=aF+az,aH=new Uint8Array(i['buffer'],i[d7(0xa4f)]+aD,ax),aI=new Uint8Array(i[d7(0x186)],i['byteOffset']+aE,ay),aJ=new Uint8Array(i[d7(0x186)],i[d7(0xa4f)]+aF,az),aK=new Uint8Array(i[d7(0x186)],i[d7(0xa4f)]+aG,aB);return a1[d7(0x48a)]={'endpointCount':av,'selectorCount':aw,'imageDescs':aC,'endpointsData':aH,'selectorsData':aI,'tablesData':aJ,'extendedData':aK},a1;}const Eo=new a0h(),fs=new a0c();class Va extends a0p{constructor(){const d8=a0bL;super(),this[d8(0xad8)]=!0x0,this[d8(0x736)]=d8(0xafd);const b=[-0x1,0x2,0x0,0x1,0x2,0x0,-0x1,0x1,0x0,0x1,0x1,0x0,-0x1,0x0,0x0,0x1,0x0,0x0,-0x1,-0x1,0x0,0x1,-0x1,0x0],c=[-0x1,0x2,0x1,0x2,-0x1,0x1,0x1,0x1,-0x1,-0x1,0x1,-0x1,-0x1,-0x2,0x1,-0x2],d=[0x0,0x2,0x1,0x2,0x3,0x1,0x2,0x4,0x3,0x4,0x5,0x3,0x4,0x6,0x5,0x6,0x7,0x5];this[d8(0x512)](d),this['setAttribute'](d8(0x1b7),new a0o(b,0x3)),this[d8(0xe4)]('uv',new a0o(c,0x2));}[a0bL(0x53d)](b){const d9=a0bL,c=this['attributes'][d9(0x6c4)],d=this['attributes'][d9(0x18a)];return c!==void 0x0&&(c['applyMatrix4'](b),d[d9(0x53d)](b),c['needsUpdate']=!0x0),this[d9(0x3dd)]!==null&&this['computeBoundingBox'](),this['boundingSphere']!==null&&this[d9(0x84d)](),this;}[a0bL(0x64b)](b){const db=a0bL;let c;b instanceof Float32Array?c=b:Array[db(0x335)](b)&&(c=new Float32Array(b));const d=new a0q(c,0x6,0x1);return this['setAttribute']('instanceStart',new a0r(d,0x3,0x0)),this['setAttribute'](db(0x18a),new a0r(d,0x3,0x3)),this['instanceCount']=this['attributes'][db(0x6c4)][db(0x675)],this[db(0xaf9)](),this[db(0x84d)](),this;}['setColors'](b){const df=a0bL;let c;b instanceof Float32Array?c=b:Array[df(0x335)](b)&&(c=new Float32Array(b));const d=new a0q(c,0x6,0x1);return this[df(0xe4)]('instanceColorStart',new a0r(d,0x3,0x0)),this[df(0xe4)]('instanceColorEnd',new a0r(d,0x3,0x3)),this;}[a0bL(0x7d8)](b){const dj=a0bL;return this[dj(0x64b)](b[dj(0x4e1)][dj(0x1b7)][dj(0x443)]),this;}['fromEdgesGeometry'](b){const dk=a0bL;return this[dk(0x64b)](b['attributes']['position']['array']),this;}[a0bL(0x8ef)](b){const dm=a0bL;return this['fromWireframeGeometry'](new a0s(b[dm(0x813)])),this;}['fromLineSegments'](b){const dn=a0bL,c=b['geometry'];return this['setPositions'](c[dn(0x4e1)]['position'][dn(0x443)]),this;}[a0bL(0xaf9)](){const dp=a0bL;this[dp(0x3dd)]===null&&(this[dp(0x3dd)]=new a0h());const b=this['attributes'][dp(0x6c4)],c=this[dp(0x4e1)]['instanceEnd'];b!==void 0x0&&c!==void 0x0&&(this[dp(0x3dd)][dp(0x310)](b),Eo[dp(0x310)](c),this[dp(0x3dd)][dp(0xa7c)](Eo));}[a0bL(0x84d)](){const dq=a0bL;this[dq(0xb05)]===null&&(this['boundingSphere']=new a0t()),this[dq(0x3dd)]===null&&this[dq(0xaf9)]();const b=this[dq(0x4e1)]['instanceStart'],c=this['attributes'][dq(0x18a)];if(b!==void 0x0&&c!==void 0x0){const d=this['boundingSphere'][dq(0xabb)];this['boundingBox'][dq(0x248)](d);let f=0x0;for(let g=0x0,h=b['count'];g<h;g++)fs[dq(0x6be)](b,g),f=Math[dq(0x36b)](f,d['distanceToSquared'](fs)),fs[dq(0x6be)](c,g),f=Math['max'](f,d['distanceToSquared'](fs));this[dq(0xb05)][dq(0x3eb)]=Math[dq(0x691)](f),isNaN(this[dq(0xb05)]['radius'])&&console[dq(0x644)]('THREE.LineSegmentsGeometry.computeBoundingSphere():\x20Computed\x20radius\x20is\x20NaN.\x20The\x20instanced\x20position\x20data\x20is\x20likely\x20to\x20have\x20NaN\x20values.',this);}}['toJSON'](){}[a0bL(0x8fa)](b){const dv=a0bL;return console[dv(0x5fb)]('THREE.LineSegmentsGeometry:\x20applyMatrix()\x20has\x20been\x20renamed\x20to\x20applyMatrix4().'),this['applyMatrix4'](b);}}a0x[a0bL(0x50a)]={'worldUnits':{'value':0x1},'linewidth':{'value':0x1},'resolution':{'value':new a0l(0x1,0x1)},'dashOffset':{'value':0x0},'dashScale':{'value':0x1},'dashSize':{'value':0x1},'gapSize':{'value':0x1}},a0v[a0bL(0x50a)]={'uniforms':a0w[a0bL(0x164)]([a0x[a0bL(0x14a)],a0x['fog'],a0x['line']]),'vertexShader':a0bL(0x5f2),'fragmentShader':'\x0a\x09\x09uniform\x20vec3\x20diffuse;\x0a\x09\x09uniform\x20float\x20opacity;\x0a\x09\x09uniform\x20float\x20linewidth;\x0a\x0a\x09\x09#ifdef\x20USE_DASH\x0a\x0a\x09\x09\x09uniform\x20float\x20dashOffset;\x0a\x09\x09\x09uniform\x20float\x20dashSize;\x0a\x09\x09\x09uniform\x20float\x20gapSize;\x0a\x0a\x09\x09#endif\x0a\x0a\x09\x09varying\x20float\x20vLineDistance;\x0a\x0a\x09\x09#ifdef\x20WORLD_UNITS\x0a\x0a\x09\x09\x09varying\x20vec4\x20worldPos;\x0a\x09\x09\x09varying\x20vec3\x20worldStart;\x0a\x09\x09\x09varying\x20vec3\x20worldEnd;\x0a\x0a\x09\x09\x09#ifdef\x20USE_DASH\x0a\x0a\x09\x09\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09\x09#endif\x0a\x0a\x09\x09#else\x0a\x0a\x09\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09#endif\x0a\x0a\x09\x09#include\x20<common>\x0a\x09\x09#include\x20<color_pars_fragment>\x0a\x09\x09#include\x20<fog_pars_fragment>\x0a\x09\x09#include\x20<logdepthbuf_pars_fragment>\x0a\x09\x09#include\x20<clipping_planes_pars_fragment>\x0a\x0a\x09\x09vec2\x20closestLineToLine(vec3\x20p1,\x20vec3\x20p2,\x20vec3\x20p3,\x20vec3\x20p4)\x20{\x0a\x0a\x09\x09\x09float\x20mua;\x0a\x09\x09\x09float\x20mub;\x0a\x0a\x09\x09\x09vec3\x20p13\x20=\x20p1\x20-\x20p3;\x0a\x09\x09\x09vec3\x20p43\x20=\x20p4\x20-\x20p3;\x0a\x0a\x09\x09\x09vec3\x20p21\x20=\x20p2\x20-\x20p1;\x0a\x0a\x09\x09\x09float\x20d1343\x20=\x20dot(\x20p13,\x20p43\x20);\x0a\x09\x09\x09float\x20d4321\x20=\x20dot(\x20p43,\x20p21\x20);\x0a\x09\x09\x09float\x20d1321\x20=\x20dot(\x20p13,\x20p21\x20);\x0a\x09\x09\x09float\x20d4343\x20=\x20dot(\x20p43,\x20p43\x20);\x0a\x09\x09\x09float\x20d2121\x20=\x20dot(\x20p21,\x20p21\x20);\x0a\x0a\x09\x09\x09float\x20denom\x20=\x20d2121\x20*\x20d4343\x20-\x20d4321\x20*\x20d4321;\x0a\x0a\x09\x09\x09float\x20numer\x20=\x20d1343\x20*\x20d4321\x20-\x20d1321\x20*\x20d4343;\x0a\x0a\x09\x09\x09mua\x20=\x20numer\x20/\x20denom;\x0a\x09\x09\x09mua\x20=\x20clamp(\x20mua,\x200.0,\x201.0\x20);\x0a\x09\x09\x09mub\x20=\x20(\x20d1343\x20+\x20d4321\x20*\x20(\x20mua\x20)\x20)\x20/\x20d4343;\x0a\x09\x09\x09mub\x20=\x20clamp(\x20mub,\x200.0,\x201.0\x20);\x0a\x0a\x09\x09\x09return\x20vec2(\x20mua,\x20mub\x20);\x0a\x0a\x09\x09}\x0a\x0a\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09#include\x20<clipping_planes_fragment>\x0a\x0a\x09\x09\x09#ifdef\x20USE_DASH\x0a\x0a\x09\x09\x09\x09if\x20(\x20vUv.y\x20<\x20-\x201.0\x20||\x20vUv.y\x20>\x201.0\x20)\x20discard;\x20//\x20discard\x20endcaps\x0a\x0a\x09\x09\x09\x09if\x20(\x20mod(\x20vLineDistance\x20+\x20dashOffset,\x20dashSize\x20+\x20gapSize\x20)\x20>\x20dashSize\x20)\x20discard;\x20//\x20todo\x20-\x20FIX\x0a\x0a\x09\x09\x09#endif\x0a\x0a\x09\x09\x09float\x20alpha\x20=\x20opacity;\x0a\x0a\x09\x09\x09#ifdef\x20WORLD_UNITS\x0a\x0a\x09\x09\x09\x09//\x20Find\x20the\x20closest\x20points\x20on\x20the\x20view\x20ray\x20and\x20the\x20line\x20segment\x0a\x09\x09\x09\x09vec3\x20rayEnd\x20=\x20normalize(\x20worldPos.xyz\x20)\x20*\x201e5;\x0a\x09\x09\x09\x09vec3\x20lineDir\x20=\x20worldEnd\x20-\x20worldStart;\x0a\x09\x09\x09\x09vec2\x20params\x20=\x20closestLineToLine(\x20worldStart,\x20worldEnd,\x20vec3(\x200.0,\x200.0,\x200.0\x20),\x20rayEnd\x20);\x0a\x0a\x09\x09\x09\x09vec3\x20p1\x20=\x20worldStart\x20+\x20lineDir\x20*\x20params.x;\x0a\x09\x09\x09\x09vec3\x20p2\x20=\x20rayEnd\x20*\x20params.y;\x0a\x09\x09\x09\x09vec3\x20delta\x20=\x20p1\x20-\x20p2;\x0a\x09\x09\x09\x09float\x20len\x20=\x20length(\x20delta\x20);\x0a\x09\x09\x09\x09float\x20norm\x20=\x20len\x20/\x20linewidth;\x0a\x0a\x09\x09\x09\x09#ifndef\x20USE_DASH\x0a\x0a\x09\x09\x09\x09\x09#ifdef\x20USE_ALPHA_TO_COVERAGE\x0a\x0a\x09\x09\x09\x09\x09\x09float\x20dnorm\x20=\x20fwidth(\x20norm\x20);\x0a\x09\x09\x09\x09\x09\x09alpha\x20=\x201.0\x20-\x20smoothstep(\x200.5\x20-\x20dnorm,\x200.5\x20+\x20dnorm,\x20norm\x20);\x0a\x0a\x09\x09\x09\x09\x09#else\x0a\x0a\x09\x09\x09\x09\x09\x09if\x20(\x20norm\x20>\x200.5\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09\x09\x09discard;\x0a\x0a\x09\x09\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09\x09#endif\x0a\x0a\x09\x09\x09\x09#endif\x0a\x0a\x09\x09\x09#else\x0a\x0a\x09\x09\x09\x09#ifdef\x20USE_ALPHA_TO_COVERAGE\x0a\x0a\x09\x09\x09\x09\x09//\x20artifacts\x20appear\x20on\x20some\x20hardware\x20if\x20a\x20derivative\x20is\x20taken\x20within\x20a\x20conditional\x0a\x09\x09\x09\x09\x09float\x20a\x20=\x20vUv.x;\x0a\x09\x09\x09\x09\x09float\x20b\x20=\x20(\x20vUv.y\x20>\x200.0\x20)\x20?\x20vUv.y\x20-\x201.0\x20:\x20vUv.y\x20+\x201.0;\x0a\x09\x09\x09\x09\x09float\x20len2\x20=\x20a\x20*\x20a\x20+\x20b\x20*\x20b;\x0a\x09\x09\x09\x09\x09float\x20dlen\x20=\x20fwidth(\x20len2\x20);\x0a\x0a\x09\x09\x09\x09\x09if\x20(\x20abs(\x20vUv.y\x20)\x20>\x201.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09\x09alpha\x20=\x201.0\x20-\x20smoothstep(\x201.0\x20-\x20dlen,\x201.0\x20+\x20dlen,\x20len2\x20);\x0a\x0a\x09\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09#else\x0a\x0a\x09\x09\x09\x09\x09if\x20(\x20abs(\x20vUv.y\x20)\x20>\x201.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09\x09float\x20a\x20=\x20vUv.x;\x0a\x09\x09\x09\x09\x09\x09float\x20b\x20=\x20(\x20vUv.y\x20>\x200.0\x20)\x20?\x20vUv.y\x20-\x201.0\x20:\x20vUv.y\x20+\x201.0;\x0a\x09\x09\x09\x09\x09\x09float\x20len2\x20=\x20a\x20*\x20a\x20+\x20b\x20*\x20b;\x0a\x0a\x09\x09\x09\x09\x09\x09if\x20(\x20len2\x20>\x201.0\x20)\x20discard;\x0a\x0a\x09\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09#endif\x0a\x0a\x09\x09\x09#endif\x0a\x0a\x09\x09\x09vec4\x20diffuseColor\x20=\x20vec4(\x20diffuse,\x20alpha\x20);\x0a\x0a\x09\x09\x09#include\x20<logdepthbuf_fragment>\x0a\x09\x09\x09#include\x20<color_fragment>\x0a\x0a\x09\x09\x09gl_FragColor\x20=\x20vec4(\x20diffuseColor.rgb,\x20alpha\x20);\x0a\x0a\x09\x09\x09#include\x20<tonemapping_fragment>\x0a\x09\x09\x09#include\x20<colorspace_fragment>\x0a\x09\x09\x09#include\x20<fog_fragment>\x0a\x09\x09\x09#include\x20<premultiplied_alpha_fragment>\x0a\x0a\x09\x09}\x0a\x09\x09'};class ne extends a0u{constructor(b){const dw=a0bL;super({'type':'LineMaterial','uniforms':a0w[dw(0x471)](a0v['line']['uniforms']),'vertexShader':a0v['line']['vertexShader'],'fragmentShader':a0v['line']['fragmentShader'],'clipping':!0x0}),this[dw(0x277)]=!0x0,this['setValues'](b);}get['color'](){const dx=a0bL;return this['uniforms'][dx(0x800)][dx(0xaa2)];}set[a0bL(0x66e)](b){const dy=a0bL;this['uniforms'][dy(0x800)]['value']=b;}get[a0bL(0x1fd)](){const dz=a0bL;return dz(0x418)in this[dz(0x978)];}set[a0bL(0x1fd)](b){const dB=a0bL;b===!0x0?this[dB(0x978)][dB(0x418)]='':delete this['defines'][dB(0x418)];}get[a0bL(0xad0)](){const dC=a0bL;return this[dC(0x526)][dC(0xad0)]['value'];}set[a0bL(0xad0)](b){const dD=a0bL;this['uniforms'][dD(0xad0)]&&(this[dD(0x526)][dD(0xad0)]['value']=b);}get['dashed'](){const dE=a0bL;return'USE_DASH'in this[dE(0x978)];}set['dashed'](b){const dF=a0bL;b===!0x0!==this['dashed']&&(this['needsUpdate']=!0x0),b===!0x0?this['defines'][dF(0xd2)]='':delete this['defines'][dF(0xd2)];}get['dashScale'](){const dG=a0bL;return this['uniforms'][dG(0x71c)][dG(0xaa2)];}set[a0bL(0x71c)](b){const dH=a0bL;this[dH(0x526)][dH(0x71c)][dH(0xaa2)]=b;}get['dashSize'](){const dI=a0bL;return this['uniforms']['dashSize'][dI(0xaa2)];}set[a0bL(0x289)](b){this['uniforms']['dashSize']['value']=b;}get[a0bL(0x397)](){const dJ=a0bL;return this[dJ(0x526)]['dashOffset'][dJ(0xaa2)];}set[a0bL(0x397)](b){const dK=a0bL;this['uniforms'][dK(0x397)]['value']=b;}get[a0bL(0xaa6)](){const dL=a0bL;return this[dL(0x526)][dL(0xaa6)][dL(0xaa2)];}set['gapSize'](b){const dM=a0bL;this[dM(0x526)]['gapSize']['value']=b;}get['opacity'](){return this['uniforms']['opacity']['value'];}set['opacity'](b){const dN=a0bL;this[dN(0x526)]&&(this[dN(0x526)]['opacity']['value']=b);}get[a0bL(0x880)](){const dO=a0bL;return this[dO(0x526)][dO(0x880)][dO(0xaa2)];}set[a0bL(0x880)](b){const dP=a0bL;this[dP(0x526)]['resolution'][dP(0xaa2)][dP(0x3fe)](b);}get[a0bL(0x374)](){const dQ=a0bL;return'USE_ALPHA_TO_COVERAGE'in this[dQ(0x978)];}set[a0bL(0x374)](b){const dR=a0bL;this[dR(0x978)]&&(b===!0x0!==this['alphaToCoverage']&&(this['needsUpdate']=!0x0),b===!0x0?this['defines'][dR(0x191)]='':delete this[dR(0x978)][dR(0x191)]);}}const In=new a0y(),Co=new a0c(),yo=new a0c(),me=new a0y(),be=new a0y(),tt=new a0y(),Bn=new a0c(),xn=new a0m(),Ce=new a0z(),wo=new a0c(),ps=new a0h(),ms=new a0t(),it=new a0y();let rt,qt;function Io(b,c,d){const dS=a0bL;return it[dS(0x9fd)](0x0,0x0,-c,0x1)['applyMatrix4'](b[dS(0x25b)]),it[dS(0x433)](0x1/ it['w']),it['x']=qt/d['width'],it['y']=qt/d['height'],it[dS(0x53d)](b['projectionMatrixInverse']),it[dS(0x433)](0x1/ it['w']),Math[dS(0x855)](Math[dS(0x36b)](it['x'],it['y']));}function wh(b,d){const dT=a0bL,f=b[dT(0x14e)],g=b['geometry'],i=g['attributes']['instanceStart'],j=g[dT(0x4e1)][dT(0x18a)],k=Math[dT(0x5d2)](g[dT(0x363)],i['count']);for(let m=0x0,p=k;m<p;m++){Ce['start'][dT(0x6be)](i,m),Ce['end'][dT(0x6be)](j,m),Ce['applyMatrix4'](f);const u=new a0c(),v=new a0c();rt['distanceSqToSegment'](Ce[dT(0x511)],Ce['end'],v,u),v[dT(0x5a8)](u)<qt*0.5&&d['push']({'point':v,'pointOnLine':u,'distance':rt['origin']['distanceTo'](v),'object':b,'face':null,'faceIndex':m,'uv':null,'uv1':null});}}function Ih(f,i,j){const dU=a0bL,k=i[dU(0x25b)],n=f[dU(0x690)]['resolution'],v=f[dU(0x14e)],x=f['geometry'],z=x[dU(0x4e1)]['instanceStart'],B=x['attributes']['instanceEnd'],F=Math['min'](x[dU(0x363)],z['count']),H=-i[dU(0x3ad)];rt['at'](0x1,tt),tt['w']=0x1,tt[dU(0x53d)](i[dU(0x9c0)]),tt['applyMatrix4'](k),tt[dU(0x433)](0x1/tt['w']),tt['x']*=n['x']/0x2,tt['y']*=n['y']/0x2,tt['z']=0x0,Bn['copy'](tt),xn[dU(0xafb)](i['matrixWorldInverse'],v);for(let L=0x0,N=F;L<N;L++){if(me['fromBufferAttribute'](z,L),be['fromBufferAttribute'](B,L),me['w']=0x1,be['w']=0x1,me['applyMatrix4'](xn),be[dU(0x53d)](xn),me['z']>H&&be['z']>H)continue;if(me['z']>H){const a0=me['z']-be['z'],a1=(me['z']-H)/a0;me['lerp'](be,a1);}else{if(be['z']>H){const a2=be['z']-me['z'],a3=(be['z']-H)/a2;be[dU(0xacf)](me,a3);}}me[dU(0x53d)](k),be['applyMatrix4'](k),me[dU(0x433)](0x1/me['w']),be['multiplyScalar'](0x1/be['w']),me['x']*=n['x']/0x2,me['y']*=n['y']/0x2,be['x']*=n['x']/0x2,be['y']*=n['y']/0x2,Ce['start']['copy'](me),Ce['start']['z']=0x0,Ce['end'][dU(0x3fe)](be),Ce['end']['z']=0x0;const R=Ce[dU(0x6c1)](Bn,!0x0);Ce['at'](R,wo);const S=a0A[dU(0xacf)](me['z'],be['z'],R),T=S>=-0x1&&S<=0x1,U=Bn[dU(0x5a8)](wo)<qt*0.5;if(T&&U){Ce[dU(0x511)][dU(0x6be)](z,L),Ce['end'][dU(0x6be)](B,L),Ce['start']['applyMatrix4'](v),Ce['end']['applyMatrix4'](v);const a4=new a0c(),a5=new a0c();rt[dU(0x16c)](Ce['start'],Ce['end'],a5,a4),j['push']({'point':a5,'pointOnLine':a4,'distance':rt[dU(0x105)]['distanceTo'](a5),'object':f,'face':null,'faceIndex':L,'uv':null,'uv1':null});}}}class Bh extends a0e{constructor(b=new Va(),c=new ne({'color':Math['random']()*0xffffff})){const dV=a0bL;super(b,c),this[dV(0xaa9)]=!0x0,this['type']=dV(0xb1d);}[a0bL(0xa2)](){const dW=a0bL,b=this['geometry'],d=b[dW(0x4e1)]['instanceStart'],f=b['attributes']['instanceEnd'],g=new Float32Array(0x2*d[dW(0x675)]);for(let i=0x0,j=0x0,k=d[dW(0x675)];i<k;i++,j+=0x2)Co['fromBufferAttribute'](d,i),yo[dW(0x6be)](f,i),g[j]=j===0x0?0x0:g[j-0x1],g[j+0x1]=g[j]+Co['distanceTo'](yo);const h=new a0q(g,0x2,0x1);return b[dW(0xe4)]('instanceDistanceStart',new a0r(h,0x1,0x0)),b[dW(0xe4)](dW(0x9fe),new a0r(h,0x1,0x1)),this;}['raycast'](b,f){const dX=a0bL,g=this[dX(0x690)][dX(0x1fd)],i=b[dX(0x710)];i===null&&!g&&console['error']('LineSegments2:\x20\x22Raycaster.camera\x22\x20needs\x20to\x20be\x20set\x20in\x20order\x20to\x20raycast\x20against\x20LineSegments2\x20while\x20worldUnits\x20is\x20set\x20to\x20false.');const j=b[dX(0x9a7)]['Line2']!==void 0x0&&b[dX(0x9a7)][dX(0xb4)]['threshold']||0x0;rt=b['ray'];const k=this['matrixWorld'],m=this[dX(0x813)],p=this[dX(0x690)];qt=p['linewidth']+j,m['boundingSphere']===null&&m['computeBoundingSphere'](),ms['copy'](m[dX(0xb05)])['applyMatrix4'](k);let u;if(g)u=qt*0.5;else{const w=Math['max'](i['near'],ms[dX(0x23f)](rt['origin']));u=Io(i,w,p[dX(0x880)]);}if(ms[dX(0x3eb)]+=u,rt[dX(0x8ed)](ms)===!0x1)return;m[dX(0x3dd)]===null&&m[dX(0xaf9)](),ps[dX(0x3fe)](m[dX(0x3dd)])[dX(0x53d)](k);let v;if(g)v=qt*0.5;else{const x=Math['max'](i['near'],ps[dX(0x23f)](rt[dX(0x105)]));v=Io(i,x,p[dX(0x880)]);}ps[dX(0x1a4)](v),rt[dX(0x194)](ps)!==!0x1&&(g?wh(this,f):Ih(this,i,f));}[a0bL(0x1b0)](b){const dY=a0bL,c=this['material']['uniforms'];c&&c['resolution']&&(b['getViewport'](In),this['material'][dY(0x526)][dY(0x880)][dY(0xaa2)]['set'](In['z'],In['w']));}}class Ae extends Va{constructor(){const dZ=a0bL;super(),this[dZ(0x72d)]=!0x0,this['type']=dZ(0x5c4);}[a0bL(0x64b)](b){const c=b['length']-0x3,d=new Float32Array(0x2*c);for(let f=0x0;f<c;f+=0x3)d[0x2*f]=b[f],d[0x2*f+0x1]=b[f+0x1],d[0x2*f+0x2]=b[f+0x2],d[0x2*f+0x3]=b[f+0x3],d[0x2*f+0x4]=b[f+0x4],d[0x2*f+0x5]=b[f+0x5];return super['setPositions'](d),this;}['setColors'](b){const c=b['length']-0x3,d=new Float32Array(0x2*c);for(let f=0x0;f<c;f+=0x3)d[0x2*f]=b[f],d[0x2*f+0x1]=b[f+0x1],d[0x2*f+0x2]=b[f+0x2],d[0x2*f+0x3]=b[f+0x3],d[0x2*f+0x4]=b[f+0x4],d[0x2*f+0x5]=b[f+0x5];return super['setColors'](d),this;}[a0bL(0x72f)](b){const c=b['length']-0x1,d=new Float32Array(0x6*c);for(let f=0x0;f<c;f++)d[0x6*f]=b[f]['x'],d[0x6*f+0x1]=b[f]['y'],d[0x6*f+0x2]=b[f]['z']||0x0,d[0x6*f+0x3]=b[f+0x1]['x'],d[0x6*f+0x4]=b[f+0x1]['y'],d[0x6*f+0x5]=b[f+0x1]['z']||0x0;return super['setPositions'](d),this;}[a0bL(0x26d)](b){const e0=a0bL,c=b[e0(0x813)];return this['setPositions'](c[e0(0x4e1)]['position'][e0(0x443)]),this;}}class de extends Bh{constructor(b=new Ae(),c=new ne({'color':Math['random']()*0xffffff})){const e1=a0bL;super(b,c),this[e1(0x98d)]=!0x0,this[e1(0x736)]='Line2';}}const vn=new WeakMap();class xh extends a0B{constructor(b){const e2=a0bL;super(b),this[e2(0x33a)]='',this['decoderConfig']={},this[e2(0xab7)]=null,this['decoderPending']=null,this['workerLimit']=0x4,this['workerPool']=[],this['workerNextTaskID']=0x1,this[e2(0xa00)]='',this['defaultAttributeIDs']={'position':e2(0xa88),'normal':e2(0x65c),'color':'COLOR','uv':e2(0x702)},this['defaultAttributeTypes']={'position':e2(0x6cc),'normal':e2(0x6cc),'color':'Float32Array','uv':'Float32Array'};}['setDecoderPath'](b){const e3=a0bL;return this[e3(0x33a)]=b,this;}['setDecoderConfig'](b){const e4=a0bL;return this[e4(0x134)]=b,this;}[a0bL(0x12a)](b){const e5=a0bL;return this[e5(0xdc)]=b,this;}[a0bL(0xb08)](b,c,d,f){const e6=a0bL,g=new a0C(this['manager']);g[e6(0xa74)](this[e6(0x887)]),g['setResponseType'](e6(0xb04)),g['setRequestHeader'](this[e6(0x7e1)]),g['setWithCredentials'](this['withCredentials']),g[e6(0xb08)](b,h=>{this['parse'](h,c,f);},d,f);}['parse'](b,c,d=()=>{}){const e7=a0bL;this[e7(0x7fe)](b,c,null,null,a0D,d)['catch'](d);}['decodeDracoFile'](b,d,f,g,h=a0E,i=()=>{}){const e8=a0bL,j={'attributeIDs':f||this[e8(0x83c)],'attributeTypes':g||this[e8(0xca)],'useUniqueIDs':!!f,'vertexColorSpace':h};return this[e8(0x165)](b,j)[e8(0x82c)](d)[e8(0x217)](i);}[a0bL(0x165)](b,d){const e9=a0bL,f=JSON[e9(0x473)](d);if(vn['has'](b)){const k=vn[e9(0x7d7)](b);if(k['key']===f)return k[e9(0x40b)];if(b['byteLength']===0x0)throw new Error(e9(0x303));}let g;const h=this[e9(0x2c1)]++,i=b[e9(0x175)],j=this['_getWorker'](h,i)['then'](m=>(g=m,new Promise((p,u)=>{const eb=e9;g[eb(0x8f9)][h]={'resolve':p,'reject':u},g['postMessage']({'type':eb(0x439),'id':h,'taskConfig':d,'buffer':b},[b]);})))['then'](m=>this[e9(0x53e)](m['geometry']));return j[e9(0x217)](()=>!0x0)['then'](()=>{const ej=e9;g&&h&&this[ej(0x976)](g,h);}),vn['set'](b,{'key':f,'promise':j}),j;}[a0bL(0x53e)](b){const ek=a0bL,d=new a0j();b['index']&&d['setIndex'](new a0F(b['index'][ek(0x443)],0x1));for(let f=0x0;f<b[ek(0x4e1)][ek(0x3ea)];f++){const g=b['attributes'][f],h=g[ek(0x74)],i=g['array'],j=g['itemSize'],k=new a0F(i,j);h===ek(0x66e)&&(this[ek(0x19c)](k,g[ek(0x3d5)]),k['normalized']=!(i instanceof Float32Array)),d[ek(0xe4)](h,k);}return d;}['_assignVertexColorSpace'](b,c){const em=a0bL;if(c!==a0D)return;const d=new a0G();for(let f=0x0,g=b[em(0x675)];f<g;f++)d['fromBufferAttribute'](b,f),a0H['toWorkingColorSpace'](d,a0D),b[em(0x3d8)](f,d['r'],d['g'],d['b']);}['_loadLibrary'](b,c){const ep=a0bL,d=new a0C(this[ep(0x17e)]);return d['setPath'](this['decoderPath']),d[ep(0xa8f)](c),d[ep(0x4b4)](this['withCredentials']),new Promise((f,g)=>{d['load'](b,f,void 0x0,g);});}[a0bL(0x639)](){return this['_initDecoder'](),this;}['_initDecoder'](){const eq=a0bL;if(this[eq(0x775)])return this['decoderPending'];const b=typeof WebAssembly!='object'||this[eq(0x134)]['type']==='js',c=[];return b?c['push'](this[eq(0x25a)]('draco_decoder.js',eq(0x280))):(c[eq(0x4f5)](this[eq(0x25a)]('draco_wasm_wrapper.js',eq(0x280))),c['push'](this[eq(0x25a)]('draco_decoder.wasm',eq(0xb04)))),this['decoderPending']=Promise[eq(0x90)](c)['then'](d=>{const et=eq,f=d[0x0];b||(this['decoderConfig']['wasmBinary']=d[0x1]);const g=vh['toString'](),h=[et(0x41c),f,'',et(0x8a9),g[et(0x278)](g[et(0x3ae)]('{')+0x1,g['lastIndexOf']('}'))]['join']('\x0a');this['workerSourceURL']=URL[et(0x9c)](new Blob([h]));}),this[eq(0x775)];}[a0bL(0xb6)](b,c){return this['_initDecoder']()['then'](()=>{const ev=a0b;if(this['workerPool'][ev(0x3ea)]<this[ev(0xdc)]){const f=new Worker(this['workerSourceURL']);f[ev(0x8f9)]={},f[ev(0x660)]={},f['_taskLoad']=0x0,f[ev(0xb9)]({'type':'init','decoderConfig':this[ev(0x134)]}),f['onmessage']=function(g){const ew=ev,h=g['data'];switch(h['type']){case'decode':f['_callbacks'][h['id']]['resolve'](h);break;case ew(0x644):f[ew(0x8f9)][h['id']]['reject'](h);break;default:console[ew(0x644)](ew(0x93)+h['type']+'\x22');}},this['workerPool'][ev(0x4f5)](f);}else this['workerPool'][ev(0x3b2)](function(g,h){const ex=ev;return g[ex(0xaa)]>h[ex(0xaa)]?-0x1:0x1;});const d=this[ev(0x77d)][this[ev(0x77d)]['length']-0x1];return d['_taskCosts'][b]=c,d['_taskLoad']+=c,d;});}[a0bL(0x976)](b,c){const ey=a0bL;b['_taskLoad']-=b['_taskCosts'][c],delete b[ey(0x8f9)][c],delete b[ey(0x660)][c];}[a0bL(0x25c)](){const ez=a0bL;console['log']('Task\x20load:\x20',this['workerPool']['map'](b=>b[ez(0xaa)]));}[a0bL(0x1a5)](){const eB=a0bL;for(let b=0x0;b<this['workerPool'][eB(0x3ea)];++b)this['workerPool'][b][eB(0x6d7)]();return this[eB(0x77d)]['length']=0x0,this['workerSourceURL']!==''&&URL[eB(0x492)](this[eB(0xa00)]),this;}}function vh(){let b,c;onmessage=function(i){const eC=a0b,j=i['data'];switch(j[eC(0x736)]){case eC(0x685):b=j[eC(0x134)],c=new Promise(function(p){const eD=eC;b[eD(0x87b)]=function(u){p({'draco':u});},DracoDecoderModule(b);});break;case eC(0x439):const k=j[eC(0x186)],m=j[eC(0x9c7)];c[eC(0x82c)](p=>{const eE=eC,v=p[eE(0x6fc)],w=new v[(eE(0x45c))]();try{const x=d(v,w,new Int8Array(k),m),y=x['attributes'][eE(0x428)](z=>z[eE(0x443)]['buffer']);x['index']&&y['push'](x['index']['array'][eE(0x186)]),self[eE(0xb9)]({'type':eE(0x439),'id':j['id'],'geometry':x},y);}catch(z){console[eE(0x644)](z),self['postMessage']({'type':eE(0x644),'id':j['id'],'error':z['message']});}finally{v['destroy'](w);}});break;}};function d(i,j,k,v){const eF=a0b,x=v[eF(0xbd)],z=v[eF(0x6d5)];let B,F;const H=j['GetEncodedGeometryType'](k);if(H===i[eF(0x198)])B=new i['Mesh'](),F=j[eF(0x982)](k,k['byteLength'],B);else{if(H===i['POINT_CLOUD'])B=new i[(eF(0x3e9))](),F=j['DecodeArrayToPointCloud'](k,k['byteLength'],B);else throw new Error(eF(0x878));}if(!F['ok']()||B['ptr']===0x0)throw new Error(eF(0x98)+F['error_msg']());const L={'index':null,'attributes':[]};for(const N in x){const R=self[z[N]];let S,T;if(v[eF(0x401)])T=x[N],S=j['GetAttributeByUniqueId'](B,T);else{if(T=j['GetAttributeId'](B,i[x[N]]),T===-0x1)continue;S=j[eF(0xa8d)](B,T);}const U=g(i,j,B,N,R,S);N==='color'&&(U['vertexColorSpace']=v[eF(0x3d5)]),L['attributes'][eF(0x4f5)](U);}return H===i[eF(0x198)]&&(L[eF(0x9ee)]=f(i,j,B)),i[eF(0x221)](B),L;}function f(i,j,k){const eG=a0b,m=k[eG(0x995)]()*0x3,p=m*0x4,v=i[eG(0x516)](p);j[eG(0xab9)](k,p,v);const w=new Uint32Array(i[eG(0x951)][eG(0x186)],v,m)[eG(0x504)]();return i['_free'](v),{'array':w,'itemSize':0x1};}function g(i,j,k,v,w,x){const eH=a0b,y=x[eH(0xa79)](),z=k['num_points']()*y,B=z*w[eH(0x499)],F=h(i,w),H=i[eH(0x516)](B);j[eH(0x190)](k,x,F,B,H);const L=new w(i[eH(0x951)]['buffer'],H,z)[eH(0x504)]();return i[eH(0x6ea)](H),{'name':v,'array':L,'itemSize':y};}function h(i,j){const eI=a0b;switch(j){case Float32Array:return i['DT_FLOAT32'];case Int8Array:return i['DT_INT8'];case Int16Array:return i[eI(0x95c)];case Int32Array:return i[eI(0x2ad)];case Uint8Array:return i[eI(0x97d)];case Uint16Array:return i[eI(0x81)];case Uint32Array:return i['DT_UINT32'];}}}class _h{constructor(b=0x4){const eJ=a0bL;this[eJ(0x525)]=b,this[eJ(0xfe)]=[],this['workers']=[],this['workersResolve']=[],this[eJ(0x184)]=0x0;}['_initWorker'](b){const eK=a0bL;if(!this['workers'][b]){const c=this[eK(0x94b)]();c[eK(0x696)](eK(0x193),this['_onMessage'][eK(0x450)](this,b)),this['workers'][b]=c;}}[a0bL(0x2d6)](){const eL=a0bL;for(let b=0x0;b<this[eL(0x525)];b++)if(!(this['workerStatus']&0x1<<b))return b;return-0x1;}[a0bL(0x30b)](b,c){const eM=a0bL,d=this[eM(0xa18)][b];if(d&&d(c),this['queue'][eM(0x3ea)]){const {resolve:f,msg:g,transfer:h}=this[eM(0xfe)]['shift']();this[eM(0xa18)][b]=f,this['workers'][b][eM(0xb9)](g,h);}else this[eM(0x184)]^=0x1<<b;}['setWorkerCreator'](b){this['workerCreator']=b;}[a0bL(0x12a)](b){const eN=a0bL;this[eN(0x525)]=b;}[a0bL(0xb9)](b,c){return new Promise(d=>{const eO=a0b,f=this['_getIdleWorker']();f!==-0x1?(this['_initWorker'](f),this[eO(0x184)]|=0x1<<f,this['workersResolve'][f]=d,this['workers'][f][eO(0xb9)](b,c)):this[eO(0xfe)]['push']({'resolve':d,'msg':b,'transfer':c});});}[a0bL(0x1a5)](){const eP=a0bL;this[eP(0x6c0)][eP(0xb8)](b=>b[eP(0x6d7)]()),this[eP(0xa18)][eP(0x3ea)]=0x0,this['workers'][eP(0x3ea)]=0x0,this['queue'][eP(0x3ea)]=0x0,this['workerStatus']=0x0;}}let _n,ft,Er;const Tn={'env':{'emscripten_notify_memory_growth':function(b){Er=new Uint8Array(ft['exports']['memory']['buffer']);}}};class Th{['init'](){const eQ=a0bL;return _n||(_n=typeof fetch<'u'?fetch('data:application/wasm;base64,'+Bo)['then'](b=>b['arrayBuffer']())['then'](b=>WebAssembly['instantiate'](b,Tn))['then'](this['_init']):WebAssembly['instantiate'](Buffer[eQ(0x9c4)](Bo,'base64'),Tn)[eQ(0x82c)](this[eQ(0xac3)]),_n);}['_init'](b){ft=b['instance'],Tn['env']['emscripten_notify_memory_growth'](0x0);}[a0bL(0x439)](b,d=0x0){const eR=a0bL;if(!ft)throw new Error('ZSTDDecoder:\x20Await\x20.init()\x20before\x20decoding.');const f=b[eR(0x175)],g=ft[eR(0xa48)]['malloc'](f);Er[eR(0x9fd)](b,g),d=d||Number(ft[eR(0xa48)][eR(0x3d1)](g,f));const h=ft[eR(0xa48)][eR(0xae3)](d),i=ft['exports']['ZSTD_decompress'](h,d,g,f),j=Er[eR(0x504)](h,h+i);return ft['exports'][eR(0x8bb)](g),ft['exports'][eR(0x8bb)](h),j;}}const Bo=a0bL(0xb0),Qh='display-p3',Sh=a0bL(0x842),Qn=new WeakMap();let Sn=0x0,Dn;class Fe extends a0B{constructor(b){const eS=a0bL;super(b),this['transcoderPath']='',this[eS(0x94)]=null,this['transcoderPending']=null,this['workerPool']=new _h(),this[eS(0xa00)]='',this['workerConfig']=null,typeof MSC_TRANSCODER<'u'&&console['warn']('THREE.KTX2Loader:\x20Please\x20update\x20to\x20latest\x20\x22basis_transcoder\x22.\x20\x22msc_basis_transcoder\x22\x20is\x20no\x20longer\x20supported\x20in\x20three.js\x20r125+.');}[a0bL(0x3f6)](b){return this['transcoderPath']=b,this;}[a0bL(0x12a)](b){const eT=a0bL;return this[eT(0x77d)][eT(0x12a)](b),this;}async[a0bL(0x984)](b){const eU=a0bL;return this['workerConfig']={'astcSupported':await b[eU(0xa7d)]('texture-compression-astc'),'astcHDRSupported':!0x1,'etc1Supported':await b[eU(0xa7d)](eU(0x329)),'etc2Supported':await b[eU(0xa7d)](eU(0x449)),'dxtSupported':await b['hasFeatureAsync'](eU(0xa6a)),'bptcSupported':await b[eU(0xa7d)](eU(0x3e1)),'pvrtcSupported':await b['hasFeatureAsync'](eU(0x2bf))},this;}['detectSupport'](b){const eV=a0bL;return b[eV(0x757)]===!0x0?this['workerConfig']={'astcSupported':b['hasFeature']('texture-compression-astc'),'astcHDRSupported':!0x1,'etc1Supported':b[eV(0x7ed)](eV(0x329)),'etc2Supported':b['hasFeature'](eV(0x449)),'dxtSupported':b['hasFeature'](eV(0xa6a)),'bptcSupported':b[eV(0x7ed)](eV(0x3e1)),'pvrtcSupported':b[eV(0x7ed)]('texture-compression-pvrtc')}:this['workerConfig']={'astcSupported':b['extensions']['has'](eV(0x138)),'astcHDRSupported':b['extensions'][eV(0x258)]('WEBGL_compressed_texture_astc')&&b[eV(0xb0f)]['get']('WEBGL_compressed_texture_astc')['getSupportedProfiles']()[eV(0xa1c)]('hdr'),'etc1Supported':b['extensions']['has']('WEBGL_compressed_texture_etc1'),'etc2Supported':b[eV(0xb0f)]['has'](eV(0x235)),'dxtSupported':b['extensions'][eV(0x258)]('WEBGL_compressed_texture_s3tc'),'bptcSupported':b['extensions']['has']('EXT_texture_compression_bptc'),'pvrtcSupported':b[eV(0xb0f)]['has'](eV(0x434))||b[eV(0xb0f)]['has'](eV(0x4fc))},this;}['init'](){const eW=a0bL;if(!this['transcoderPending']){const b=new a0C(this['manager']);b[eW(0xa74)](this[eW(0x3e2)]),b['setWithCredentials'](this['withCredentials']);const c=b[eW(0x106)](eW(0x51e)),d=new a0C(this[eW(0x17e)]);d[eW(0xa74)](this[eW(0x3e2)]),d['setResponseType'](eW(0xb04)),d['setWithCredentials'](this['withCredentials']);const f=d['loadAsync'](eW(0x2da));this['transcoderPending']=Promise[eW(0x90)]([c,f])[eW(0x82c)](([g,h])=>{const eX=eW,i=Fe['BasisWorker'][eX(0x2d7)](),j=[eX(0x64f),'let\x20_EngineFormat\x20=\x20'+JSON['stringify'](Fe['EngineFormat']),'let\x20_EngineType\x20=\x20'+JSON[eX(0x473)](Fe[eX(0x185)]),'let\x20_TranscoderFormat\x20=\x20'+JSON[eX(0x473)](Fe['TranscoderFormat']),eX(0x829)+JSON[eX(0x473)](Fe[eX(0x731)]),'/*\x20basis_transcoder.js\x20*/',g,'/*\x20worker\x20*/',i['substring'](i['indexOf']('{')+0x1,i['lastIndexOf']('}'))][eX(0x9e5)]('\x0a');this['workerSourceURL']=URL[eX(0x9c)](new Blob([j])),this[eX(0x94)]=h,this['workerPool']['setWorkerCreator'](()=>{const eY=eX,k=new Worker(this['workerSourceURL']),m=this[eY(0x94)][eY(0x504)](0x0);return k['postMessage']({'type':'init','config':this[eY(0xa20)],'transcoderBinary':m},[m]),k;});}),Sn>0x0&&console[eW(0x5fb)]('THREE.KTX2Loader:\x20Multiple\x20active\x20KTX2\x20loaders\x20may\x20cause\x20performance\x20issues.\x20Use\x20a\x20single\x20KTX2Loader\x20instance,\x20or\x20call\x20.dispose()\x20on\x20old\x20instances.'),Sn++;}return this['transcoderPending'];}[a0bL(0xb08)](b,c,d,f){const eZ=a0bL;if(this[eZ(0xa20)]===null)throw new Error('THREE.KTX2Loader:\x20Missing\x20initialization\x20with\x20`.detectSupport(\x20renderer\x20)`.');const g=new a0C(this['manager']);g[eZ(0xa8f)]('arraybuffer'),g['setWithCredentials'](this['withCredentials']),g['load'](b,h=>{this['parse'](h,c,f);},d,f);}[a0bL(0x54a)](b,c,d){const f0=a0bL;if(this[f0(0xa20)]===null)throw new Error(f0(0x764));if(Qn['has'](b))return Qn['get'](b)['promise'][f0(0x82c)](c)['catch'](d);this['_createTexture'](b)[f0(0x82c)](f=>c?c(f):null)['catch'](d);}['_createTextureFrom'](b,f){const f1=a0bL,{type:g,error:i,data:{faces:j,width:k,height:m,format:p,type:v,dfdFlags:w}}=b;if(g===f1(0x644))return Promise['reject'](i);let x;if(f[f1(0x2e2)]===0x6)x=new a0I(j,p,v);else{const y=j[0x0][f1(0x84e)];x=f[f1(0x1a8)]>0x1?new a0J(y,k,m,f['layerCount'],p,v):new a0K(y,k,m,p,v);}return x['minFilter']=j[0x0]['mipmaps']['length']===0x1?a0L:a0M,x[f1(0x3b3)]=a0L,x[f1(0xa32)]=!0x1,x[f1(0x12d)]=!0x0,x[f1(0x1bb)]=ja(f),x['premultiplyAlpha']=!!(w&fh),x;}async['_createTexture'](b,d={}){const f2=a0bL,f=yh(new Uint8Array(b)),g=f['vkFormat']===qr&&f[f2(0x1aa)][0x0]['colorModel']===0xa7;if(!(f['vkFormat']===Eh||g&&!this['workerConfig']['astcHDRSupported']))return Mh(f);const h=d,i=this['init']()[f2(0x82c)](()=>this[f2(0x77d)][f2(0xb9)]({'type':f2(0x8be),'buffer':b,'taskConfig':h},[b]))[f2(0x82c)](j=>this['_createTextureFrom'](j[f2(0x340)],f));return Qn[f2(0x9fd)](b,{'promise':i}),i;}[a0bL(0x1a5)](){const f3=a0bL;return this[f3(0x77d)]['dispose'](),this['workerSourceURL']&&URL[f3(0x492)](this[f3(0xa00)]),Sn--,this;}}Fe[a0bL(0x731)]={'ETC1S':0x0,'UASTC':0x1,'UASTC_HDR':0x2},Fe['TranscoderFormat']={'ETC1':0x0,'ETC2':0x1,'BC1':0x2,'BC3':0x3,'BC4':0x4,'BC5':0x5,'BC7_M6_OPAQUE_ONLY':0x6,'BC7_M5':0x7,'PVRTC1_4_RGB':0x8,'PVRTC1_4_RGBA':0x9,'ASTC_4x4':0xa,'ATC_RGB':0xb,'ATC_RGBA_INTERPOLATED_ALPHA':0xc,'RGBA32':0xd,'RGB565':0xe,'BGR565':0xf,'RGBA4444':0x10,'BC6H':0x16,'RGB_HALF':0x18,'RGBA_HALF':0x19},Fe[a0bL(0x97)]={'RGBAFormat':a0S,'RGBA_ASTC_4x4_Format':a0P,'RGB_BPTC_UNSIGNED_Format':a0a6,'RGBA_BPTC_Format':a0a5,'RGBA_ETC2_EAC_Format':a0a4,'RGBA_PVRTC_4BPPV1_Format':a0a3,'RGBA_S3TC_DXT5_Format':a0a2,'RGB_ETC1_Format':a0a1,'RGB_ETC2_Format':a0a0,'RGB_PVRTC_4BPPV1_Format':a0Z,'RGBA_S3TC_DXT1_Format':a0Y},Fe[a0bL(0x185)]={'UnsignedByteType':a0T,'HalfFloatType':a0U,'FloatType':a0V},Fe['BasisWorker']=function(){const f4=a0bL;let b,f,i;const j=_EngineFormat,k=_EngineType,m=_TranscoderFormat,p=_BasisFormat;self[f4(0x696)](f4(0x193),function(F){const f5=f4,H=F[f5(0x340)];switch(H[f5(0x736)]){case f5(0x685):b=H['config'],v(H['transcoderBinary']);break;case'transcode':f['then'](()=>{const f6=f5;try{const {faces:L,buffers:N,width:R,height:S,hasAlpha:T,format:U,type:a0,dfdFlags:a1}=w(H['buffer']);self[f6(0xb9)]({'type':'transcode','id':H['id'],'data':{'faces':L,'width':R,'height':S,'hasAlpha':T,'format':U,'type':a0,'dfdFlags':a1}},N);}catch(a2){console['error'](a2),self[f6(0xb9)]({'type':'error','id':H['id'],'error':a2['message']});}});break;}});function v(F){const f7=f4;f=new Promise(H=>{i={'wasmBinary':F,'onRuntimeInitialized':H},BASIS(i);})[f7(0x82c)](()=>{const f8=f7;i['initializeBasis'](),i[f8(0x7a6)]===void 0x0&&console['warn'](f8(0x78b));});}function w(a0){const f9=f4,a1=new i[(f9(0x7a6))](new Uint8Array(a0));function a2(){const fb=f9;a1[fb(0x753)](),a1[fb(0x393)]();}if(!a1[f9(0x8fb)]())throw a2(),new Error('THREE.KTX2Loader:\x09Invalid\x20or\x20unsupported\x20.ktx2\x20file');let a3;if(a1['isUASTC']())a3=p['UASTC'];else{if(a1[f9(0xaa4)]())a3=p['ETC1S'];else{if(a1['isHDR']())a3=p['UASTC_HDR'];else throw new Error('THREE.KTX2Loader:\x20Unknown\x20Basis\x20encoding');}}const a4=a1[f9(0x283)](),a5=a1['getHeight'](),a6=a1['getLayers']()||0x1,a7=a1[f9(0x358)](),a8=a1['getFaces'](),a9=a1['getHasAlpha'](),ab=a1['getDFDFlags'](),{transcoderFormat:aj,engineFormat:ak,engineType:am}=z(a3,a4,a5,a9);if(!a4||!a5||!a7)throw a2(),new Error(f9(0x42e));if(!a1['startTranscoding']())throw a2(),new Error('THREE.KTX2Loader:\x20.startTranscoding\x20failed');const an=[],ap=[];for(let aq=0x0;aq<a8;aq++){const av=[];for(let aw=0x0;aw<a7;aw++){const ax=[];let ay,az;for(let aC=0x0;aC<a6;aC++){const aD=a1[f9(0x5c7)](aw,aC,aq);aq===0x0&&aw===0x0&&aC===0x0&&(aD[f9(0xadb)]%0x4!==0x0||aD[f9(0x58f)]%0x4!==0x0)&&console[f9(0x5fb)](f9(0x48b)),a7>0x1?(ay=aD['origWidth'],az=aD[f9(0x58f)]):(ay=aD['width'],az=aD[f9(0x19e)]);let aE=new Uint8Array(a1[f9(0x2e4)](aw,aC,0x0,aj));const aF=a1['transcodeImage'](aE,aw,aC,aq,aj,0x0,-0x1,-0x1);if(am===k[f9(0x9e8)]&&(aE=new Uint16Array(aE['buffer'],aE['byteOffset'],aE[f9(0x175)]/Uint16Array['BYTES_PER_ELEMENT'])),!aF)throw a2(),new Error(f9(0x33d));ax[f9(0x4f5)](aE);}const aB=E(ax);av[f9(0x4f5)]({'data':aB,'width':ay,'height':az}),ap['push'](aB['buffer']);}an[f9(0x4f5)]({'mipmaps':av,'width':a4,'height':a5,'format':ak,'type':am});}return a2(),{'faces':an,'buffers':ap,'width':a4,'height':a5,'hasAlpha':a9,'dfdFlags':ab,'format':ak,'type':am};}const x=[{'if':f4(0x919),'basisFormat':[p[f4(0xa53)]],'transcoderFormat':[m[f4(0x6de)],m['ASTC_4x4']],'engineFormat':[j['RGBA_ASTC_4x4_Format'],j[f4(0x15c)]],'engineType':[k[f4(0x93f)]],'priorityETC1S':0x1/0x0,'priorityUASTC':0x1,'needsPowerOfTwo':!0x1},{'if':'bptcSupported','basisFormat':[p['ETC1S'],p[f4(0xa53)]],'transcoderFormat':[m[f4(0x6cf)],m[f4(0x6cf)]],'engineFormat':[j['RGBA_BPTC_Format'],j[f4(0x507)]],'engineType':[k['UnsignedByteType']],'priorityETC1S':0x3,'priorityUASTC':0x2,'needsPowerOfTwo':!0x1},{'if':f4(0x5ea),'basisFormat':[p[f4(0x766)],p['UASTC']],'transcoderFormat':[m['BC1'],m['BC3']],'engineFormat':[j['RGBA_S3TC_DXT1_Format'],j[f4(0x44f)]],'engineType':[k[f4(0x93f)]],'priorityETC1S':0x4,'priorityUASTC':0x5,'needsPowerOfTwo':!0x1},{'if':'etc2Supported','basisFormat':[p['ETC1S'],p['UASTC']],'transcoderFormat':[m['ETC1'],m['ETC2']],'engineFormat':[j['RGB_ETC2_Format'],j['RGBA_ETC2_EAC_Format']],'engineType':[k['UnsignedByteType']],'priorityETC1S':0x1,'priorityUASTC':0x3,'needsPowerOfTwo':!0x1},{'if':'etc1Supported','basisFormat':[p[f4(0x766)],p['UASTC']],'transcoderFormat':[m[f4(0x756)]],'engineFormat':[j[f4(0x467)]],'engineType':[k[f4(0x93f)]],'priorityETC1S':0x2,'priorityUASTC':0x4,'needsPowerOfTwo':!0x1},{'if':f4(0x50b),'basisFormat':[p[f4(0x766)],p[f4(0xa53)]],'transcoderFormat':[m['PVRTC1_4_RGB'],m[f4(0x309)]],'engineFormat':[j['RGB_PVRTC_4BPPV1_Format'],j[f4(0x788)]],'engineType':[k[f4(0x93f)]],'priorityETC1S':0x5,'priorityUASTC':0x6,'needsPowerOfTwo':!0x0},{'if':'bptcSupported','basisFormat':[p['UASTC_HDR']],'transcoderFormat':[m['BC6H']],'engineFormat':[j[f4(0xa40)]],'engineType':[k['HalfFloatType']],'priorityHDR':0x1,'needsPowerOfTwo':!0x1},{'basisFormat':[p[f4(0x766)],p[f4(0xa53)]],'transcoderFormat':[m['RGBA32'],m[f4(0x9f6)]],'engineFormat':[j['RGBAFormat'],j['RGBAFormat']],'engineType':[k[f4(0x93f)],k['UnsignedByteType']],'priorityETC1S':0x64,'priorityUASTC':0x64,'needsPowerOfTwo':!0x1},{'basisFormat':[p[f4(0x10c)]],'transcoderFormat':[m[f4(0x5f6)]],'engineFormat':[j['RGBAFormat']],'engineType':[k['HalfFloatType']],'priorityHDR':0x64,'needsPowerOfTwo':!0x1}],y={[p[f4(0x766)]]:x['filter'](F=>F[f4(0x8c7)]['includes'](p[f4(0x766)]))['sort']((F,H)=>F['priorityUASTC']-H['priorityUASTC']),[p['UASTC']]:x[f4(0x2e7)](F=>F['basisFormat'][f4(0xa1c)](p['UASTC']))['sort']((F,H)=>F['priorityUASTC']-H['priorityUASTC']),[p['UASTC_HDR']]:x[f4(0x2e7)](F=>F[f4(0x8c7)][f4(0xa1c)](p['UASTC_HDR']))[f4(0x3b2)]((F,H)=>F['priorityHDR']-H[f4(0x700)])};function z(F,H,L,N){const fe=f4,R=y[F];for(let S=0x0;S<R[fe(0x3ea)];S++){const T=R[S];if(T['if']&&!b[T['if']]||!T['basisFormat']['includes'](F)||N&&T['transcoderFormat']['length']<0x2||T['needsPowerOfTwo']&&!(B(H)&&B(L)))continue;const U=T[fe(0xa52)][N?0x1:0x0],a0=T['engineFormat'][N?0x1:0x0],a1=T[fe(0x41f)][0x0];return{'transcoderFormat':U,'engineFormat':a0,'engineType':a1};}throw new Error(fe(0x466));}function B(F){return F<=0x2?!0x0:(F&F-0x1)===0x0&&F!==0x0;}function E(F){const ff=f4;if(F[ff(0x3ea)]===0x1)return F[0x0];let H=0x0;for(let R=0x0;R<F[ff(0x3ea)];R++){const S=F[R];H+=S['byteLength'];}const L=new Uint8Array(H);let N=0x0;for(let T=0x0;T<F['length'];T++){const U=F[T];L['set'](U,N),N+=U[ff(0x175)];}return L;}};const Dh=new Set([a0S,a0R,a0Q]),Mn={[za]:a0S,[Na]:a0S,[Pa]:a0S,[ka]:a0S,[Ga]:a0R,[Oa]:a0R,[La]:a0R,[Ra]:a0R,[Ua]:a0Q,[Fa]:a0Q,[Ma]:a0Q,[Da]:a0Q,[qr]:a0P,[qa]:a0O,[Ha]:a0O},Ln={[za]:a0V,[Na]:a0U,[Pa]:a0T,[ka]:a0T,[Ga]:a0V,[Oa]:a0U,[La]:a0T,[Ra]:a0T,[Ua]:a0V,[Fa]:a0U,[Ma]:a0T,[Da]:a0T,[qr]:a0U,[qa]:a0T,[Ha]:a0T};async function Mh(b){const fj=a0bL,{vkFormat:f}=b;if(Mn[f]===void 0x0)throw new Error('THREE.KTX2Loader:\x20Unsupported\x20vkFormat.');let g;b[fj(0x500)]===po&&(Dn||(Dn=new Promise(async k=>{const m=new Th();await m['init'](),k(m);})),g=await Dn);const i=[];for(let k=0x0;k<b[fj(0x462)]['length'];k++){const m=Math['max'](0x1,b['pixelWidth']>>k),p=Math[fj(0x36b)](0x1,b[fj(0x153)]>>k),u=b[fj(0x3f1)]?Math[fj(0x36b)](0x1,b[fj(0x3f1)]>>k):0x0,v=b[fj(0x462)][k];let w;if(b['supercompressionScheme']===gh)w=v[fj(0x6bb)];else{if(b[fj(0x500)]===po)w=g[fj(0x439)](v['levelData'],v[fj(0xa27)]);else throw new Error(fj(0x77b));}let x;Ln[f]===a0V?x=new Float32Array(w[fj(0x186)],w[fj(0xa4f)],w[fj(0x175)]/Float32Array[fj(0x499)]):Ln[f]===a0U?x=new Uint16Array(w[fj(0x186)],w['byteOffset'],w['byteLength']/Uint16Array[fj(0x499)]):x=w,i[fj(0x4f5)]({'data':x,'width':m,'height':p,'depth':u});}let j;if(Dh['has'](Mn[f]))j=b['pixelDepth']===0x0?new a0W(i[0x0][fj(0x340)],b['pixelWidth'],b['pixelHeight']):new a0X(i[0x0]['data'],b[fj(0x1ca)],b[fj(0x153)],b[fj(0x3f1)]);else{if(b['pixelDepth']>0x0)throw new Error('THREE.KTX2Loader:\x20Unsupported\x20pixelDepth.');j=new a0K(i,b['pixelWidth'],b[fj(0x153)]),j[fj(0x292)]=i['length']===0x1?a0L:a0M,j[fj(0x3b3)]=a0L;}return j['mipmaps']=i,j['type']=Ln[f],j['format']=Mn[f],j[fj(0x1bb)]=ja(b),j[fj(0x12d)]=!0x0,Promise['resolve'](j);}function ja(b){const fk=a0bL,c=b[fk(0x1aa)][0x0];return c[fk(0x2b4)]===mh?c[fk(0x928)]===mo?a0D:a0E:c[fk(0x2b4)]===bh?c['transferFunction']===mo?Qh:Sh:c['colorPrimaries']===ph?a0N:(console[fk(0x5fb)]('THREE.KTX2Loader:\x20Unsupported\x20color\x20primaries,\x20\x22'+c['colorPrimaries']+'\x22'),a0N);}class Lh{constructor(b=Math){const fm=a0bL;this['grad3']=[[0x1,0x1,0x0],[-0x1,0x1,0x0],[0x1,-0x1,0x0],[-0x1,-0x1,0x0],[0x1,0x0,0x1],[-0x1,0x0,0x1],[0x1,0x0,-0x1],[-0x1,0x0,-0x1],[0x0,0x1,0x1],[0x0,-0x1,0x1],[0x0,0x1,-0x1],[0x0,-0x1,-0x1]],this['grad4']=[[0x0,0x1,0x1,0x1],[0x0,0x1,0x1,-0x1],[0x0,0x1,-0x1,0x1],[0x0,0x1,-0x1,-0x1],[0x0,-0x1,0x1,0x1],[0x0,-0x1,0x1,-0x1],[0x0,-0x1,-0x1,0x1],[0x0,-0x1,-0x1,-0x1],[0x1,0x0,0x1,0x1],[0x1,0x0,0x1,-0x1],[0x1,0x0,-0x1,0x1],[0x1,0x0,-0x1,-0x1],[-0x1,0x0,0x1,0x1],[-0x1,0x0,0x1,-0x1],[-0x1,0x0,-0x1,0x1],[-0x1,0x0,-0x1,-0x1],[0x1,0x1,0x0,0x1],[0x1,0x1,0x0,-0x1],[0x1,-0x1,0x0,0x1],[0x1,-0x1,0x0,-0x1],[-0x1,0x1,0x0,0x1],[-0x1,0x1,0x0,-0x1],[-0x1,-0x1,0x0,0x1],[-0x1,-0x1,0x0,-0x1],[0x1,0x1,0x1,0x0],[0x1,0x1,-0x1,0x0],[0x1,-0x1,0x1,0x0],[0x1,-0x1,-0x1,0x0],[-0x1,0x1,0x1,0x0],[-0x1,0x1,-0x1,0x0],[-0x1,-0x1,0x1,0x0],[-0x1,-0x1,-0x1,0x0]],this['p']=[];for(let c=0x0;c<0x100;c++)this['p'][c]=Math[fm(0xb11)](b[fm(0x3ac)]()*0x100);this['perm']=[];for(let d=0x0;d<0x200;d++)this['perm'][d]=this['p'][d&0xff];this['simplex']=[[0x0,0x1,0x2,0x3],[0x0,0x1,0x3,0x2],[0x0,0x0,0x0,0x0],[0x0,0x2,0x3,0x1],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x1,0x2,0x3,0x0],[0x0,0x2,0x1,0x3],[0x0,0x0,0x0,0x0],[0x0,0x3,0x1,0x2],[0x0,0x3,0x2,0x1],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x1,0x3,0x2,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x1,0x2,0x0,0x3],[0x0,0x0,0x0,0x0],[0x1,0x3,0x0,0x2],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x2,0x3,0x0,0x1],[0x2,0x3,0x1,0x0],[0x1,0x0,0x2,0x3],[0x1,0x0,0x3,0x2],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x2,0x0,0x3,0x1],[0x0,0x0,0x0,0x0],[0x2,0x1,0x3,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x2,0x0,0x1,0x3],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x3,0x0,0x1,0x2],[0x3,0x0,0x2,0x1],[0x0,0x0,0x0,0x0],[0x3,0x1,0x2,0x0],[0x2,0x1,0x0,0x3],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x3,0x1,0x0,0x2],[0x0,0x0,0x0,0x0],[0x3,0x2,0x0,0x1],[0x3,0x2,0x1,0x0]];}['dot'](b,c,d){return b[0x0]*c+b[0x1]*d;}['dot3'](b,c,d,f){return b[0x0]*c+b[0x1]*d+b[0x2]*f;}[a0bL(0x79e)](b,c,d,f,g){return b[0x0]*c+b[0x1]*d+b[0x2]*f+b[0x3]*g;}[a0bL(0x9ae)](i,j){const fn=a0bL;let z,F,H;const N=0.5*(Math[fn(0x691)](0x3)-0x1),U=(i+j)*N,a0=Math['floor'](i+U),a1=Math[fn(0xb11)](j+U),a2=(0x3-Math[fn(0x691)](0x3))/0x6,a3=(a0+a1)*a2,a4=a0-a3,a5=a1-a3,a6=i-a4,a7=j-a5;let a8,a9;a6>a7?(a8=0x1,a9=0x0):(a8=0x0,a9=0x1);const ab=a6-a8+a2,aj=a7-a9+a2,ak=a6-0x1+0x2*a2,am=a7-0x1+0x2*a2,an=a0&0xff,ap=a1&0xff,aq=this[fn(0x93d)][an+this[fn(0x93d)][ap]]%0xc,av=this['perm'][an+a8+this[fn(0x93d)][ap+a9]]%0xc,aw=this[fn(0x93d)][an+0x1+this[fn(0x93d)][ap+0x1]]%0xc;let ax=0.5-a6*a6-a7*a7;ax<0x0?z=0x0:(ax*=ax,z=ax*ax*this['dot'](this['grad3'][aq],a6,a7));let ay=0.5-ab*ab-aj*aj;ay<0x0?F=0x0:(ay*=ay,F=ay*ay*this[fn(0x7c9)](this['grad3'][av],ab,aj));let az=0.5-ak*ak-am*am;return az<0x0?H=0x0:(az*=az,H=az*az*this['dot'](this['grad3'][aw],ak,am)),0x46*(z+F+H);}['noise3d'](i,l,a0){const fp=a0bL;let a1,a2,a3,a4;const a5=(i+l+a0)*0.3333333333333333,a6=Math['floor'](i+a5),a7=Math['floor'](l+a5),a8=Math[fp(0xb11)](a0+a5),a9=0x1/0x6,ab=(a6+a7+a8)*a9,aj=a6-ab,ak=a7-ab,am=a8-ab,an=i-aj,ap=l-ak,aq=a0-am;let av,aw,ax,ay,az,aB;an>=ap?ap>=aq?(av=0x1,aw=0x0,ax=0x0,ay=0x1,az=0x1,aB=0x0):an>=aq?(av=0x1,aw=0x0,ax=0x0,ay=0x1,az=0x0,aB=0x1):(av=0x0,aw=0x0,ax=0x1,ay=0x1,az=0x0,aB=0x1):ap<aq?(av=0x0,aw=0x0,ax=0x1,ay=0x0,az=0x1,aB=0x1):an<aq?(av=0x0,aw=0x1,ax=0x0,ay=0x0,az=0x1,aB=0x1):(av=0x0,aw=0x1,ax=0x0,ay=0x1,az=0x1,aB=0x0);const aC=an-av+a9,aD=ap-aw+a9,aE=aq-ax+a9,aF=an-ay+0x2*a9,aG=ap-az+0x2*a9,aH=aq-aB+0x2*a9,aI=an-0x1+0x3*a9,aJ=ap-0x1+0x3*a9,aK=aq-0x1+0x3*a9,aL=a6&0xff,aM=a7&0xff,aN=a8&0xff,aO=this['perm'][aL+this['perm'][aM+this['perm'][aN]]]%0xc,aP=this[fp(0x93d)][aL+av+this[fp(0x93d)][aM+aw+this['perm'][aN+ax]]]%0xc,aQ=this['perm'][aL+ay+this['perm'][aM+az+this[fp(0x93d)][aN+aB]]]%0xc,aR=this['perm'][aL+0x1+this['perm'][aM+0x1+this[fp(0x93d)][aN+0x1]]]%0xc;let aS=0.6-an*an-ap*ap-aq*aq;aS<0x0?a1=0x0:(aS*=aS,a1=aS*aS*this['dot3'](this[fp(0x748)][aO],an,ap,aq));let aT=0.6-aC*aC-aD*aD-aE*aE;aT<0x0?a2=0x0:(aT*=aT,a2=aT*aT*this[fp(0x635)](this[fp(0x748)][aP],aC,aD,aE));let aU=0.6-aF*aF-aG*aG-aH*aH;aU<0x0?a3=0x0:(aU*=aU,a3=aU*aU*this[fp(0x635)](this['grad3'][aQ],aF,aG,aH));let aV=0.6-aI*aI-aJ*aJ-aK*aK;return aV<0x0?a4=0x0:(aV*=aV,a4=aV*aV*this['dot3'](this['grad3'][aR],aI,aJ,aK)),0x20*(a1+a2+a3+a4);}[a0bL(0x5c8)](i,a0,a1,a2){const fq=a0bL,a3=this['grad4'],a4=this[fq(0x798)],a5=this['perm'],a6=(Math[fq(0x691)](0x5)-0x1)/0x4,a7=(0x5-Math[fq(0x691)](0x5))/0x14;let a8,a9,ab,aj,ak;const am=(i+a0+a1+a2)*a6,ap=Math['floor'](i+am),aq=Math[fq(0xb11)](a0+am),av=Math[fq(0xb11)](a1+am),aw=Math['floor'](a2+am),ax=(ap+aq+av+aw)*a7,ay=ap-ax,az=aq-ax,aB=av-ax,aC=aw-ax,aD=i-ay,aE=a0-az,aF=a1-aB,aG=a2-aC,aH=aD>aE?0x20:0x0,aI=aD>aF?0x10:0x0,aJ=aE>aF?0x8:0x0,aK=aD>aG?0x4:0x0,aL=aE>aG?0x2:0x0,aM=aF>aG?0x1:0x0,aN=aH+aI+aJ+aK+aL+aM,aO=a4[aN][0x0]>=0x3?0x1:0x0,aP=a4[aN][0x1]>=0x3?0x1:0x0,aQ=a4[aN][0x2]>=0x3?0x1:0x0,aR=a4[aN][0x3]>=0x3?0x1:0x0,aS=a4[aN][0x0]>=0x2?0x1:0x0,aT=a4[aN][0x1]>=0x2?0x1:0x0,aU=a4[aN][0x2]>=0x2?0x1:0x0,aV=a4[aN][0x3]>=0x2?0x1:0x0,aW=a4[aN][0x0]>=0x1?0x1:0x0,aX=a4[aN][0x1]>=0x1?0x1:0x0,aY=a4[aN][0x2]>=0x1?0x1:0x0,aZ=a4[aN][0x3]>=0x1?0x1:0x0,b0=aD-aO+a7,b1=aE-aP+a7,b2=aF-aQ+a7,b3=aG-aR+a7,b4=aD-aS+0x2*a7,b5=aE-aT+0x2*a7,b6=aF-aU+0x2*a7,b7=aG-aV+0x2*a7,b8=aD-aW+0x3*a7,b9=aE-aX+0x3*a7,bb=aF-aY+0x3*a7,bf=aG-aZ+0x3*a7,bj=aD-0x1+0x4*a7,bk=aE-0x1+0x4*a7,bm=aF-0x1+0x4*a7,bp=aG-0x1+0x4*a7,bq=ap&0xff,bv=aq&0xff,bw=av&0xff,bx=aw&0xff,by=a5[bq+a5[bv+a5[bw+a5[bx]]]]%0x20,bz=a5[bq+aO+a5[bv+aP+a5[bw+aQ+a5[bx+aR]]]]%0x20,bB=a5[bq+aS+a5[bv+aT+a5[bw+aU+a5[bx+aV]]]]%0x20,bC=a5[bq+aW+a5[bv+aX+a5[bw+aY+a5[bx+aZ]]]]%0x20,bD=a5[bq+0x1+a5[bv+0x1+a5[bw+0x1+a5[bx+0x1]]]]%0x20;let bE=0.6-aD*aD-aE*aE-aF*aF-aG*aG;bE<0x0?a8=0x0:(bE*=bE,a8=bE*bE*this['dot4'](a3[by],aD,aE,aF,aG));let bF=0.6-b0*b0-b1*b1-b2*b2-b3*b3;bF<0x0?a9=0x0:(bF*=bF,a9=bF*bF*this[fq(0x79e)](a3[bz],b0,b1,b2,b3));let bG=0.6-b4*b4-b5*b5-b6*b6-b7*b7;bG<0x0?ab=0x0:(bG*=bG,ab=bG*bG*this[fq(0x79e)](a3[bB],b4,b5,b6,b7));let bH=0.6-b8*b8-b9*b9-bb*bb-bf*bf;bH<0x0?aj=0x0:(bH*=bH,aj=bH*bH*this[fq(0x79e)](a3[bC],b8,b9,bb,bf));let bI=0.6-bj*bj-bk*bk-bm*bm-bp*bp;return bI<0x0?ak=0x0:(bI*=bI,ak=bI*bI*this['dot4'](a3[bD],bj,bk,bm,bp)),0x1b*(a8+a9+ab+aj+ak);}}const ns={'name':a0bL(0x7e9),'uniforms':{'tDiffuse':{'value':null},'opacity':{'value':0x1}},'vertexShader':a0bL(0x8f7),'fragmentShader':'\x0a\x0a\x09\x09uniform\x20float\x20opacity;\x0a\x0a\x09\x09uniform\x20sampler2D\x20tDiffuse;\x0a\x0a\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09vec4\x20texel\x20=\x20texture2D(\x20tDiffuse,\x20vUv\x20);\x0a\x09\x09\x09gl_FragColor\x20=\x20opacity\x20*\x20texel;\x0a\x0a\x0a\x09\x09}'};class Rh extends vi{constructor(b,c){const fv=a0bL;super(),this[fv(0xea)]=c!==void 0x0?c:fv(0x143),b instanceof a0u?(this['uniforms']=b['uniforms'],this[fv(0x690)]=b):b&&(this['uniforms']=a0w[fv(0x471)](b[fv(0x526)]),this[fv(0x690)]=new a0u({'name':b[fv(0x74)]!==void 0x0?b['name']:'unspecified','defines':Object['assign']({},b['defines']),'uniforms':this[fv(0x526)],'vertexShader':b[fv(0x933)],'fragmentShader':b['fragmentShader']})),this[fv(0x610)]=new Hr(this['material']);}[a0bL(0x8d0)](b,c,d){const fw=a0bL;this['uniforms'][this['textureID']]&&(this[fw(0x526)][this[fw(0xea)]][fw(0xaa2)]=d[fw(0x2b5)]),this['fsQuad']['material']=this['material'],this['renderToScreen']?(b['setRenderTarget'](null),this[fw(0x610)][fw(0x8d0)](b)):(b[fw(0x5bb)](c),this[fw(0x752)]&&b[fw(0x752)](b['autoClearColor'],b['autoClearDepth'],b['autoClearStencil']),this[fw(0x610)]['render'](b));}['dispose'](){const fx=a0bL;this[fx(0x690)]['dispose'](),this['fsQuad']['dispose']();}}class xo extends vi{constructor(b,c){const fy=a0bL;super(),this[fy(0x440)]=b,this['camera']=c,this[fy(0x752)]=!0x0,this[fy(0x16a)]=!0x1,this[fy(0x9d5)]=!0x1;}['render'](b,d,f){const fz=a0bL,g=b['getContext'](),h=b['state'];h[fz(0x99b)][fz(0x66e)]['setMask'](!0x1),h['buffers']['depth'][fz(0xa05)](!0x1),h['buffers']['color']['setLocked'](!0x0),h['buffers']['depth'][fz(0x2b1)](!0x0);let i,j;this[fz(0x9d5)]?(i=0x0,j=0x1):(i=0x1,j=0x0),h['buffers'][fz(0x136)]['setTest'](!0x0),h[fz(0x99b)][fz(0x136)]['setOp'](g[fz(0x96f)],g[fz(0x96f)],g[fz(0x96f)]),h['buffers']['stencil'][fz(0x844)](g[fz(0xaf3)],i,0xffffffff),h['buffers'][fz(0x136)][fz(0xa8)](j),h['buffers'][fz(0x136)]['setLocked'](!0x0),b[fz(0x5bb)](f),this[fz(0x752)]&&b[fz(0x752)](),b['render'](this['scene'],this[fz(0x710)]),b[fz(0x5bb)](d),this['clear']&&b['clear'](),b[fz(0x8d0)](this['scene'],this[fz(0x710)]),h['buffers']['color'][fz(0x2b1)](!0x1),h[fz(0x99b)][fz(0xac9)][fz(0x2b1)](!0x1),h['buffers']['color'][fz(0xa05)](!0x0),h['buffers'][fz(0xac9)]['setMask'](!0x0),h['buffers'][fz(0x136)][fz(0x2b1)](!0x1),h['buffers']['stencil'][fz(0x844)](g['EQUAL'],0x1,0xffffffff),h[fz(0x99b)][fz(0x136)]['setOp'](g['KEEP'],g[fz(0x4cf)],g[fz(0x4cf)]),h[fz(0x99b)][fz(0x136)]['setLocked'](!0x0);}}class Ph extends vi{constructor(){super(),this['needsSwap']=!0x1;}['render'](b){const fB=a0bL;b[fB(0x297)]['buffers'][fB(0x136)]['setLocked'](!0x1),b[fB(0x297)][fB(0x99b)][fB(0x136)]['setTest'](!0x1);}}class kh{constructor(b,c){const fC=a0bL;if(this[fC(0x9b)]=b,this['_pixelRatio']=b['getPixelRatio'](),c===void 0x0){const d=b['getSize'](new a0l());this[fC(0x1d5)]=d[fC(0xb1f)],this[fC(0x9a1)]=d[fC(0x19e)],c=new a0a7(this[fC(0x1d5)]*this['_pixelRatio'],this[fC(0x9a1)]*this[fC(0x242)],{'type':a0U}),c[fC(0x2b5)]['name']=fC(0x981);}else this[fC(0x1d5)]=c['width'],this[fC(0x9a1)]=c['height'];this['renderTarget1']=c,this['renderTarget2']=c['clone'](),this[fC(0x909)][fC(0x2b5)]['name']=fC(0x8eb),this[fC(0x1b8)]=this[fC(0x7ba)],this['readBuffer']=this['renderTarget2'],this['renderToScreen']=!0x0,this[fC(0x9ce)]=[],this[fC(0x821)]=new Rh(ns),this['copyPass']['material'][fC(0x285)]=a0a8,this[fC(0x1ac)]=new a0a9();}['swapBuffers'](){const fD=a0bL,b=this[fD(0x3cb)];this[fD(0x3cb)]=this['writeBuffer'],this['writeBuffer']=b;}['addPass'](b){const fE=a0bL;this['passes'][fE(0x4f5)](b),b['setSize'](this['_width']*this['_pixelRatio'],this['_height']*this[fE(0x242)]);}[a0bL(0x5fd)](b,c){const fF=a0bL;this[fF(0x9ce)]['splice'](c,0x0,b),b[fF(0x23b)](this['_width']*this[fF(0x242)],this[fF(0x9a1)]*this[fF(0x242)]);}[a0bL(0x5ac)](b){const fG=a0bL,c=this['passes']['indexOf'](b);c!==-0x1&&this[fG(0x9ce)]['splice'](c,0x1);}[a0bL(0x7cd)](b){const fH=a0bL;for(let c=b+0x1;c<this[fH(0x9ce)][fH(0x3ea)];c++)if(this['passes'][c]['enabled'])return!0x1;return!0x0;}[a0bL(0x8d0)](b){const fI=a0bL;b===void 0x0&&(b=this['clock']['getDelta']());const d=this['renderer']['getRenderTarget']();let f=!0x1;for(let g=0x0,h=this[fI(0x9ce)][fI(0x3ea)];g<h;g++){const i=this[fI(0x9ce)][g];if(i[fI(0x2d3)]!==!0x1){if(i['renderToScreen']=this[fI(0x5b6)]&&this[fI(0x7cd)](g),i[fI(0x8d0)](this[fI(0x9b)],this['writeBuffer'],this['readBuffer'],b,f),i['needsSwap']){if(f){const j=this['renderer']['getContext'](),k=this[fI(0x9b)]['state'][fI(0x99b)]['stencil'];k['setFunc'](j['NOTEQUAL'],0x1,0xffffffff),this['copyPass']['render'](this[fI(0x9b)],this[fI(0x1b8)],this[fI(0x3cb)],b),k['setFunc'](j[fI(0xa3f)],0x1,0xffffffff);}this['swapBuffers']();}xo!==void 0x0&&(i instanceof xo?f=!0x0:i instanceof Ph&&(f=!0x1));}}this['renderer']['setRenderTarget'](d);}['reset'](b){const fJ=a0bL;if(b===void 0x0){const c=this[fJ(0x9b)]['getSize'](new a0l());this[fJ(0x242)]=this['renderer']['getPixelRatio'](),this['_width']=c[fJ(0xb1f)],this['_height']=c['height'],b=this[fJ(0x7ba)][fJ(0x471)](),b['setSize'](this['_width']*this['_pixelRatio'],this[fJ(0x9a1)]*this[fJ(0x242)]);}this['renderTarget1']['dispose'](),this[fJ(0x909)][fJ(0x1a5)](),this[fJ(0x7ba)]=b,this['renderTarget2']=b['clone'](),this[fJ(0x1b8)]=this['renderTarget1'],this['readBuffer']=this[fJ(0x909)];}[a0bL(0x23b)](b,c){const fK=a0bL;this[fK(0x1d5)]=b,this['_height']=c;const d=this['_width']*this['_pixelRatio'],f=this[fK(0x9a1)]*this['_pixelRatio'];this['renderTarget1'][fK(0x23b)](d,f),this[fK(0x909)][fK(0x23b)](d,f);for(let g=0x0;g<this[fK(0x9ce)][fK(0x3ea)];g++)this[fK(0x9ce)][g][fK(0x23b)](d,f);}['setPixelRatio'](b){const fL=a0bL;this[fL(0x242)]=b,this[fL(0x23b)](this[fL(0x1d5)],this[fL(0x9a1)]);}['dispose'](){const fM=a0bL;this['renderTarget1']['dispose'](),this['renderTarget2']['dispose'](),this[fM(0x821)][fM(0x1a5)]();}}class Fh extends vi{constructor(b,c,d=null,f=null,g=null){const fN=a0bL;super(),this[fN(0x440)]=b,this[fN(0x710)]=c,this[fN(0x9d6)]=d,this[fN(0x4d2)]=f,this['clearAlpha']=g,this['clear']=!0x0,this['clearDepth']=!0x1,this['needsSwap']=!0x1,this[fN(0x28d)]=new a0G();}['render'](b,c,d){const fO=a0bL,f=b[fO(0x1df)];b['autoClear']=!0x1;let g,h;this[fO(0x9d6)]!==null&&(h=this[fO(0x440)][fO(0x9d6)],this[fO(0x440)]['overrideMaterial']=this['overrideMaterial']),this['clearColor']!==null&&(b[fO(0x607)](this['_oldClearColor']),b['setClearColor'](this[fO(0x4d2)],b[fO(0x7c5)]())),this['clearAlpha']!==null&&(g=b['getClearAlpha'](),b[fO(0x4eb)](this['clearAlpha'])),this['clearDepth']==!0x0&&b[fO(0x6fa)](),b['setRenderTarget'](this['renderToScreen']?null:d),this['clear']===!0x0&&b['clear'](b[fO(0x3b7)],b['autoClearDepth'],b[fO(0x5f1)]),b[fO(0x8d0)](this['scene'],this[fO(0x710)]),this[fO(0x4d2)]!==null&&b['setClearColor'](this[fO(0x28d)]),this[fO(0x385)]!==null&&b[fO(0x4eb)](g),this[fO(0x9d6)]!==null&&(this['scene'][fO(0x9d6)]=h),b[fO(0x1df)]=f;}}const bs={'defines':{'PERSPECTIVE_CAMERA':0x1,'KERNEL_SIZE':0x20},'uniforms':{'tNormal':{'value':null},'tDepth':{'value':null},'tNoise':{'value':null},'kernel':{'value':null},'cameraNear':{'value':null},'cameraFar':{'value':null},'resolution':{'value':new a0l()},'cameraProjectionMatrix':{'value':new a0m()},'cameraInverseProjectionMatrix':{'value':new a0m()},'kernelRadius':{'value':0x8},'minDistance':{'value':0.005},'maxDistance':{'value':0.05}},'vertexShader':'\x0a\x0a\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09vUv\x20=\x20uv;\x0a\x0a\x09\x09\x09gl_Position\x20=\x20projectionMatrix\x20*\x20modelViewMatrix\x20*\x20vec4(\x20position,\x201.0\x20);\x0a\x0a\x09\x09}','fragmentShader':'\x0a\x09\x09uniform\x20highp\x20sampler2D\x20tNormal;\x0a\x09\x09uniform\x20highp\x20sampler2D\x20tDepth;\x0a\x09\x09uniform\x20sampler2D\x20tNoise;\x0a\x0a\x09\x09uniform\x20vec3\x20kernel[\x20KERNEL_SIZE\x20];\x0a\x0a\x09\x09uniform\x20vec2\x20resolution;\x0a\x0a\x09\x09uniform\x20float\x20cameraNear;\x0a\x09\x09uniform\x20float\x20cameraFar;\x0a\x09\x09uniform\x20mat4\x20cameraProjectionMatrix;\x0a\x09\x09uniform\x20mat4\x20cameraInverseProjectionMatrix;\x0a\x0a\x09\x09uniform\x20float\x20kernelRadius;\x0a\x09\x09uniform\x20float\x20minDistance;\x20//\x20avoid\x20artifacts\x20caused\x20by\x20neighbour\x20fragments\x20with\x20minimal\x20depth\x20difference\x0a\x09\x09uniform\x20float\x20maxDistance;\x20//\x20avoid\x20the\x20influence\x20of\x20fragments\x20which\x20are\x20too\x20far\x20away\x0a\x0a\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09#include\x20<packing>\x0a\x0a\x09\x09float\x20getDepth(\x20const\x20in\x20vec2\x20screenPosition\x20)\x20{\x0a\x0a\x09\x09\x09return\x20texture2D(\x20tDepth,\x20screenPosition\x20).x;\x0a\x0a\x09\x09}\x0a\x0a\x09\x09float\x20getLinearDepth(\x20const\x20in\x20vec2\x20screenPosition\x20)\x20{\x0a\x0a\x09\x09\x09#if\x20PERSPECTIVE_CAMERA\x20==\x201\x0a\x0a\x09\x09\x09\x09float\x20fragCoordZ\x20=\x20texture2D(\x20tDepth,\x20screenPosition\x20).x;\x0a\x09\x09\x09\x09float\x20viewZ\x20=\x20perspectiveDepthToViewZ(\x20fragCoordZ,\x20cameraNear,\x20cameraFar\x20);\x0a\x09\x09\x09\x09return\x20viewZToOrthographicDepth(\x20viewZ,\x20cameraNear,\x20cameraFar\x20);\x0a\x0a\x09\x09\x09#else\x0a\x0a\x09\x09\x09\x09return\x20texture2D(\x20tDepth,\x20screenPosition\x20).x;\x0a\x0a\x09\x09\x09#endif\x0a\x0a\x09\x09}\x0a\x0a\x09\x09float\x20getViewZ(\x20const\x20in\x20float\x20depth\x20)\x20{\x0a\x0a\x09\x09\x09#if\x20PERSPECTIVE_CAMERA\x20==\x201\x0a\x0a\x09\x09\x09\x09return\x20perspectiveDepthToViewZ(\x20depth,\x20cameraNear,\x20cameraFar\x20);\x0a\x0a\x09\x09\x09#else\x0a\x0a\x09\x09\x09\x09return\x20orthographicDepthToViewZ(\x20depth,\x20cameraNear,\x20cameraFar\x20);\x0a\x0a\x09\x09\x09#endif\x0a\x0a\x09\x09}\x0a\x0a\x09\x09vec3\x20getViewPosition(\x20const\x20in\x20vec2\x20screenPosition,\x20const\x20in\x20float\x20depth,\x20const\x20in\x20float\x20viewZ\x20)\x20{\x0a\x0a\x09\x09\x09float\x20clipW\x20=\x20cameraProjectionMatrix[2][3]\x20*\x20viewZ\x20+\x20cameraProjectionMatrix[3][3];\x0a\x0a\x09\x09\x09vec4\x20clipPosition\x20=\x20vec4(\x20(\x20vec3(\x20screenPosition,\x20depth\x20)\x20-\x200.5\x20)\x20*\x202.0,\x201.0\x20);\x0a\x0a\x09\x09\x09clipPosition\x20*=\x20clipW;\x20//\x20unprojection.\x0a\x0a\x09\x09\x09return\x20(\x20cameraInverseProjectionMatrix\x20*\x20clipPosition\x20).xyz;\x0a\x0a\x09\x09}\x0a\x0a\x09\x09vec3\x20getViewNormal(\x20const\x20in\x20vec2\x20screenPosition\x20)\x20{\x0a\x0a\x09\x09\x09return\x20unpackRGBToNormal(\x20texture2D(\x20tNormal,\x20screenPosition\x20).xyz\x20);\x0a\x0a\x09\x09}\x0a\x0a\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09float\x20depth\x20=\x20getDepth(\x20vUv\x20);\x0a\x0a\x09\x09\x09if\x20(\x20depth\x20==\x201.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09gl_FragColor\x20=\x20vec4(\x201.0\x20);\x20//\x20don\x27t\x20influence\x20background\x0a\x09\x09\x09\x09\x0a\x09\x09\x09}\x20else\x20{\x0a\x0a\x09\x09\x09\x09float\x20viewZ\x20=\x20getViewZ(\x20depth\x20);\x0a\x0a\x09\x09\x09\x09vec3\x20viewPosition\x20=\x20getViewPosition(\x20vUv,\x20depth,\x20viewZ\x20);\x0a\x09\x09\x09\x09vec3\x20viewNormal\x20=\x20getViewNormal(\x20vUv\x20);\x0a\x0a\x09\x09\x09\x09vec2\x20noiseScale\x20=\x20vec2(\x20resolution.x\x20/\x204.0,\x20resolution.y\x20/\x204.0\x20);\x0a\x09\x09\x09\x09vec3\x20random\x20=\x20vec3(\x20texture2D(\x20tNoise,\x20vUv\x20*\x20noiseScale\x20).r\x20);\x0a\x0a\x09\x09\x09\x09//\x20compute\x20matrix\x20used\x20to\x20reorient\x20a\x20kernel\x20vector\x0a\x0a\x09\x09\x09\x09vec3\x20tangent\x20=\x20normalize(\x20random\x20-\x20viewNormal\x20*\x20dot(\x20random,\x20viewNormal\x20)\x20);\x0a\x09\x09\x09\x09vec3\x20bitangent\x20=\x20cross(\x20viewNormal,\x20tangent\x20);\x0a\x09\x09\x09\x09mat3\x20kernelMatrix\x20=\x20mat3(\x20tangent,\x20bitangent,\x20viewNormal\x20);\x0a\x0a\x09\x09\x09\x09float\x20occlusion\x20=\x200.0;\x0a\x0a\x09\x09\x09\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20KERNEL_SIZE;\x20i\x20++\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09vec3\x20sampleVector\x20=\x20kernelMatrix\x20*\x20kernel[\x20i\x20];\x20//\x20reorient\x20sample\x20vector\x20in\x20view\x20space\x0a\x09\x09\x09\x09\x09vec3\x20samplePoint\x20=\x20viewPosition\x20+\x20(\x20sampleVector\x20*\x20kernelRadius\x20);\x20//\x20calculate\x20sample\x20point\x0a\x0a\x09\x09\x09\x09\x09vec4\x20samplePointNDC\x20=\x20cameraProjectionMatrix\x20*\x20vec4(\x20samplePoint,\x201.0\x20);\x20//\x20project\x20point\x20and\x20calculate\x20NDC\x0a\x09\x09\x09\x09\x09samplePointNDC\x20/=\x20samplePointNDC.w;\x0a\x0a\x09\x09\x09\x09\x09vec2\x20samplePointUv\x20=\x20samplePointNDC.xy\x20*\x200.5\x20+\x200.5;\x20//\x20compute\x20uv\x20coordinates\x0a\x0a\x09\x09\x09\x09\x09float\x20realDepth\x20=\x20getLinearDepth(\x20samplePointUv\x20);\x20//\x20get\x20linear\x20depth\x20from\x20depth\x20texture\x0a\x09\x09\x09\x09\x09float\x20sampleDepth\x20=\x20viewZToOrthographicDepth(\x20samplePoint.z,\x20cameraNear,\x20cameraFar\x20);\x20//\x20compute\x20linear\x20depth\x20of\x20the\x20sample\x20view\x20Z\x20value\x0a\x09\x09\x09\x09\x09float\x20delta\x20=\x20sampleDepth\x20-\x20realDepth;\x0a\x0a\x09\x09\x09\x09\x09if\x20(\x20delta\x20>\x20minDistance\x20&&\x20delta\x20<\x20maxDistance\x20)\x20{\x20//\x20if\x20fragment\x20is\x20before\x20sample\x20point,\x20increase\x20occlusion\x0a\x0a\x09\x09\x09\x09\x09\x09occlusion\x20+=\x201.0;\x0a\x0a\x09\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09occlusion\x20=\x20clamp(\x20occlusion\x20/\x20float(\x20KERNEL_SIZE\x20),\x200.0,\x201.0\x20);\x0a\x0a\x09\x09\x09\x09gl_FragColor\x20=\x20vec4(\x20vec3(\x201.0\x20-\x20occlusion\x20),\x201.0\x20);\x0a\x0a\x09\x09\x09}\x0a\x0a\x09\x09}'},Es={'defines':{'PERSPECTIVE_CAMERA':0x1},'uniforms':{'tDepth':{'value':null},'cameraNear':{'value':null},'cameraFar':{'value':null}},'vertexShader':'varying\x20vec2\x20vUv;\x0a\x0a\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09vUv\x20=\x20uv;\x0a\x09\x09\x09gl_Position\x20=\x20projectionMatrix\x20*\x20modelViewMatrix\x20*\x20vec4(\x20position,\x201.0\x20);\x0a\x0a\x09\x09}','fragmentShader':'uniform\x20sampler2D\x20tDepth;\x0a\x0a\x09\x09uniform\x20float\x20cameraNear;\x0a\x09\x09uniform\x20float\x20cameraFar;\x0a\x0a\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09#include\x20<packing>\x0a\x0a\x09\x09float\x20getLinearDepth(\x20const\x20in\x20vec2\x20screenPosition\x20)\x20{\x0a\x0a\x09\x09\x09#if\x20PERSPECTIVE_CAMERA\x20==\x201\x0a\x0a\x09\x09\x09\x09float\x20fragCoordZ\x20=\x20texture2D(\x20tDepth,\x20screenPosition\x20).x;\x0a\x09\x09\x09\x09float\x20viewZ\x20=\x20perspectiveDepthToViewZ(\x20fragCoordZ,\x20cameraNear,\x20cameraFar\x20);\x0a\x09\x09\x09\x09return\x20viewZToOrthographicDepth(\x20viewZ,\x20cameraNear,\x20cameraFar\x20);\x0a\x0a\x09\x09\x09#else\x0a\x0a\x09\x09\x09\x09return\x20texture2D(\x20tDepth,\x20screenPosition\x20).x;\x0a\x0a\x09\x09\x09#endif\x0a\x0a\x09\x09}\x0a\x0a\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09float\x20depth\x20=\x20getLinearDepth(\x20vUv\x20);\x0a\x09\x09\x09gl_FragColor\x20=\x20vec4(\x20vec3(\x201.0\x20-\x20depth\x20),\x201.0\x20);\x0a\x0a\x09\x09}'},Cs={'uniforms':{'tDiffuse':{'value':null},'resolution':{'value':new a0l()}},'vertexShader':'varying\x20vec2\x20vUv;\x0a\x0a\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09vUv\x20=\x20uv;\x0a\x09\x09\x09gl_Position\x20=\x20projectionMatrix\x20*\x20modelViewMatrix\x20*\x20vec4(\x20position,\x201.0\x20);\x0a\x0a\x09\x09}','fragmentShader':a0bL(0x4d9)};class ot extends vi{constructor(b,c,d,f,g=0x20){const fP=a0bL;super(),this['width']=d!==void 0x0?d:0x200,this['height']=f!==void 0x0?f:0x200,this[fP(0x752)]=!0x0,this[fP(0x16a)]=!0x1,this[fP(0x710)]=c,this[fP(0x440)]=b,this['kernelRadius']=0x8,this[fP(0x389)]=[],this[fP(0x438)]=null,this[fP(0x550)]=0x0,this['minDistance']=0.005,this[fP(0x952)]=0.1,this['_visibilityCache']=new Map(),this['generateSampleKernel'](g),this[fP(0x686)]();const h=new a0aa();h[fP(0x673)]=a0ab,h['type']=a0ac,this['normalRenderTarget']=new a0a7(this['width'],this[fP(0x19e)],{'minFilter':a0ad,'magFilter':a0ad,'type':a0U,'depthTexture':h}),this[fP(0x317)]=new a0a7(this['width'],this[fP(0x19e)],{'type':a0U}),this[fP(0x545)]=this[fP(0x317)][fP(0x471)](),this['ssaoMaterial']=new a0u({'defines':Object[fP(0x4e5)]({},bs['defines']),'uniforms':a0w[fP(0x471)](bs[fP(0x526)]),'vertexShader':bs['vertexShader'],'fragmentShader':bs[fP(0x2b0)],'blending':a0a8}),this[fP(0x1e7)][fP(0x978)]['KERNEL_SIZE']=g,this[fP(0x1e7)]['uniforms'][fP(0x7e)][fP(0xaa2)]=this['normalRenderTarget'][fP(0x2b5)],this['ssaoMaterial'][fP(0x526)][fP(0x360)][fP(0xaa2)]=this[fP(0xa3a)]['depthTexture'],this[fP(0x1e7)][fP(0x526)]['tNoise']['value']=this['noiseTexture'],this['ssaoMaterial'][fP(0x526)]['kernel'][fP(0xaa2)]=this['kernel'],this['ssaoMaterial']['uniforms']['cameraNear'][fP(0xaa2)]=this['camera']['near'],this['ssaoMaterial'][fP(0x526)][fP(0xac1)][fP(0xaa2)]=this['camera']['far'],this['ssaoMaterial'][fP(0x526)][fP(0x880)]['value']['set'](this[fP(0xb1f)],this[fP(0x19e)]),this[fP(0x1e7)]['uniforms']['cameraProjectionMatrix']['value'][fP(0x3fe)](this['camera'][fP(0x25b)]),this[fP(0x1e7)][fP(0x526)]['cameraInverseProjectionMatrix']['value']['copy'](this['camera'][fP(0x157)]),this[fP(0x27a)]=new a0ae(),this['normalMaterial'][fP(0x285)]=a0a8,this[fP(0x31c)]=new a0u({'defines':Object['assign']({},Cs[fP(0x978)]),'uniforms':a0w['clone'](Cs['uniforms']),'vertexShader':Cs['vertexShader'],'fragmentShader':Cs[fP(0x2b0)]}),this['blurMaterial']['uniforms'][fP(0x143)]['value']=this['ssaoRenderTarget']['texture'],this[fP(0x31c)][fP(0x526)]['resolution']['value'][fP(0x9fd)](this[fP(0xb1f)],this[fP(0x19e)]),this[fP(0x8d4)]=new a0u({'defines':Object[fP(0x4e5)]({},Es[fP(0x978)]),'uniforms':a0w[fP(0x471)](Es['uniforms']),'vertexShader':Es['vertexShader'],'fragmentShader':Es[fP(0x2b0)],'blending':a0a8}),this[fP(0x8d4)]['uniforms']['tDepth'][fP(0xaa2)]=this[fP(0xa3a)][fP(0x350)],this['depthRenderMaterial']['uniforms'][fP(0x5ae)][fP(0xaa2)]=this[fP(0x710)][fP(0x3ad)],this['depthRenderMaterial']['uniforms'][fP(0xac1)]['value']=this['camera'][fP(0x445)],this[fP(0x760)]=new a0u({'uniforms':a0w[fP(0x471)](ns[fP(0x526)]),'vertexShader':ns['vertexShader'],'fragmentShader':ns[fP(0x2b0)],'transparent':!0x0,'depthTest':!0x1,'depthWrite':!0x1,'blendSrc':a0ai,'blendDst':a0ag,'blendEquation':a0af,'blendSrcAlpha':a0ah,'blendDstAlpha':a0ag,'blendEquationAlpha':a0af}),this['fsQuad']=new Hr(null),this['originalClearColor']=new a0G();}[a0bL(0x1a5)](){const fQ=a0bL;this['normalRenderTarget'][fQ(0x1a5)](),this['ssaoRenderTarget']['dispose'](),this[fQ(0x545)]['dispose'](),this['normalMaterial']['dispose'](),this['blurMaterial']['dispose'](),this['copyMaterial']['dispose'](),this[fQ(0x8d4)]['dispose'](),this['fsQuad']['dispose']();}[a0bL(0x8d0)](b,c,d){const fR=a0bL;switch(this[fR(0x73e)](),this['renderOverride'](b,this[fR(0x27a)],this['normalRenderTarget'],0x7777ff,0x1),this[fR(0x621)](),this[fR(0x1e7)]['uniforms']['kernelRadius'][fR(0xaa2)]=this[fR(0xa15)],this[fR(0x1e7)][fR(0x526)][fR(0x6e4)][fR(0xaa2)]=this['minDistance'],this[fR(0x1e7)]['uniforms'][fR(0x952)]['value']=this['maxDistance'],this['renderPass'](b,this[fR(0x1e7)],this['ssaoRenderTarget']),this[fR(0x1f8)](b,this[fR(0x31c)],this['blurRenderTarget']),this[fR(0x550)]){case ot['OUTPUT'][fR(0x5d5)]:this[fR(0x760)][fR(0x526)]['tDiffuse']['value']=this[fR(0x317)][fR(0x2b5)],this['copyMaterial'][fR(0x285)]=a0a8,this['renderPass'](b,this['copyMaterial'],this['renderToScreen']?null:d);break;case ot['OUTPUT']['Blur']:this[fR(0x760)][fR(0x526)][fR(0x143)][fR(0xaa2)]=this['blurRenderTarget']['texture'],this[fR(0x760)][fR(0x285)]=a0a8,this['renderPass'](b,this['copyMaterial'],this['renderToScreen']?null:d);break;case ot['OUTPUT']['Depth']:this['renderPass'](b,this['depthRenderMaterial'],this['renderToScreen']?null:d);break;case ot[fR(0x3cd)][fR(0x116)]:this['copyMaterial']['uniforms'][fR(0x143)][fR(0xaa2)]=this[fR(0xa3a)][fR(0x2b5)],this[fR(0x760)][fR(0x285)]=a0a8,this['renderPass'](b,this[fR(0x760)],this['renderToScreen']?null:d);break;case ot['OUTPUT'][fR(0x1ed)]:this['copyMaterial'][fR(0x526)]['tDiffuse'][fR(0xaa2)]=this['blurRenderTarget'][fR(0x2b5)],this['copyMaterial'][fR(0x285)]=a0aj,this[fR(0x1f8)](b,this[fR(0x760)],this['renderToScreen']?null:d);break;default:console[fR(0x5fb)]('THREE.SSAOPass:\x20Unknown\x20output\x20type.');}}[a0bL(0x1f8)](b,d,f,g,h){const fS=a0bL;b['getClearColor'](this['originalClearColor']);const i=b['getClearAlpha'](),j=b['autoClear'];b['setRenderTarget'](f),b[fS(0x1df)]=!0x1,g!=null&&(b['setClearColor'](g),b[fS(0x4eb)](h||0x0),b['clear']()),this['fsQuad'][fS(0x690)]=d,this['fsQuad'][fS(0x8d0)](b),b['autoClear']=j,b['setClearColor'](this[fS(0x8f4)]),b[fS(0x4eb)](i);}['renderOverride'](b,d,f,g,h){const fT=a0bL;b[fT(0x607)](this[fT(0x8f4)]);const i=b['getClearAlpha'](),j=b['autoClear'];b[fT(0x5bb)](f),b['autoClear']=!0x1,g=d['clearColor']||g,h=d[fT(0x385)]||h,g!=null&&(b['setClearColor'](g),b[fT(0x4eb)](h||0x0),b[fT(0x752)]()),this[fT(0x440)][fT(0x9d6)]=d,b['render'](this['scene'],this[fT(0x710)]),this[fT(0x440)]['overrideMaterial']=null,b[fT(0x1df)]=j,b['setClearColor'](this[fT(0x8f4)]),b[fT(0x4eb)](i);}['setSize'](b,c){const fU=a0bL;this[fU(0xb1f)]=b,this[fU(0x19e)]=c,this['ssaoRenderTarget'][fU(0x23b)](b,c),this['normalRenderTarget']['setSize'](b,c),this['blurRenderTarget'][fU(0x23b)](b,c),this[fU(0x1e7)][fU(0x526)]['resolution'][fU(0xaa2)]['set'](b,c),this[fU(0x1e7)][fU(0x526)][fU(0xb12)][fU(0xaa2)][fU(0x3fe)](this['camera']['projectionMatrix']),this['ssaoMaterial']['uniforms'][fU(0x8b9)]['value'][fU(0x3fe)](this['camera'][fU(0x157)]),this[fU(0x31c)][fU(0x526)][fU(0x880)]['value'][fU(0x9fd)](b,c);}['generateSampleKernel'](b){const fV=a0bL,c=this['kernel'];for(let d=0x0;d<b;d++){const f=new a0c();f['x']=Math[fV(0x3ac)]()*0x2-0x1,f['y']=Math['random']()*0x2-0x1,f['z']=Math['random'](),f[fV(0x6ff)]();let g=d/b;g=a0A[fV(0xacf)](0.1,0x1,g*g),f['multiplyScalar'](g),c[fV(0x4f5)](f);}}['generateRandomKernelRotations'](){const fW=a0bL,b=new Lh(),d=0x4*0x4,e=new Float32Array(d);for(let f=0x0;f<d;f++){const g=Math['random']()*0x2-0x1,i=Math['random']()*0x2-0x1,j=0x0;e[f]=b[fW(0x622)](g,i,j);}this[fW(0x438)]=new a0W(e,0x4,0x4,a0Q,a0V),this[fW(0x438)][fW(0x2b2)]=a0ak,this[fW(0x438)]['wrapT']=a0ak,this['noiseTexture'][fW(0x12d)]=!0x0;}['overrideVisibility'](){const fX=a0bL,b=this[fX(0x440)],c=this[fX(0x8cd)];b[fX(0x268)](function(d){const fY=fX;c[fY(0x9fd)](d,d['visible']),(d[fY(0x44e)]||d[fY(0x4de)])&&(d[fY(0x12e)]=!0x1);});}['restoreVisibility'](){const fZ=a0bL,b=this['scene'],c=this[fZ(0x8cd)];b['traverse'](function(d){const g0=fZ,f=c[g0(0x7d7)](d);d[g0(0x12e)]=f;}),c['clear']();}}ot[a0bL(0x3cd)]={'Default':0x0,'SSAO':0x1,'Blur':0x2,'Depth':0x3,'Normal':0x4};const Oh={'uniforms':{'tDiffuse':{'value':null},'luminosityThreshold':{'value':0x1},'smoothWidth':{'value':0x1},'defaultColor':{'value':new a0G(0x0)},'defaultOpacity':{'value':0x0}},'vertexShader':'\x0a\x0a\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09vUv\x20=\x20uv;\x0a\x0a\x09\x09\x09gl_Position\x20=\x20projectionMatrix\x20*\x20modelViewMatrix\x20*\x20vec4(\x20position,\x201.0\x20);\x0a\x0a\x09\x09}','fragmentShader':'\x0a\x0a\x09\x09uniform\x20sampler2D\x20tDiffuse;\x0a\x09\x09uniform\x20vec3\x20defaultColor;\x0a\x09\x09uniform\x20float\x20defaultOpacity;\x0a\x09\x09uniform\x20float\x20luminosityThreshold;\x0a\x09\x09uniform\x20float\x20smoothWidth;\x0a\x0a\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09vec4\x20texel\x20=\x20texture2D(\x20tDiffuse,\x20vUv\x20);\x0a\x0a\x09\x09\x09float\x20v\x20=\x20luminance(\x20texel.xyz\x20);\x0a\x0a\x09\x09\x09vec4\x20outputColor\x20=\x20vec4(\x20defaultColor.rgb,\x20defaultOpacity\x20);\x0a\x0a\x09\x09\x09float\x20alpha\x20=\x20smoothstep(\x20luminosityThreshold,\x20luminosityThreshold\x20+\x20smoothWidth,\x20v\x20);\x0a\x0a\x09\x09\x09gl_FragColor\x20=\x20mix(\x20outputColor,\x20texel,\x20alpha\x20);\x0a\x0a\x09\x09}'};class jt extends vi{constructor(b,f,i,j){const g1=a0bL;super(),this[g1(0x990)]=f!==void 0x0?f:0x1,this['radius']=i,this[g1(0x7ae)]=j,this[g1(0x880)]=b!==void 0x0?new a0l(b['x'],b['y']):new a0l(0x100,0x100),this[g1(0x4d2)]=new a0G(0x0,0x0,0x0),this['renderTargetsHorizontal']=[],this['renderTargetsVertical']=[],this['nMips']=0x5;let k=Math['round'](this['resolution']['x']/0x2),m=Math['round'](this['resolution']['y']/0x2);this['renderTargetBright']=new a0a7(k,m,{'type':a0U}),this[g1(0x170)][g1(0x2b5)]['name']='UnrealBloomPass.bright',this['renderTargetBright'][g1(0x2b5)][g1(0xa32)]=!0x1;for(let y=0x0;y<this['nMips'];y++){const z=new a0a7(k,m,{'type':a0U});z[g1(0x2b5)]['name']=g1(0xaf0)+y,z['texture'][g1(0xa32)]=!0x1,this[g1(0x314)]['push'](z);const B=new a0a7(k,m,{'type':a0U});B['texture'][g1(0x74)]=g1(0x3c2)+y,B['texture']['generateMipmaps']=!0x1,this[g1(0xad2)]['push'](B),k=Math['round'](k/0x2),m=Math[g1(0x43f)](m/0x2);}const p=Oh;this[g1(0xaab)]=a0w[g1(0x471)](p['uniforms']),this['highPassUniforms'][g1(0x178)]['value']=j,this[g1(0xaab)]['smoothWidth']['value']=0.01,this[g1(0x9b4)]=new a0u({'uniforms':this['highPassUniforms'],'vertexShader':p['vertexShader'],'fragmentShader':p[g1(0x2b0)]}),this[g1(0x353)]=[];const v=[0x3,0x5,0x7,0x9,0xb];k=Math[g1(0x43f)](this['resolution']['x']/0x2),m=Math['round'](this[g1(0x880)]['y']/0x2);for(let E=0x0;E<this['nMips'];E++)this['separableBlurMaterials'][g1(0x4f5)](this[g1(0xa8c)](v[E])),this[g1(0x353)][E][g1(0x526)]['invSize']['value']=new a0l(0x1/k,0x1/m),k=Math[g1(0x43f)](k/0x2),m=Math['round'](m/0x2);this['compositeMaterial']=this['getCompositeMaterial'](this['nMips']),this[g1(0x4c9)]['uniforms']['blurTexture1'][g1(0xaa2)]=this[g1(0xad2)][0x0]['texture'],this['compositeMaterial']['uniforms']['blurTexture2'][g1(0xaa2)]=this[g1(0xad2)][0x1][g1(0x2b5)],this['compositeMaterial']['uniforms'][g1(0x1a6)][g1(0xaa2)]=this['renderTargetsVertical'][0x2]['texture'],this['compositeMaterial'][g1(0x526)][g1(0x163)][g1(0xaa2)]=this[g1(0xad2)][0x3]['texture'],this['compositeMaterial']['uniforms']['blurTexture5'][g1(0xaa2)]=this[g1(0xad2)][0x4][g1(0x2b5)],this[g1(0x4c9)]['uniforms']['bloomStrength'][g1(0xaa2)]=f,this['compositeMaterial'][g1(0x526)][g1(0x226)]['value']=0.1;const w=[0x1,0.8,0.6,0.4,0.2];this[g1(0x4c9)][g1(0x526)]['bloomFactors']['value']=w,this[g1(0xa98)]=[new a0c(0x1,0x1,0x1),new a0c(0x1,0x1,0x1),new a0c(0x1,0x1,0x1),new a0c(0x1,0x1,0x1),new a0c(0x1,0x1,0x1)],this['compositeMaterial']['uniforms'][g1(0xa98)][g1(0xaa2)]=this['bloomTintColors'];const x=ns;this[g1(0xa7b)]=a0w['clone'](x['uniforms']),this['blendMaterial']=new a0u({'uniforms':this['copyUniforms'],'vertexShader':x['vertexShader'],'fragmentShader':x['fragmentShader'],'blending':a0al,'depthTest':!0x1,'depthWrite':!0x1,'transparent':!0x0}),this[g1(0x2d3)]=!0x0,this['needsSwap']=!0x1,this['_oldClearColor']=new a0G(),this['oldClearAlpha']=0x1,this['basic']=new a0g(),this['fsQuad']=new Hr(null);}['dispose'](){const g2=a0bL;for(let b=0x0;b<this['renderTargetsHorizontal'][g2(0x3ea)];b++)this['renderTargetsHorizontal'][b][g2(0x1a5)]();for(let c=0x0;c<this[g2(0xad2)]['length'];c++)this[g2(0xad2)][c]['dispose']();this['renderTargetBright']['dispose']();for(let d=0x0;d<this[g2(0x353)][g2(0x3ea)];d++)this[g2(0x353)][d][g2(0x1a5)]();this[g2(0x4c9)]['dispose'](),this[g2(0xd6)]['dispose'](),this['basic']['dispose'](),this[g2(0x610)]['dispose']();}[a0bL(0x23b)](b,c){const g3=a0bL;let d=Math[g3(0x43f)](b/0x2),f=Math[g3(0x43f)](c/0x2);this[g3(0x170)]['setSize'](d,f);for(let g=0x0;g<this['nMips'];g++)this['renderTargetsHorizontal'][g]['setSize'](d,f),this['renderTargetsVertical'][g][g3(0x23b)](d,f),this[g3(0x353)][g]['uniforms']['invSize'][g3(0xaa2)]=new a0l(0x1/d,0x1/f),d=Math[g3(0x43f)](d/0x2),f=Math[g3(0x43f)](f/0x2);}[a0bL(0x8d0)](b,d,f,g,h){const g4=a0bL;b['getClearColor'](this['_oldClearColor']),this['oldClearAlpha']=b['getClearAlpha']();const i=b[g4(0x1df)];b[g4(0x1df)]=!0x1,b[g4(0x6e1)](this['clearColor'],0x0),h&&b['state']['buffers']['stencil'][g4(0x778)](!0x1),this[g4(0x5b6)]&&(this['fsQuad']['material']=this['basic'],this[g4(0x417)][g4(0x428)]=f[g4(0x2b5)],b[g4(0x5bb)](null),b['clear'](),this[g4(0x610)][g4(0x8d0)](b)),this['highPassUniforms'][g4(0x143)][g4(0xaa2)]=f[g4(0x2b5)],this['highPassUniforms'][g4(0x178)][g4(0xaa2)]=this[g4(0x7ae)],this['fsQuad']['material']=this[g4(0x9b4)],b[g4(0x5bb)](this[g4(0x170)]),b['clear'](),this['fsQuad'][g4(0x8d0)](b);let j=this[g4(0x170)];for(let k=0x0;k<this['nMips'];k++)this[g4(0x610)][g4(0x690)]=this['separableBlurMaterials'][k],this['separableBlurMaterials'][k]['uniforms'][g4(0x213)]['value']=j[g4(0x2b5)],this['separableBlurMaterials'][k]['uniforms']['direction'][g4(0xaa2)]=jt[g4(0x41e)],b['setRenderTarget'](this['renderTargetsHorizontal'][k]),b[g4(0x752)](),this[g4(0x610)][g4(0x8d0)](b),this['separableBlurMaterials'][k][g4(0x526)]['colorTexture'][g4(0xaa2)]=this[g4(0x314)][k][g4(0x2b5)],this[g4(0x353)][k]['uniforms'][g4(0x794)][g4(0xaa2)]=jt[g4(0x37a)],b[g4(0x5bb)](this[g4(0xad2)][k]),b[g4(0x752)](),this['fsQuad']['render'](b),j=this[g4(0xad2)][k];this['fsQuad']['material']=this[g4(0x4c9)],this[g4(0x4c9)][g4(0x526)][g4(0x8e8)][g4(0xaa2)]=this[g4(0x990)],this['compositeMaterial'][g4(0x526)]['bloomRadius'][g4(0xaa2)]=this[g4(0x3eb)],this['compositeMaterial']['uniforms'][g4(0xa98)][g4(0xaa2)]=this[g4(0xa98)],b['setRenderTarget'](this['renderTargetsHorizontal'][0x0]),b['clear'](),this[g4(0x610)][g4(0x8d0)](b),this[g4(0x610)][g4(0x690)]=this['blendMaterial'],this[g4(0xa7b)]['tDiffuse']['value']=this[g4(0x314)][0x0]['texture'],h&&b['state'][g4(0x99b)][g4(0x136)]['setTest'](!0x0),this['renderToScreen']?(b[g4(0x5bb)](null),this['fsQuad'][g4(0x8d0)](b)):(b['setRenderTarget'](f),this['fsQuad'][g4(0x8d0)](b)),b['setClearColor'](this[g4(0x28d)],this[g4(0xa06)]),b[g4(0x1df)]=i;}['getSeperableBlurMaterial'](b){const g5=a0bL,c=[];for(let d=0x0;d<b;d++)c[g5(0x4f5)](0.39894*Math['exp'](-0.5*d*d/(b*b))/b);return new a0u({'defines':{'KERNEL_RADIUS':b},'uniforms':{'colorTexture':{'value':null},'invSize':{'value':new a0l(0.5,0.5)},'direction':{'value':new a0l(0.5,0.5)},'gaussianCoefficients':{'value':c}},'vertexShader':g5(0x669),'fragmentShader':g5(0x9d9)});}[a0bL(0x98f)](b){return new a0u({'defines':{'NUM_MIPS':b},'uniforms':{'blurTexture1':{'value':null},'blurTexture2':{'value':null},'blurTexture3':{'value':null},'blurTexture4':{'value':null},'blurTexture5':{'value':null},'bloomStrength':{'value':0x1},'bloomFactors':{'value':null},'bloomTintColors':{'value':null},'bloomRadius':{'value':0x0}},'vertexShader':'varying\x20vec2\x20vUv;\x0a\x09\x09\x09\x09void\x20main()\x20{\x0a\x09\x09\x09\x09\x09vUv\x20=\x20uv;\x0a\x09\x09\x09\x09\x09gl_Position\x20=\x20projectionMatrix\x20*\x20modelViewMatrix\x20*\x20vec4(\x20position,\x201.0\x20);\x0a\x09\x09\x09\x09}','fragmentShader':'varying\x20vec2\x20vUv;\x0a\x09\x09\x09\x09uniform\x20sampler2D\x20blurTexture1;\x0a\x09\x09\x09\x09uniform\x20sampler2D\x20blurTexture2;\x0a\x09\x09\x09\x09uniform\x20sampler2D\x20blurTexture3;\x0a\x09\x09\x09\x09uniform\x20sampler2D\x20blurTexture4;\x0a\x09\x09\x09\x09uniform\x20sampler2D\x20blurTexture5;\x0a\x09\x09\x09\x09uniform\x20float\x20bloomStrength;\x0a\x09\x09\x09\x09uniform\x20float\x20bloomRadius;\x0a\x09\x09\x09\x09uniform\x20float\x20bloomFactors[NUM_MIPS];\x0a\x09\x09\x09\x09uniform\x20vec3\x20bloomTintColors[NUM_MIPS];\x0a\x0a\x09\x09\x09\x09float\x20lerpBloomFactor(const\x20in\x20float\x20factor)\x20{\x0a\x09\x09\x09\x09\x09float\x20mirrorFactor\x20=\x201.2\x20-\x20factor;\x0a\x09\x09\x09\x09\x09return\x20mix(factor,\x20mirrorFactor,\x20bloomRadius);\x0a\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09void\x20main()\x20{\x0a\x09\x09\x09\x09\x09gl_FragColor\x20=\x20bloomStrength\x20*\x20(\x20lerpBloomFactor(bloomFactors[0])\x20*\x20vec4(bloomTintColors[0],\x201.0)\x20*\x20texture2D(blurTexture1,\x20vUv)\x20+\x0a\x09\x09\x09\x09\x09\x09lerpBloomFactor(bloomFactors[1])\x20*\x20vec4(bloomTintColors[1],\x201.0)\x20*\x20texture2D(blurTexture2,\x20vUv)\x20+\x0a\x09\x09\x09\x09\x09\x09lerpBloomFactor(bloomFactors[2])\x20*\x20vec4(bloomTintColors[2],\x201.0)\x20*\x20texture2D(blurTexture3,\x20vUv)\x20+\x0a\x09\x09\x09\x09\x09\x09lerpBloomFactor(bloomFactors[3])\x20*\x20vec4(bloomTintColors[3],\x201.0)\x20*\x20texture2D(blurTexture4,\x20vUv)\x20+\x0a\x09\x09\x09\x09\x09\x09lerpBloomFactor(bloomFactors[4])\x20*\x20vec4(bloomTintColors[4],\x201.0)\x20*\x20texture2D(blurTexture5,\x20vUv)\x20);\x0a\x09\x09\x09\x09}'});}}jt[a0bL(0x41e)]=new a0l(0x1,0x0),jt['BlurDirectionY']=new a0l(0x0,0x1);function Nh(b=0x1,c=0x1,d=0x1,f=null){const g6=a0bL;if(b<=0x0||c<=0x0||d<=0x0)throw new Error(g6(0x9f));const g=new a0am(b,c,d),h=new a0an(g),i=f||new a0i({'color':0x87ceeb});return new a0k(h,i);}function Uh(b=0x1,c=0x1,d=0x1,f=0xff00){if(b<=0x0||c<=0x0||d<=0x0)throw new Error('Box\x20dimensions\x20must\x20be\x20positive\x20numbers');const g=new a0am(b,c,d),h=new a0g({'color':f});return new a0e(g,h);}function Gh(b,c,d=0xff){const g7=a0bL;if(!Array['isArray'](b)||b[g7(0x3ea)]!==0x3||!Array['isArray'](c)||c[g7(0x3ea)]!==0x3)throw new Error('Start\x20and\x20end\x20must\x20be\x20arrays\x20of\x203\x20numbers\x20[x,\x20y,\x20z]');if(b[g7(0xaa5)](j=>!isFinite(j))||c['some'](j=>!isFinite(j)))throw new Error('All\x20coordinates\x20must\x20be\x20finite\x20numbers');const f=new a0c(...b),g=new a0c(...c),h=new a0j()['setFromPoints']([f,g]),i=new a0i({'color':d});return new a0ao(h,i);}function zh(b,d,f=[0x0,0x1,0x0],g=0xff00){const g8=a0bL;if(d<=0x0||!isFinite(d))throw new Error('Length\x20must\x20be\x20a\x20positive\x20finite\x20number');const h=b instanceof a0c?b[g8(0x471)]():new a0c(...b),i=f instanceof a0c?f['clone']():new a0c(...f);if(i[g8(0x5e9)]()===0x0)throw new Error(g8(0x8f0));const j=h[g8(0x471)]()['add'](i[g8(0x6ff)]()['multiplyScalar'](d)),k=new a0j()[g8(0x72f)]([h,j]),m=new a0i({'color':g});return new a0ao(k,m);}function J(b={}){const g9=a0bL,c=document[g9(0x86)](g9(0x521));c['className']=b[g9(0x9a8)]||g9(0x710);const d=document['createElement']('div');d['className']=g9(0x5cc),d['innerHTML']=b[g9(0x4d5)]||'';const f=document['createElement']('div');return f['className']='lens-border',c['appendChild'](d),c[g9(0x2cf)](f),b['click']&&c[g9(0x696)]('click',g=>{const gb=g9;b[gb(0x9e)]({'event':g,'className':c['className'],'content':b['content']||''},b['assets']);}),new lh(c);}function Hh(b,c){const ge=a0bL;if(!b||typeof b['traverse']!='function')throw new Error(ge(0x5fc));if(typeof c!=ge(0x652))throw new Error(ge(0x173));b[ge(0x268)](d=>{const gf=ge;if(!(d instanceof a0e))return;const f=d;if(!f[gf(0x690)])return;(Array['isArray'](f[gf(0x690)])?f[gf(0x690)]:[f['material']])[gf(0xb8)](c);});}function qh(b,c){const gj=a0bL;if(!b||typeof b['traverse']!=gj(0x652))throw new Error(gj(0x536));if(typeof c!=gj(0x45f))throw new Error(gj(0xb25));const d=[];return b['traverse'](f=>{const gk=gj;f[gk(0x74)]===c&&d[gk(0x4f5)](f);}),d;}function Vh(b=0.1,c=0x3,d=0xc,f){const gm=a0bL;if(b<=0x0||c<=0x0)throw new Error('Radius\x20and\x20height\x20must\x20be\x20positive\x20numbers');if(!Number['isInteger'](d)||d<0x3)throw new Error(gm(0x8e4));const g=new a0ap(b,b,c,d);return new a0e(g,f);}function jh(b,c){const gn=a0bL;if(!b||typeof b['intersectPlane']!=gn(0x652))throw new Error('Ray\x20must\x20have\x20intersectPlane\x20method');if(!c||!(c instanceof a0aq))throw new Error('Plane\x20must\x20be\x20a\x20Three.js\x20Plane\x20instance');const d=new a0c();return b[gn(0x3c1)](c,d)?d:null;}function Yh(){const gp=a0bL;return'#'+Math['floor'](Math['random']()*0xffffff)[gp(0x2d7)](0x10)[gp(0x4e4)](0x6,'0');}function Ya(b){const gq=a0bL;if(!b)throw new Error('Object\x20is\x20required');const c=new a0h()[gq(0x256)](b),d=new a0c();return c['getCenter'](d),d;}function Kh(b){const gv=a0bL;if(!b)throw new Error(gv(0x63b));const c=b[gv(0x428)];if(!c)return console['warn'](gv(0x69a)),Promise[gv(0x1e6)]();const d=c['image'];return d instanceof ImageBitmap?new Promise((f,g)=>{const gw=gv;try{const h=document['createElement'](gw(0x7e0)),i=h[gw(0x7ee)]('2d');if(!i){g(new Error('Failed\x20to\x20get\x202D\x20context'));return;}h['width']=d[gw(0xb1f)],h[gw(0x19e)]=d[gw(0x19e)],i[gw(0xa02)](d,0x0,0x0),h[gw(0x4f2)](j=>{const gx=gw;if(!j){g(new Error('Failed\x20to\x20create\x20blob'));return;}const k=document['createElement']('a'),m=b['name']||gx(0x2b5);k['download']=m+'.png',k['href']=URL[gx(0x9c)](j),k[gx(0xa1a)]['display']=gx(0x4b9),document['body']['appendChild'](k),k['click'](),document['body'][gx(0x197)](k),URL[gx(0x492)](k[gx(0x5d1)]),f();},'image/png');}catch(j){g(j);}}):(console[gv(0x5fb)]('Texture\x20image\x20is\x20not\x20an\x20ImageBitmap\x20type'),Promise[gv(0x1e6)]());}const Vr=new a0i({'color':0x666666});function Ka(b,c,d='vertical'){const gy=a0bL;if(!b)throw new Error(gy(0x6b8));if(!Array['isArray'](c)||c[gy(0x3ea)]===0x0)throw new Error('Stops\x20must\x20be\x20a\x20non-empty\x20array');const f=document[gy(0x86)](gy(0x7e0));f['width']=d==='vertical'?0x1:0x200,f[gy(0x19e)]=d===gy(0x2f4)?0x200:0x1;const g=f[gy(0x7ee)]('2d');if(!g)throw new Error(gy(0x891));const h=d===gy(0x2f4)?g['createLinearGradient'](0x0,0x0,0x0,f[gy(0x19e)]):g[gy(0x7f)](0x0,0x0,f[gy(0xb1f)],0x0);c['forEach'](i=>{const gz=gy;if(typeof i['position']!=gz(0x4ed)||i['position']<0x0||i['position']>0x1)throw new Error('Stop\x20position\x20must\x20be\x20a\x20number\x20between\x200\x20and\x201');h[gz(0x656)](i[gz(0x1b7)],new a0G(i[gz(0x66e)])[gz(0x99e)]());}),g[gy(0x6a2)]=h,g[gy(0x1c2)](0x0,0x0,f[gy(0xb1f)],f['height']),b[gy(0x836)]=new a0ar(f);}function Xs(b,f,g,i=new a0l(0x0,0x0),j=0.42,k=0.3){const gB=a0bL;if(!b||typeof b[gB(0xfc)]!='function')throw new Error(gB(0x588));if(!f)throw new Error('Camera\x20is\x20required');if(!Array['isArray'](g))throw new Error('Objects\x20must\x20be\x20an\x20array');if(j<0x0||k<=0x0)throw new Error('Range\x20must\x20be\x20>=\x200\x20and\x20step\x20must\x20be\x20>\x200');b[gB(0xfc)](i,f),b[gB(0x91f)]!==void 0x0&&(b['firstHitOnly']=!0x0);let m=b[gB(0x7ec)](g);if(m['length']>0x0)return m;const p=[];for(let u=-j;u<=j;u+=k)for(let v=-j;v<=j;v+=k){if(Math['abs'](u)<k/0x2&&Math[gB(0x855)](v)<k/0x2)continue;const w=new a0l(i['x']+u,i['y']+v);b['setFromCamera'](w,f);const x=b[gB(0x7ec)](g,!0x0);x['length']>0x0&&p['push'](...x);}return p['sort']((y,z)=>y[gB(0x488)]-z['distance']),p[gB(0x3ea)]>0x0?p:null;}function Wa(b){const gC=a0bL;if(b['length']!==0x4)throw new Error(gC(0x51b));const [c,d,f,g]=b,h=new a0c(c,d,f),i=c*c+d*d+f*f;if(i===0x0)throw new Error('无效的平面方程:法向量长度为零');return{'point':new a0c(-c*g/ i,-d*g/ i,-f*g/ i),'normal':h};}function Wh(b){if(!Array['isArray'](b)||b['length']<0x3)throw new Error('suPoint\x20must\x20be\x20an\x20array\x20with\x20at\x20least\x203\x20elements');return[b[0x0],b[0x2],-b[0x1]];}function di(b){const gD=a0bL;if(!Array[gD(0x335)](b)||b[gD(0x3ea)]<0x3)throw new Error('suPoint\x20must\x20be\x20an\x20array\x20with\x20at\x20least\x203\x20elements');return new a0c(b[0x0],b[0x2],-b[0x1]);}function Jh(b,c,d=0.01){const gE=a0bL;if(!b||!(b instanceof a0c))throw new Error('point1\x20must\x20be\x20a\x20Vector3');if(!c||!(c instanceof a0c))throw new Error('point2\x20must\x20be\x20a\x20Vector3');if(typeof d!='number'||d<0x0)throw new Error(gE(0x1be));return Math['abs'](b['x']-c['x'])<=d&&Math[gE(0x855)](b['y']-c['y'])<=d&&Math[gE(0x855)](b['z']-c['z'])<=d;}function Xh(b){const gF=a0bL;if(!b||!(b instanceof a0c))throw new Error('vec\x20must\x20be\x20a\x20Vector3\x20instance');const c=Math[gF(0x855)](b['x']),d=Math[gF(0x855)](b['y']),f=Math[gF(0x855)](b['z']);return c>d&&c>f?'x':d>f?'y':'z';}function Ja(b){const gG=a0bL;if(!b||!(b instanceof a0h))throw new Error(gG(0x26a));if(b['isEmpty']())throw new Error('Box3\x20cannot\x20be\x20empty');const {min:c,max:d}=b;return{'left':new a0aq(new a0c(0x1,0x0,0x0),-c['x']),'right':new a0aq(new a0c(-0x1,0x0,0x0),d['x']),'bottom':new a0aq(new a0c(0x0,0x1,0x0),-c['y']),'top':new a0aq(new a0c(0x0,-0x1,0x0),d['y']),'front':new a0aq(new a0c(0x0,0x0,0x1),-c['z']),'back':new a0aq(new a0c(0x0,0x0,-0x1),d['z'])};}function $h(b,d,i){const gH=a0bL;if(!b||!(b instanceof a0c))throw new Error('startPoint\x20must\x20be\x20a\x20Vector3\x20instance');if(!d||!(d instanceof a0c))throw new Error('endPoint\x20must\x20be\x20a\x20Vector3\x20instance');const {color:j=0xaaaaaa,lineWidth:k=0x2,opacity:v=0.8,arrowSize:z=0.2,resolution:F=new a0l(window['innerWidth'],window[gH(0x349)])}=i||{},H=new a0c()[gH(0x642)](d,b)[gH(0x6ff)](),L=b['distanceTo'](d),N=new a0c()['subVectors'](d,H[gH(0x471)]()[gH(0x433)](z));if(L-z<=0x0){const a0=new a0c(0x0,0x1,0x0),a1=new a0c()['subVectors'](d,a0['multiplyScalar'](z)),a2=new a0c(0x1,0x0,0x0);new a0c()[gH(0x6a5)](a1,a2[gH(0x433)](z*0.7)),new a0c()[gH(0x6a5)](a1,a2[gH(0x433)](-z*0.7));const a3=[a1['x'],a1['y'],a1['z'],d['x'],d['y'],d['z'],a1['x'],a1['y'],a1['z'],d['x'],d['y'],d['z'],a1['x'],a1['y'],a1['z'],d['x'],d['y'],d['z']],a4=new Ae();a4[gH(0x64b)](a3);const a5=new ne({'color':j,'linewidth':k,'opacity':v,'transparent':v<0x1,'resolution':F});return new de(a4,a5);}const R=new a0c(-H['y'],H['x'],0x0)[gH(0x6ff)]();R[gH(0x5e9)]()===0x0&&R[gH(0x9fd)](0x1,0x0,0x0),new a0c()['addVectors'](N,R['clone']()['multiplyScalar'](z*0.7)),new a0c()[gH(0x6a5)](N,R['clone']()['multiplyScalar'](-z*0.7));const S=[b['x'],b['y'],b['z'],N['x'],N['y'],N['z'],N['x'],N['y'],N['z'],d['x'],d['y'],d['z'],N['x'],N['y'],N['z'],d['x'],d['y'],d['z']],T=new Ae();T['setPositions'](S);const U=new ne({'color':j,'linewidth':k,'opacity':v,'transparent':v<0x1,'resolution':F});return new de(T,U);}function Xa(b,d,f,g={}){const gI=a0bL;if(!b||!(b instanceof a0aq))throw new Error(gI(0x960));if(d<=0x0||f<=0x0)throw new Error(gI(0x7cf));const h=new a0as(d,f),i=new a0g({'color':g[gI(0x66e)]??0x654321,'side':g['side']??a0at,'transparent':!0x0,'opacity':g['opacity']??0.2}),j=new a0e(h,i),k=b[gI(0x83)]['clone']()['normalize']();j['quaternion']['setFromUnitVectors'](new a0c(0x0,0x0,0x1),k);const m=-b[gI(0x953)];return j['position'][gI(0x3fe)](k[gI(0x433)](m)),j;}function $a(b,d){const gJ=a0bL;if(!b||!b['isMesh'])throw new Error(gJ(0xac5));if(!Array['isArray'](d)||d['length']!==0x3)throw new Error('scaleFactors\x20must\x20be\x20an\x20array\x20of\x203\x20numbers\x20[x,\x20y,\x20z]');if(d['some'](h=>!isFinite(h)||h===0x0))throw new Error(gJ(0x773));if(!b['geometry']||!b['geometry'][gJ(0x4e1)][gJ(0x1b7)])throw new Error('Mesh\x20geometry\x20must\x20have\x20position\x20attributes');const f=b[gJ(0x813)]['clone'](),g=f[gJ(0x4e1)][gJ(0x1b7)];for(let h=0x0;h<g[gJ(0x675)];h++){const i=g[gJ(0xa7f)](h)*d[0x0],j=g['getY'](h)*d[0x1],k=g['getZ'](h)*d[0x2];g[gJ(0x3d8)](h,i,j,k);}f[gJ(0x9bf)](),f[gJ(0x4e1)]['position']['needsUpdate']=!0x0,b[gJ(0x813)]&&b['geometry']['dispose'](),b['geometry']=f,b[gJ(0x813)][gJ(0x84d)](),b['geometry'][gJ(0xaf9)]();}function jr(b){const gK=a0bL;if(!Array[gK(0x335)](b)||b[gK(0x3ea)]!==0x10)throw new Error(gK(0x966));if(b[gK(0xaa5)](h=>!isFinite(h)))throw new Error('All\x20matrix\x20values\x20must\x20be\x20finite\x20numbers');const c=new a0m();c[gK(0x9fd)](b[0x0],b[0x4],b[0x8],b[0xc],b[0x1],b[0x5],b[0x9],b[0xd],b[0x2],b[0x6],b[0xa],b[0xe],b[0x3],b[0x7],b[0xb],b[0xf]);const d=new a0c(),f=new a0au(),g=new a0c();return c['decompose'](d,f,g),{'position':d,'quaternion':f,'scale':g,'matrix':c};}function Za(b){const gL=a0bL,c={};return b[gL(0xb8)](d=>{const {scale:f}=jr(d['transform']),g=f['x'],h=f['y'],i=f['z'],j={...d,'scaleSign':{'x':g<0x0?-0x1:0x1,'y':h<0x0?-0x1:0x1,'z':i<0x0?-0x1:0x1},'hasNegativeScale':g<0x0||h<0x0||i<0x0},k=[g,h,i]['join']('|');c[k]||(c[k]=[]),c[k]['push'](j);}),Object[gL(0xb09)](c);}function Zh(b){const gM=a0bL;b[gM(0x6f)][gM(0xa81)]||(b[gM(0x6f)][gM(0xa81)]=new Array(b[gM(0x675)])),b['userData'][gM(0x8b0)]||(b[gM(0x6f)]['originalTransforms']=new Array(b[gM(0x675)]));const c=new a0m();b['setLayerVisibility']=function(d,f){const gN=gM;for(let g=0x0;g<this['count'];g++)if((this['userData']['instanceLayers'][g]||[])[gN(0xa1c)](d)){const h=this[gN(0x6f)][gN(0x8b0)][g];if(!h)continue;const i=f?h[gN(0x61e)]:new a0c(0x0,0x0,0x0);c['compose'](h[gN(0x1b7)],h[gN(0x122)],i),this['setMatrixAt'](g,c);}this['instanceMatrix'][gN(0x12d)]=!0x0;},b['showAllInstances']=function(){const gO=gM;for(let d=0x0;d<this['count'];d++){const f=this['userData'][gO(0x8b0)][d];if(!f){console['warn'](gO(0x70c)+d+gO(0x89a));continue;}c[gO(0x1c4)](f[gO(0x1b7)],f['quaternion'],f['scale']),this[gO(0x8ff)](d,c);}this[gO(0x5a9)][gO(0x12d)]=!0x0;};}function eA(b,i,j={}){const gP=a0bL;if(!b)throw new Error(gP(0x6b));if(i&&!(i instanceof a0c))throw new Error('Position\x20must\x20be\x20a\x20Vector3\x20instance');try{const k=b['clone'](),{userData:m,name:v}=k,w=new a0h()['setFromObject'](k);w['isEmpty']()&&console['warn']('Content\x20bounding\x20box\x20is\x20empty,\x20using\x20default\x20size');const x=w['getSize'](new a0c()),y=Math[gP(0x36b)](x['x'],x['y'],x['z'])||0x1;let z=new a0c();if(i)z=i;else{if(m?.['tr_point']&&Array[gP(0x335)](m['tr_point']))try{z=di(m[gP(0x6f7)]);}catch(E){console[gP(0x5fb)](gP(0x7df),E);}}const B=new a0av();B['name']=gP(0x61b)+(v||gP(0x3b0)),B['position']['copy'](z),B[gP(0xa08)](k,y);try{let F;if(k['name']===gP(0x390))F=k['clone'](),F[gP(0x74)]='';else{const R=[Math[gP(0x36b)](x['x'],0.1),Math['max'](x['y'],0.1),Math[gP(0x36b)](x['z'],0.1)];F=Kr(R,j[gP(0x132)]||Vr);}const H=w[gP(0x248)](new a0c());F[gP(0x1b7)]['copy'](H);const L=j['LODFactor']??0xf;if(L<=0x0)throw new Error(gP(0x60c));const N=y*L*0x3;B['addLevel'](F,N);}catch(S){console[gP(0x5fb)](gP(0x40a),S);}return B;}catch(T){console[gP(0x644)](gP(0x7b3),T);const U=new a0av();return i&&U['position']['copy'](i),U['addLevel'](b,0x0),U;}}function ec(b){const gQ=a0bL;b&&(b['map']&&(b[gQ(0x428)][gQ(0x1bb)]='srgb'),b[gQ(0x66e)]['set'](0xeeeeee),b[gQ(0x460)]&&(b[gQ(0x460)][gQ(0x1bb)]='srgb'),b[gQ(0x12d)]=!0x0);}function tA(b,c){const gR=a0bL;b[gR(0x268)](d=>{const gS=gR;if(!(d instanceof a0e))return;const f=d,g=f[gS(0x690)];g&&(f['geometry']&&typeof f['geometry']['computeBoundsTree']==gS(0x652)&&f['geometry'][gS(0xa9)](),c?c(g):ec(g));});}function tc(b,d={}){const gU=a0bL;if(!b)return{'boundingBox':new a0h(new a0c(0x0,0x0,0x0),new a0c(0x0,0x0,0x0)),'boxCenter':new a0c(0x0,0x0,0x0),'boxSize':new a0c(0x0,0x0,0x0)};if(typeof b['traverse']!='function')throw new Error('Content\x20must\x20be\x20a\x20Three.js\x20Object3D\x20with\x20traverse\x20method');const {skipInstancedMesh:f=!0x0,verbose:g=!0x1}=d,h=new a0h();let i=!0x1;if(b['traverse'](m=>{const gT=a0b;if(!(f&&m instanceof a0aw)&&(m instanceof a0e||m instanceof a0ao)){const p=m;if(!p['geometry']){g&&console['warn']('Object\x20has\x20no\x20geometry',m);return;}p[gT(0x813)][gT(0x3dd)]||p[gT(0x813)]['computeBoundingBox'](),p[gT(0x813)]['boundingBox']&&!p[gT(0x813)]['boundingBox'][gT(0x207)]()?(m[gT(0x2c7)](!0x0),h[gT(0x853)](m),i=!0x0):g&&console[gT(0x5fb)]('Object\x20geometry\x20bounding\x20box\x20is\x20invalid',m);}}),!i||h['isEmpty']())return g&&console['warn'](gU(0xa3c)),{'boundingBox':new a0h(new a0c(0x0,0x0,0x0),new a0c(0x0,0x0,0x0)),'boxCenter':new a0c(0x0,0x0,0x0),'boxSize':new a0c(0x0,0x0,0x0)};const j=h['getCenter'](new a0c()),k=h['getSize'](new a0c());return{'boundingBox':h,'boxCenter':j,'boxSize':k};}function iA(b){const gV=a0bL;if(!b||!b[gV(0x356)])throw new Error('mesh\x20must\x20be\x20a\x20Mesh\x20instance');if(!b['geometry']||!b[gV(0x813)]['isBufferGeometry'])throw new Error('Mesh\x20must\x20have\x20BufferGeometry');if(!b['geometry']['attributes'][gV(0x1b7)])throw new Error('Mesh\x20geometry\x20must\x20have\x20position\x20attributes');b['updateMatrixWorld'](!0x0);const c=b['matrixWorld'],d=new a0c(0x0,0x0,0x1)[gV(0x1e9)](new a0ax()[gV(0x51f)](c))[gV(0x6ff)](),f=b['geometry']['attributes'][gV(0x1b7)];if(f['count']===0x0)throw new Error(gV(0x8df));const g=new a0c(f['getX'](0x0),f[gV(0x8d6)](0x0),f[gV(0x9a3)](0x0))['applyMatrix4'](c),h=-d['dot'](g);return new a0aq(d,h);}function ic(b,d){const gW=a0bL;if(!b||!(b instanceof a0h))throw new Error(gW(0x26a));if(!d||!(d instanceof a0aq))throw new Error(gW(0x926));if(b[gW(0x207)]())throw new Error(gW(0x925));const {min:f,max:g}=b,i=[new a0c(f['x'],f['y'],f['z']),new a0c(f['x'],f['y'],g['z']),new a0c(f['x'],g['y'],f['z']),new a0c(f['x'],g['y'],g['z']),new a0c(g['x'],f['y'],f['z']),new a0c(g['x'],f['y'],g['z']),new a0c(g['x'],g['y'],f['z']),new a0c(g['x'],g['y'],g['z'])];let j=Number[gW(0x20a)],k=Number['NEGATIVE_INFINITY'];const m=d[gW(0x83)]['clone']()[gW(0x6ff)]();for(const p of i){const u=m['dot'](p);j=Math[gW(0x5d2)](j,u),k=Math[gW(0x36b)](k,u);}return{'min':-k,'max':-j};}function sA(b,c,d,f=0x1){const gX=a0bL;if(!b||!(b instanceof a0c))throw new Error('position\x20must\x20be\x20a\x20Vector3');if(!c||!(c instanceof a0c))throw new Error('target\x20must\x20be\x20a\x20Vector3');if(!isFinite(d)||d<=0x0)throw new Error('aspect\x20must\x20be\x20a\x20positive\x20finite\x20number');if(!isFinite(f))throw new Error(gX(0x874));if(d<0x1){const g=b['x']-c['x'],h=b['y']-c['y'],i=b['z']-c['z'];return new a0c(c['x']+g*f,c['y']+h*f,c['z']+i*f);}return b[gX(0x471)]();}function Yr(b,c){const gY=a0bL;if(!b||!b[gY(0x356)])throw new Error(gY(0xac5));if(!c||!(c instanceof a0c))throw new Error('targetPoint\x20must\x20be\x20a\x20Vector3');if(!b[gY(0x813)])throw new Error('Mesh\x20must\x20have\x20geometry');b[gY(0x813)][gY(0x3dd)]||b['geometry']['computeBoundingBox']();const d=new a0c();b['geometry'][gY(0x3dd)][gY(0x248)](d);const f=new a0c()['copy'](c)['sub'](b['parent']?b['parent'][gY(0x8d5)](d[gY(0x471)]()):d);return b[gY(0x1b7)][gY(0x3fe)](f),{'localCenter':d,'newPosition':f,'targetPoint':c};}function sc(i,j,k={}){const gZ=a0bL;if(!i||typeof i[gZ(0x207)]!=gZ(0x652)||typeof i[gZ(0x248)]!=gZ(0x652)||typeof i['getSize']!=gZ(0x652))return console[gZ(0x644)]('无效的\x20boundingBox\x20对象:缺少必要方法(isEmpty/getCenter/getSize)'),{'near':0.01,'far':0x2710};if(!j||!j[gZ(0x1b7)]||typeof j[gZ(0x1b7)][gZ(0x5a8)]!='function')return console['error'](gZ(0x73d)),{'near':0.01,'far':0x2710};const m={'padding':0.3,'minNear':0.01,'maxFar':0x1a0a,'minFarNearRatio':1.1,'maxFarNearRatio':0x4e20,'farExtension':1.2},{padding:v,minNear:w,maxFar:x,minFarNearRatio:y,maxFarNearRatio:z,farExtension:B}={...m,...k};if(i[gZ(0x207)]())return console['warn'](gZ(0x58d)),{'near':w,'far':Math[gZ(0x36b)](0x1f4,x)};const E=new a0c(),F=new a0c();if(i['getCenter'](E),i[gZ(0x7af)](F),isNaN(E['x'])||isNaN(E['y'])||isNaN(E['z']))return console['error']('包围盒中心(center)数值无效'),{'near':w,'far':Math[gZ(0x36b)](0x1f4,x)};if(isNaN(F['x'])||isNaN(F['y'])||isNaN(F['z']))return console[gZ(0x644)]('包围盒尺寸(size)数值无效'),{'near':w,'far':Math['max'](0x1f4,x)};const H=j[gZ(0x1b7)]['distanceTo'](E);if(isNaN(H)||H<0x0)return console[gZ(0x644)]('相机到包围盒中心的距离无效',H),{'near':w,'far':Math[gZ(0x36b)](0x1f4,x)};const L=Math['max'](typeof v==gZ(0x4ed)?v:0.3,H*0.1),N=F['length']()*0.5;if(isNaN(N))return console[gZ(0x644)]('包围盒半径计算无效',F),{'near':w,'far':Math['max'](0x1f4,x)};let R=Math[gZ(0x36b)](H-N*(0x1+L),w);R=Math['min'](R,0.5),R=Math[gZ(0x5d2)](R,H*0.5),R=isNaN(R)?w:R;let S=H+N*(0x1+L)*B;return S=Math['max'](S,0x1f4),S=Math['min'](S,x),S=isNaN(S)?x:S,S=Math[gZ(0x36b)](S,R*y),S/R>z&&(R=Math['max'](S/z,w),R=Math[gZ(0x5d2)](R,0.5)),S<=R&&(S=Math[gZ(0x36b)](R*y,0x1f4)),R=Math['min'](R,0.5),S=Math['max'](S,0x1f4),{'near':R,'far':S};}function Kr(b,c=Vr){const h0=a0bL;if(!Array[h0(0x335)](b)||b[h0(0x3ea)]!==0x3)throw new Error('Size\x20must\x20be\x20an\x20array\x20of\x203\x20numbers\x20[x,\x20y,\x20z]');const [d,f,g]=b;if(d<=0x0||f<=0x0||g<=0x0)throw new Error('All\x20dimensions\x20must\x20be\x20positive\x20numbers');const h=new a0am(d,f,g),i=new a0an(h);return new a0k(i,c);}function nc(b,c={}){const h1=a0bL;if(!b||typeof b[h1(0x268)]!='function')throw new Error(h1(0x7fb));const {color:d=0x87ceeb,lineWidth:f=0x1}=c,g=new a0ay();return b[h1(0x268)](i=>{const h2=h1;if(i instanceof a0e){const j=i;if(!j['geometry'])return;const k=new a0an(j['geometry']),m=new a0i({'color':d,'linewidth':f,'transparent':!0x0,'opacity':0.8}),p=new a0k(k,m);p[h2(0x1b7)][h2(0x3fe)](j[h2(0x1b7)]),p[h2(0x122)]['copy'](j['quaternion']),p['scale'][h2(0x3fe)](j['scale']),p[h2(0x74)]=h2(0xa0a)+(j['name']||'mesh'),g['add'](p);}}),g['position'][h1(0x3fe)](b[h1(0x1b7)]),g[h1(0x122)]['copy'](b['quaternion']),g['scale'][h1(0x3fe)](b[h1(0x61e)]),g['name']=h1(0xa51)+(b['name']||'object'),g;}function rc(b,c,d){const h3=a0bL;return c&&d(c,h3(0x32b))?new a0c(...b):new a0c(b[0x0],b[0x2],-b[0x1]);}function oc(b){const h4=a0bL;b[h4(0x268)](f=>{const h5=h4;f['isMesh']&&f[h5(0x813)]&&f['geometry']['computeBoundingBox']();});const c=new a0h()[h4(0x256)](b),d=new a0c();return c[h4(0x248)](d),b[h4(0x268)](f=>{const h6=h4;if(f[h6(0x356)]&&f[h6(0x813)]){const g=f[h6(0x813)][h6(0x7bc)]('position');if(g){for(let h=0x0;h<g['count'];h++){const i=g[h6(0xa7f)](h)-d['x'],j=g[h6(0x8d6)](h)-d['y'],k=g['getZ'](h)-d['z'];g['setXYZ'](h,i,j,k);}g[h6(0x12d)]=!0x0,f['geometry']['computeBoundingBox']();}}}),b['traverse'](f=>{const h7=h4;f['isMesh']&&f[h7(0x813)]&&(f['geometry']['computeBoundingBox'](),f[h7(0x813)][h7(0x3dd)]&&f['geometry']['computeBoundingSphere']());}),d;}function ac(b){const h8=a0bL;if(!b)return;b['boundingBox']||b[h8(0xaf9)](),b['boundingSphere']||b[h8(0x84d)]();const c=b[h8(0x7bc)](h8(0x1b7));c&&(c['needsUpdate']=!0x1);}function cc(b){const h9=a0bL;if(!b)return null;const c=[b[h9(0x736)],b['color']?.[h9(0x955)](),b[h9(0x428)]?.[h9(0x4c6)],b['roughness'],b['metalness'],b['transparent'],b['opacity']][h9(0x2e7)](d=>d!==void 0x0);return c[h9(0x3ea)]>0x0?c['join']('|'):null;}function lc(b,d,f){const hb=a0bL,g=new a0c()['subVectors'](f,d),h=new a0c()[hb(0x642)](b,d),i=g[hb(0x3ea)](),j=g[hb(0x6ff)]();let k=h['dot'](j);return k=Math[hb(0x36b)](0x0,Math['min'](k,i)),new a0c()['copy'](d)['add'](j[hb(0x433)](k));}function hc(i){const hf=a0bL,j=i['length'];if(j<0x3)return 0x0;const k=i[0x0],m=i[0x1],u=i[0x2],v=new a0c()['subVectors'](m,k),w=new a0c()[hf(0x642)](u,k),x=new a0c()['crossVectors'](v,w)['normalize'](),y=new a0c(0x1,0x0,0x0);Math[hf(0x855)](y['dot'](x))>0.9&&y['set'](0x0,0x1,0x0),y['cross'](x)[hf(0x6ff)]();const z=new a0c()[hf(0x9f3)](x,y)[hf(0x6ff)](),B=[];i[hf(0xb8)](F=>{const hj=hf,H=new a0c()['subVectors'](F,k);B[hj(0x4f5)]({'u':H['dot'](y),'v':H[hj(0x7c9)](z)});});let E=0x0;for(let F=0x0;F<j;F++){const H=(F+0x1)%j,L=B[F],N=B[H];E+=L['u']*N['v']-N['u']*L['v'];}return Math[hf(0x855)](E)*0.5;}function Ac(b){const hk=a0bL,c=new a0c(0x0,0x0,0x0),d=b[hk(0x3ea)];return b['forEach'](f=>{const hm=hk;c[hm(0x577)](f);}),c['divideScalar'](d);}function nA(b){const hn=a0bL;if(b[hn(0x3ea)]<0x3)return!0x0;const f=b[0x0],i=b[0x1],j=b[0x2],k=new a0c()[hn(0x642)](i,f),m=new a0c()[hn(0x642)](j,f),p=new a0c()[hn(0x9f3)](k,m)['normalize'](),v=new a0c(0x1,0x0,0x0);Math['abs'](v[hn(0x7c9)](p))>0.9&&v[hn(0x9fd)](0x0,0x1,0x0),v[hn(0xa94)](p)['normalize']();const w=new a0c()['crossVectors'](p,v)['normalize'](),x=[];b[hn(0xb8)](B=>{const hp=hn,E=new a0c()[hp(0x642)](B,f);x[hp(0x4f5)]({'u':E[hp(0x7c9)](v),'v':E[hp(0x7c9)](w)});});let y=0x0;const z=x['length'];for(let B=0x0;B<z;B++){const E=(B+0x1)%z;y+=x[B]['u']*x[E]['v']-x[E]['u']*x[B]['v'];}return y>0x0;}function rA(b,d,f,g){const hq=a0bL,h=new a0c()['subVectors'](d,b),i=new a0c()['subVectors'](f,b),j=new a0c()['crossVectors'](h,i)['normalize'](),k=new a0c()['addVectors'](b,d)[hq(0x577)](f)[hq(0x331)](0x3),m=new a0c()['subVectors'](g,k)['normalize']();return j['dot'](m)>0x0;}function Cr(i,j){const hv=a0bL;if(i[hv(0x3ea)]<0x3)throw new Error('至少需要3个点才能创建多边形');const k=i[0x0],v=i[0x1],w=i[0x2],z=new a0c()[hv(0x642)](v,k),F=new a0c()['subVectors'](w,k),H=new a0c()['crossVectors'](z,F)[hv(0x6ff)](),L=new a0c(0x1,0x0,0x0);Math['abs'](L['dot'](H))>0.9&&L['set'](0x0,0x1,0x0),L[hv(0xa94)](H)['normalize']();const N=new a0c()['crossVectors'](H,L)[hv(0x6ff)](),R=[];i[hv(0xb8)](a2=>{const hw=hv,a3=new a0c()[hw(0x642)](a2,k),a4=a3[hw(0x7c9)](L),a5=a3[hw(0x7c9)](N);R[hw(0x4f5)](new a0l(a4,a5));});const S=nA(i),T=S?R:[...R]['reverse'](),U=a0az['triangulateShape'](T,[]),a0=new a0j()[hv(0x72f)](i),a1=[];if(U['forEach'](a2=>{S?a1['push'](a2[0x0],a2[0x1],a2[0x2]):a1['push'](a2[0x0],a2[0x2],a2[0x1]);}),a0[hv(0x512)](a1),j){const a2=U[0x0],a3=i[a2[0x0]],a4=i[a2[0x1]],a5=i[a2[0x2]];if(!rA(a3,a4,a5,j)){const a6=[];for(let a7=0x0;a7<a1[hv(0x3ea)];a7+=0x3)a6['push'](a1[a7],a1[a7+0x2],a1[a7+0x1]);a0[hv(0x512)](a6);}}return a0;}const Jg=Object[a0bL(0x5cf)](Object['defineProperty']({'__proto__':null,'adjustCameraPositionForPortrait':sA,'applyVertexScaling':$a,'arePointsEqualWithEpsilon':Jh,'basicLineMaterial':Vr,'calculateCameraNearFar':sc,'calculateClippingRange':ic,'calculatePolygonArea':hc,'calculatePolygonCenter':Ac,'calculateSceneBoundingBox':tc,'centerizeModelGeometry':oc,'convertBoundsCenter':rc,'createArrow':$h,'createBoundingBoxClipPlanes':Ja,'createBox':Uh,'createBoxEdgeModel':Kr,'createBoxWireframe':Nh,'createCSS2DObject':J,'createLOD':eA,'createLineFromPoints':Gh,'createLineFromVector':zh,'createPipe':Vh,'createPolygonGeometry':Cr,'createVisualPlane':Xa,'createWireframeFromObject':nc,'decomposeMatrix':jr,'dominantAxis':Xh,'downloadTextureByMaterial':Kh,'enhanceInstancedMesh':Zh,'findObjectsByName':qh,'getClosestPointOnLineSegment':lc,'getIntersectionWithPlane':jh,'getMaterialKey':cc,'getObjectCenterWorldPosition':Ya,'getRandomHexColor':Yh,'groupByScale':Za,'hitTestFromScreenPoint':Xs,'meshToPlane':iA,'optimizeGeometryBounds':ac,'planeEquationToPointAndNormal':Wa,'processStandardMaterial':ec,'s2ta':Wh,'s2tv':di,'setAdvancedBackground':Ka,'setMeshBoundingBoxCenterTo':Yr,'traverseAndProcessMaterials':tA,'traverseMaterials':Hh},Symbol['toStringTag'],{'value':a0bL(0x4f4)})),dc=0x0,oA=0x1,aA=0x2,vo=0x2,Rn=1.25,_o=0x1,rs=0x6*0x4+0x4+0x4,nn=0xffff,cA=Math[a0bL(0xf6)](0x2,-0x18),Pn=Symbol(a0bL(0x155));function lA(b){const hx=a0bL;return b[hx(0x9ee)]?b[hx(0x9ee)]['count']:b['attributes']['position'][hx(0x675)];}function _i(b){return lA(b)/0x3;}function hA(b,c=ArrayBuffer){return b>0xffff?new Uint32Array(new c(0x4*b)):new Uint16Array(new c(0x2*b));}function AA(b,c){const hy=a0bL;if(!b[hy(0x9ee)]){const d=b[hy(0x4e1)][hy(0x1b7)][hy(0x675)],f=c[hy(0x7dd)]?SharedArrayBuffer:ArrayBuffer,g=hA(d,f);b['setIndex'](new a0F(g,0x1));for(let h=0x0;h<d;h++)g[h]=h;}}function uc(b,d){const hz=a0bL,f=_i(b),g=d||b['drawRange'],h=g[hz(0x511)]/0x3,i=(g[hz(0x511)]+g[hz(0x675)])/0x3,j=Math['max'](0x0,h),k=Math[hz(0x5d2)](f,i)-j;return[{'offset':Math[hz(0xb11)](j),'count':Math[hz(0xb11)](k)}];}function gc(b,d){const hB=a0bL;if(!b[hB(0x7f8)]||!b['groups'][hB(0x3ea)])return uc(b,d);const f=[],g=new Set(),i=d||b['drawRange'],j=i[hB(0x511)]/0x3,k=(i[hB(0x511)]+i['count'])/0x3;for(const p of b['groups']){const u=p[hB(0x511)]/0x3,v=(p[hB(0x511)]+p[hB(0x675)])/0x3;g['add'](Math['max'](j,u)),g['add'](Math[hB(0x5d2)](k,v));}const m=Array['from'](g['values']())[hB(0x3b2)]((w,x)=>w-x);for(let w=0x0;w<m[hB(0x3ea)]-0x1;w++){const x=m[w],y=m[w+0x1];f['push']({'offset':Math['floor'](x),'count':Math['floor'](y-x)});}return f;}function dA(b,c){const hC=a0bL,d=_i(b),f=gc(b,c)[hC(0x3b2)]((i,j)=>i[hC(0x3fb)]-j['offset']),g=f[f[hC(0x3ea)]-0x1];g[hC(0x675)]=Math[hC(0x5d2)](d-g['offset'],g[hC(0x675)]);let h=0x0;return f['forEach'](({count:i})=>h+=i),d!==h;}function kn(i,j,z,H,N){let U=0x1/0x0,a0=0x1/0x0,a1=0x1/0x0,a2=-0x1/0x0,a3=-0x1/0x0,a4=-0x1/0x0,a5=0x1/0x0,a6=0x1/0x0,a7=0x1/0x0,a8=-0x1/0x0,a9=-0x1/0x0,ab=-0x1/0x0;for(let aj=j*0x6,ak=(j+z)*0x6;aj<ak;aj+=0x6){const am=i[aj+0x0],an=i[aj+0x1],ap=am-an,aq=am+an;ap<U&&(U=ap),aq>a2&&(a2=aq),am<a5&&(a5=am),am>a8&&(a8=am);const av=i[aj+0x2],aw=i[aj+0x3],ax=av-aw,ay=av+aw;ax<a0&&(a0=ax),ay>a3&&(a3=ay),av<a6&&(a6=av),av>a9&&(a9=av);const az=i[aj+0x4],aB=i[aj+0x5],aC=az-aB,aD=az+aB;aC<a1&&(a1=aC),aD>a4&&(a4=aD),az<a7&&(a7=az),az>ab&&(ab=az);}H[0x0]=U,H[0x1]=a0,H[0x2]=a1,H[0x3]=a2,H[0x4]=a3,H[0x5]=a4,N[0x0]=a5,N[0x1]=a6,N[0x2]=a7,N[0x3]=a8,N[0x4]=a9,N[0x5]=ab;}function uA(i,j=null,k=null,z=null){const hD=a0bL,F=i[hD(0x4e1)][hD(0x1b7)],H=i[hD(0x9ee)]?i['index']['array']:null,L=_i(i),N=F['normalized'];let R;j===null?(R=new Float32Array(L*0x6),k=0x0,z=L):(R=j,k=k||0x0,z=z||L);const U=F[hD(0x443)],a0=F[hD(0x3fb)]||0x0;let a1=0x3;F['isInterleavedBufferAttribute']&&(a1=F[hD(0x340)][hD(0x6bf)]);const a2=['getX',hD(0x8d6),hD(0x9a3)];for(let a3=k;a3<k+z;a3++){const a4=a3*0x3,a5=a3*0x6;let a6=a4+0x0,a7=a4+0x1,a8=a4+0x2;H&&(a6=H[a6],a7=H[a7],a8=H[a8]),N||(a6=a6*a1+a0,a7=a7*a1+a0,a8=a8*a1+a0);for(let a9=0x0;a9<0x3;a9++){let ab,aj,ak;N?(ab=F[a2[a9]](a6),aj=F[a2[a9]](a7),ak=F[a2[a9]](a8)):(ab=U[a6+a9],aj=U[a7+a9],ak=U[a8+a9]);let am=ab;aj<am&&(am=aj),ak<am&&(am=ak);let an=ab;aj>an&&(an=aj),ak>an&&(an=ak);const ap=(an-am)/0x2,aq=a9*0x2;R[a5+aq+0x0]=am+ap,R[a5+aq+0x1]=ap+(Math['abs'](am)+ap)*cA;}}return R;}function a0a(){const J8=['_isUserControllingZoom','helperTip','log10','one','value','imageButton','isETC1S','some','gapSize','\x20张图片,还可以上传\x20','delayedModels','isLineSegments2','toggleVisible','highPassUniforms','20px\x200','初始化ModelLoader','#2196F3','assignFinalMaterial','selectAnnotation','clipIntersection','processImageFiles','toFixed','requestDraw','cancelAnnotation','processed','decoderBinary','clearcoatNormalTexture','GetTrianglesUInt32Array','originalSize','center','clickEvents','解析错误:\x20','isDrawing','strokeStyle','_dollyControlCoord','cameraFar','_nextUint32','_init','danger','mesh\x20must\x20be\x20a\x20Mesh\x20instance','_disposePointer','devicePixelRatio','viewCoordinates','depth','使用模型中心点适配视图','bmv-message-fade-out\x200.3s\x20ease-out','KeyD','pointermove','isSeparated','lerp','linewidth','clipping','renderTargetsVertical','objects','getPlane','indirect','button-container','drawAlignmentLine','isLineSegmentsGeometry','onMouseUp','isSectionBoxActive','origWidth','clearcoatFactor','DEFAULT_PLANE_OPACITY','LODFactor','flatShading','sampleValues','_fileSize','abortController','malloc','操作已取消','加载警告','\x20reached\x20when\x20generating\x20BVH.\x20Consider\x20increasing\x20maxDepth.','blob:','change','isClipped','getHandler','signal','labelPosition','__FILE_COUNT','EXT_TEXTURE_AVIF','startTool','UnrealBloomPass.h','model','MAX_IMAGES','ALWAYS','flipY','Invalid\x20URL:\x20expected\x20a\x20non-empty\x20string','_startX','setFromMatrixColumn','calculateLineCenter','computeBoundingBox','beforeRoot','multiplyMatrices','directionalLight','LineSegmentsGeometry','_COLOR_0','extractObjectProperties','averageSize','holdIntervalDelay','getFocalOffset','restJoystick','arraybuffer','boundingSphere','下载超时,请检查网络连接','resetList','load','values','%)translate(','intersectTriangle','_dataView','应用缩放变换到实例','text/javascript','extensions','预设风格','floor','cameraProjectionMatrix','开始处理位置矩阵','获取缓存大小失败',':end','calculatePlaneDimensions','setupDefaultControls','addScene','updateTooltipPosition','progressContainer','\x20<span\x20title=\x22删除\x22\x20class=\x22bmv-measure-label-delete\x22>×</span>','decodeGltfBuffer','LineSegments2','initExplosionData','width','_zoom0','_zoomEnd','isMoving','setOrbitBehavior','aspect','Name\x20must\x20be\x20a\x20string','TOUCH_DOLLY','middle','getTarget','pathname','loadBufferView','loadAccessor','Content\x20is\x20required','updateBoxCenter','缓存不可用,无法获取文件名','DATABASE_ERROR','userData','setFromPointsField','setLayerVisibility','QUOTA_EXCEEDED','box','name','currentIntensity','恢复批注过程中发生错误','responseType','updateMatrix','prefix','marker','zoomByNodeName','truck','mozfullscreenchange','tNormal','createLinearGradient','_phiVelocity','DT_UINT16','loadStartTime','normal','HOLDING','边线解析进度','createElement','specularColorFactor','dragThreshold','selectedObject','imagePreviewContainer','high-performance','初始化数据库,当前版本:\x20','prepareCollections','emissiveStrength','删除过期缓存失败:\x20','all','perspective','setSceneBackground','THREE.DRACOLoader:\x20Unexpected\x20message,\x20\x22','transcoderBinary','/s)','getAllKeys','EngineFormat','THREE.DRACOLoader:\x20Decoding\x20failed:\x20','SCENES','--freehand','renderer','createObjectURL','hidePropertyPanel','click','Box\x20dimensions\x20must\x20be\x20positive\x20numbers','alphaCutoff','相机控制器配置完成','computeLineDistances','hasNegativeScale','getCameraAspectDistance','数据库连接已关闭','滚轮操作已禁用','lockY','setClear','computeBoundsTree','_taskLoad','mouseleave','THREE.GLTFLoader:\x20Unknown\x20extension\x20\x22','lastModified','beginPath','isBufferGeometry','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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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','removeEventListener:\x20事件未注册','_getVertexShader','_viewer','Line2','onMove','_getWorker','bindNipple','forEach','postMessage','ondata','emissiveIntensity','info','attributeIDs','_simpleHash','MB),需要清理缓存','idles','_getNewPrimitive','DefaultMaterial','setDRACOLoader','toggleEffect','执行视图大小调整','(按住Shift锁定轴)','distanceToBox','folder','drawPreviewPolygon','defaultAttributeTypes','AbortError','选择第一个面以开始测量','connect','vkFormat','removeEventListener','1000','transform','USE_DASH','register','_scan','获取缓存文件名失败','blendMaterial','THREE.GLTFLoader:\x20Couldn\x27t\x20load\x20texture','KHR_materials_iridescence','initRendererManager','removeImage','mouseup','workerLimit','animate','Scene\x20\x22','该对象没有可用的属性信息','contextmenu','nipples','bounds','解压文件失败:\x20','setAttribute','uv1','zoomByNodeName:\x20controls未初始化','setLineDash','.dampingFactor\x20has\x20been\x20deprecated.\x20use\x20smoothTime\x20(in\x20seconds)\x20instead.','azimuthRotateSpeed','textureID','loadImageSource','rested','20px','Ybit','detailedModelLoaded','registerEvent','showObject','unit','code','Space','loadScene','pow','updateUIPanel','KeyA','_mouseDownTarget','completeMeasurement','normalTexture','setFromCamera','refs','queue','fromArray','minZoom','handleMouseMove','toDataURL','默认控制快捷键设置完成','needUpdatePivotPoint','origin','loadAsync','输入批注内容,按\x20Enter\x20完成,按\x20Esc\x20重新选择点','_nextUint8Array','_indirectBuffer','Box3','measurements','UASTC_HDR','eyeHeight','边线数据解析完成','Layer0','split','sphere','files','ambientLight','Matrix4','detectSupport','Normal','unlockPointer','plane-control-label','cloneEdgeMesh','_isRunning','rightCacheBounds','indices','off','_removeAllEventListeners','移除快捷键成功','keyup','DEFAULT','quaternion','unregister','个文件','hideTooltip','normalScale','sampleUpper','restOpacity','minimumFractionDigits','setWorkerLimit','[ModelClipperTool]\x20sectionBoxGroup\x20未初始化','placeholder','needsUpdate','visible','getNormal','_boundary','清理缓存失败','lineMaterial','点击选择第二个面以完成测量','decoderConfig','trim','stencil','keydown','WEBGL_compressed_texture_astc','maxIntensity','initWebGLRenderer','环境贴图加载成功','bmv-message-styles','doubleClick','rotate','specularFactor','translateY(0)','clearcoatMap','EXT_texture_webp','tDiffuse','version','bumpMap','helper','break','_helperTip','setFocalOffset','common','loadNode','_loadLight','controlStart','matrixWorld','edgeStateSaved','MAX_IMAGE_SIZE','开始加载环境贴图','MIDDLE','pixelHeight','shapecast','SKIP_GENERATION','_interactiveArea','projectionMatrixInverse','尝试加载模型文件','getBoundingSphereAt','isFreehandCurrentLine','options','RGBA_ASTC_4x4_Format','statistics','log','_viewport','holdEnd','blur','THREE.BufferGeometryUtils.toTrianglesDrawMode():\x20Undefined\x20position\x20attribute.\x20Processing\x20not\x20possible.','blurTexture4','merge','decodeGeometry','loadAnimation','attenuationColor','保存文件计数失败','_lastZoom','needsSwap','edgeMeshCache','distanceSqToSegment','iPhone','bmv-message-icon','onTouchCancel','renderTargetBright','initCssRenderer','框选目标区域进行缩放(选区越小,放大倍率越高)','Callback\x20must\x20be\x20a\x20function','selectstart','byteLength','zoomRange','satBounds','luminosityThreshold','pointercancel','back','isMeshPhysicalMaterial','selectFace','\x20个过期缓存文件','manager','formatUserDataValue','initJoystick','vertexColors','KHR_TEXTURE_TRANSFORM','_targetVelocity','workerStatus','EngineType','buffer','坐标轴助手已初始化','listeners','clearcoatNormalScale','instanceEnd','_isDragging','父级数量','_createAnimationTracks','THREE.GLTFLoader:\x20Missing\x20camera\x20parameters.','\x22的节点','GetAttributeDataArrayForAllPoints','USE_ALPHA_TO_COVERAGE','navigator','message','intersectsBox','点击模型表面创建剖切平面','976917ibvRyb','removeChild','TRIANGULAR_MESH','meshes','边线数据解析完成(旧格式)','selectedPlaneIndex','_assignVertexColorSpace','_zoom','height','removeShortcut','_truckInternal','envmap','根据相机位置设置轨道点','transition','expandByScalar','dispose','blurTexture3','\x0a\x20\x20\x20\x20\x20\x20max-width:\x2090%;\x0a\x20\x20\x20\x20\x20\x20max-height:\x2090%;\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20gap:\x2016px;\x0a\x20\x20\x20\x20\x20\x20cursor:\x20default;\x0a\x20\x20\x20\x20\x20\x20min-width:\x20600px;\x0a\x20\x20\x20\x20','layerCount','\x20个点,按\x20Enter\x20完成测量','dataFormatDescriptor','supported','clock','cos','selectionZoom','root','onBeforeRender','ROOT','updatePropertyContent','touchend,\x20touchcancel','getPrimitive','getWorldPosition','progressBar','position','writeBuffer','metalness','hold','colorSpace','meshopt_decodeFilterQuat','处理单一小模型','epsilon\x20must\x20be\x20a\x20non-negative\x20number','invert','extract','disableBlackWhiteMode','fillRect','ontouchend','compose','doubleSided',':move','specularColorMap','isVector3','_lockedPointer','pixelWidth','16px','autoSceneIndex','\x20<span\x20title=\x22移除\x22\x20class=\x22bmv-measure-label-delete\x22>x</span>','extra\x20field\x20too\x20long','negate','parentNode','SpeechRecognition','readAsDataURL','批注添加失败,请重试','scrollLeft','_width','updateOrthographicCamera:\x20aspect无效','shouldLog','平行\x20','extensionsRequired','HOLD_END','boundsTree','数据库初始化成功','输入标注文字...','element','autoClear','handleMove','data:image/','ZipDownloader','instantiate','_startY','raycastFirst','resolve','ssaoMaterial','fromCharCode','applyNormalMatrix','_mesh','restoreAnnotationView','step','Default','剖切面\x20#','normalMap','source','MSPointerMove','缓存不可用,无法获取文件','updateCurrentLine','\x20used.','已同步相机位置和目标点','_camera','toJSON','renderPass','bmv-message-content','pointer','4px','collections','worldUnits','初始化快捷键配置失败','closest','未知的快捷键类型,使用默认hold类型','Request\x20failed','computeDirection','dimensionTool','getClosestPointOnLineSegment','setOrbitPoint','currentDirection','isEmpty','explosionTool','textContent','POSITIVE_INFINITY','400','===\x20INFO级别\x20-\x20场景页面和图层管理器已初始化\x20===','getDependencies','skin','materialCache','currentStyleIndex','isIOSDevice','详细模型信息','colorTexture','KHR_materials_volume','currentCamera','lights','catch','lengthComputable','visibility','showTimeout','userAgent','toggle-label','image','getInterpolation','animationFrameId','rgba(255,\x20255,\x20255,\x200.8)','destroy','plain','application/javascript','applyQuaternion','THREE.GLTFLoader:\x20Legacy\x20binary\x20file\x20detected.','bloomRadius','currentSpeed','clearcoatRoughnessMap','Delete','markers','removeAttribute','DFC_EDGE','_primitives','indexedDB','(重试\x20','splice','光照管理器已初始化','getIndex','KHR_MATERIALS_SHEEN','ownerDocument','WEBGL_compressed_texture_etc','isVisible','parentElement','cloneNode','platform','MiB','setSize','generateLOD','缓存大小将超过限制\x20(当前:\x20','clearcoatRoughnessTexture','distanceToPoint','classList','First\x20argument\x20must\x20be\x20an\x20array','_pixelRatio','title','PointerEvent','DOLLY','orthographicCamera','相机控制器不可用','getCenter','pop','metalnessMap','setTarget','清空缓存异常','getCurrentCacheSize','move\x20','onTouchEndRaw','_isUserControllingOffset','groupId','缓存空间不足,已尝试清理但可能仍不足','open','faceIndex','Mac','setFromObject','\x0a\x20\x20\x20\x20\x20\x20padding:\x204px\x2010px;\x0a\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20rgba(30,\x20136,\x20229,\x200.4);\x0a\x20\x20\x20\x20\x20\x20background:\x20rgba(30,\x20136,\x20229,\x200.2);\x0a\x20\x20\x20\x20\x20\x20color:\x20#fff;\x0a\x20\x20\x20\x20\x20\x20border-radius:\x203px;\x0a\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20transition:\x20all\x200.2s;\x0a\x20\x20\x20\x20\x20\x20font-family:\x20inherit;\x0a\x20\x20\x20\x20\x20\x20font-weight:\x20500;\x0a\x20\x20\x20\x20','has','deltaTime','_loadLibrary','projectionMatrix','debug','magic','controlsEnabled','truckSpeed','恢复视角失败:','moduleColor','results','setFogVisible:\x20scene未初始化','removeLast','localToWorld','mouseover','premultiply','traverse','\x20-\x20','box\x20must\x20be\x20a\x20Three.js\x20Box3\x20instance','multiply','downloadAndExtract','fromLine','线条组\x20','edgeVisible','zoomRange:\x20perspectiveControls未初始化','img','added\x20','getOptions','isObjectAndParentsVisible','isSupported','bits','isLineMaterial','substring','body','normalMaterial','byteStride','block','hideEdge','KHR_MATERIALS_UNLIT','getEventNameByType','text','初始化数据库','清空缓存失败','getWidth','365684SyCxbH','blending','json','completeCurrentLine','再次点击确定文本位置','dashSize','down_left','--pan','300px','_oldClearColor','modelLoader','zoom','startMarker','backgroundColor','minFilter','_rotateInternal','requestPointerLock','MeshBVH:\x20SharedArrayBuffer\x20is\x20not\x20available.','setFromUnitVectors','state','onTouchStartRaw','shape','download','_handlers_','theta','getOrthographicControls','top','_boundaryEnclosesCamera','pressureFn','refit','createBloom','fixed','_thetaVelocity','downloadTime','_focalOffset','fadeTime','模型信息文件未找到','getCamera','发送数据到\x20Worker\x20失败','findIndex','tool-loading-style','DT_INT32','originalMaterial','handleSelectionStart','fragmentShader','setLocked','wrapS','isValidPosition','colorPrimaries','texture','test','timeoutId','setMeshoptDecoder','arrayBuffer','setVisible','shortcutManager','vertices','setDecoderPath','TRANSPARENCY','texture-compression-pvrtc','pointerdown','workerNextTaskID','Malformed\x20buffer\x20data:\x20','_nextInt32','isTexture','clientWidth','</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22bmv-annotation-image-indicator\x22>🖼️×','updateMatrixWorld','resolveURL','selectLine','ymag','downloadSpeed','_isActive','_ambientLight','header','appendChild','hideByIndices','_collisionTest','locale','enabled','THREE.GLTFLoader:\x20Ignoring\x20primitive\x20type\x20.extras,\x20','createManager','_getIdleWorker','toString','texCoord','unbindDocument','basis_transcoder.wasm','3.0.1','front','缓存中未找到文件:\x20','_yAxisUpSpace','TOUCH_DOLLY_SCREEN_PAN','Distance\x20must\x20be\x20a\x20finite\x20number','pan','faceCount','srgb','getImageTranscodedSizeInBytes','获取到','closeAll','filter','_intervalId','px)','pos','删除IndexedDB时出错:','checkCameraType','px;\x0a\x20\x20\x20\x20\x20\x20bottom:\x20','viewer','axes','removeElement','clearcoatRoughnessFactor','onload','DEBUG','vertical','drawings','innerConeAngle','node','KHR_MATERIALS_CLEARCOAT','bufferViews','enableTransition','--wait','inputElement','KHR_materials_anisotropy','sectionBoxMesh','completeAnnotation','移除加载等待状态','snapToFaceEdgeOrCorner','activateSectionBox','THREE.DRACOLoader:\x20Unable\x20to\x20re-decode\x20a\x20buffer\x20with\x20different\x20settings.\x20Buffer\x20has\x20already\x20been\x20transferred.','SCALE','getLines','aomap','4px\x20solid\x20#67c23a','btn\x20btn-bottom','PVRTC1_4_RGBA','Yibit','_onMessage','webGLRenderer','withCredentials','touches','_base64Decode','setFromBufferAttribute','sheenRoughnessMap','isPointInViewport','drawPreviewLabel','renderTargetsHorizontal','edgeMesh','componentType','ssaoRenderTarget','文件从缓存删除成功:\x20','distanceToSquared','onColor','isPerspective','blurMaterial','加载模型','hidden','_isUserControllingTruck','applyExplosion','Worker\x20错误','plain:','\x20not\x20found\x20in\x20dgz\x20file','下载失败:\x20','rotateSpeed','strokeRect','COLOR_0','deleteDatabase','texture-compression-etc1','5NOnRfz','7.0.0','sleep','数据库升级失败','sectionBox','dataOnly','TOUCH_SCREEN_PAN','divideScalar','无法克隆空的边线网格对象','space-between','px;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20.slider.round:before\x20{\x0a\x20\x20\x20\x20\x20\x20border-radius:\x2050%;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20input:focus\x20+\x20.slider\x20{\x0a\x20\x20\x20\x20\x20\x20box-shadow:\x200\x200\x201px\x20','isArray','mousemoveEvents','explosionParts','开始初始化Viewer组件','primitives','decoderPath','_loadNodeShallow','cameraView','THREE.KTX2Loader:\x20.transcodeImage\x20failed.','KHR_DRACO_MESH_COMPRESSION','pageY','data','getCameraAspectDistance:\x20boxSize未初始化,返回默认值1000','bottom','lastWheelTime','ZIP_DECOMPRESS_ERROR','continuous','createAxis','0\x204px\x2012px\x20rgba(0,\x200,\x200,\x200.3),\x200\x200\x200\x201px\x20rgba(255,\x20255,\x20255,\x200.1)','blur(10px)','innerHeight','channel','.bmv-measure-label-delete','tooltip','touchstart','#377ee8','translateX(20px)','depthTexture','模型解析后无子对象','setControl','separableBlurMaterials','frontPosition','批注索引无效','isMesh','updateSliderConfig','getLevels','parser','active','touchAction','TOUCH_ZOOM_TRUCK','tooltipElement','_dollyToNoClamp','bindEvt','tDepth','trigger','IndexedDB可用性检查失败','instanceCount','intensity','progress-container','onMouseDownRaw','lockedAxis','\x0a\x20\x20\x20\x20\x20\x20\x20\x20position:\x20absolute;\x0a\x20\x20\x20\x20\x20\x20\x20\x20top:\x202px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20left:\x202px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20rgba(0,\x200,\x200,\x200.7);\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20white;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x201px\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x202px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20z-index:\x202;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20inherit;\x0a\x20\x20\x20\x20\x20\x20','THREE.Pass:\x20.render()\x20must\x20be\x20implemented\x20in\x20derived\x20pass.','onmouseleave','max','_edgeVisible','zoomRange:\x20boxCenter未初始化','onContextLostCallback','callback','getNormalMatrix','\x0a\x20\x20\x20\x20\x20\x20\x20\x20@keyframes\x20tool-spin\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x200%\x20{\x20transform:\x20rotate(0deg);\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20100%\x20{\x20transform:\x20rotate(360deg);\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20','channelType','clearAll','alphaToCoverage','textures','updateMessage','defaults','First\x20argument\x20must\x20be\x20a\x20function','handlers','BlurDirectionY','288dVPIuq','_addAllEventListeners','intersectsTriangle','handleContinuousAction','_getCameraDirection','cameraSleep','onsuccess','key','12px','缩放:\x20','clearAlpha','addByPoint','satAxes','_changedZoom','kernel','attenuationDistance','vector','sub','getBoundingClientRect','pointerEvents','deactivateSectionBox','PROXY','addClippingPlane','updateSize','delete','showLoading','THREE.GLTFLoader:\x20Primitive\x20mode\x20unsupported:\x20','lerpLookAt','dashOffset','getUint32','total','ShortcutManager','leftMouseDown','两个面在同一平面上,距离为0,请选择不同的面','startEndpointMarker','加载进度更新','equals','KHR_draco_mesh_compression','EXT_meshopt_compression','VersionError','mouseButtons','annotations','\x0a\x20\x20\x20\x20\x20\x20background:\x20rgba(255,\x20255,\x20255,\x200.2);\x0a\x20\x20\x20\x20\x20\x20color:\x20white;\x0a\x20\x20\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20font-size:\x2030px;\x0a\x20\x20\x20\x20\x20\x20width:\x2040px;\x0a\x20\x20\x20\x20\x20\x20height:\x2040px;\x0a\x20\x20\x20\x20\x20\x20border-radius:\x2050%;\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20transition:\x20background-color\x200.2s;\x0a\x20\x20\x20\x20\x20\x20flex-shrink:\x200;\x0a\x20\x20\x20\x20','config','showAnnotationImageGallery','无法获取响应读取器','controlsChange','raycaster','plane','random','near','indexOf','[PositionCameraTool]\x20计算出的相机位置无效','unnamed','planeSelect','sort','magFilter','makeSafe','lockPointer','statusText','autoClearColor','face','getCurrentDBVersion','times','文件合并失败:\x20','containsPoint','6px\x200','ontouchstart','loadTextAnnotations','KHR_materials_unlit','intersectPlane','UnrealBloomPass.v','getCameraAspectDistance:\x20orthographicCamera未初始化','点击任意平面进入第一人称模式(ESC退出)','explosion','处理负缩放情况','isIndexedDBAvailable','specularIntensityMap','angle','tan','readBuffer','pressureIntervals','OUTPUT','iridescenceThicknessMinimum','THREE.GLTFLoader:\x20WebP\x20required\x20by\x20asset\x20but\x20unsupported.','instance','ZSTD_findDecompressedSize','projectToNearestAxis','_updateOrbitBehavior','成功下载并解压,共','vertexColorSpace','dimensionLine','globalCompositeOperation','setXYZ','orthographic','cameraCache','medium','readonly','boundingBox','semi','Viewer:\x20容器元素不能为空','invalid\x20UTF-8\x20data','texture-compression-bptc','transcoderPath','object','faces','project','获取缓存文件名异常','可用存储空间不足\x20(','lightmap','PointCloud','length','radius','onLoaded','getPerspectiveControls','Missing\x20KTX\x202.0\x20identifier.','updateMousePosition','initDB','pixelDepth','Both\x20cube\x20and\x20scene\x20parameters\x20are\x20required','currentGroupId','bumpScale','autoRotate','setTranscoderPath','clickedMesh','pageChangeError','azimuthAngle','600','offset','afterRoot','数据库初始化失败,已禁用缓存功能','copy','_dragNeedsUpdate','图层信息已设置','useUniqueIDs','正在初始化','intersectsGeometry','\x20删除被阻塞(可能仍有连接未关闭)','5px\x2010px','shown','morphAttributes','getStep','fixedY','Failed\x20to\x20create\x20LOD\x20wireframe\x20model:','promise','background-color\x200.2s','resetButton','shiftKey','toPageCamera','size','translation','startExtensionLine','点击添加直线的终点','totalTime','invalid\x20block\x20type','上传图片','basic','WORLD_UNITS','MASK','result','boundsTrees','/*\x20draco\x20decoder\x20*/','点击添加直线的起点和终点,按住\x20Shift\x20锁定轴','BlurDirectionX','engineType','文件不在缓存中:\x20','_createCameraElement','show','cps','\x0a\x20\x20\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20height:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20object-fit:\x20cover;\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20block;\x0a\x20\x20\x20\x20\x20\x20','nodeCache','getDependency','.lens','map','white','captureStackTrace','_holdStart','every','\x20|\x20','THREE.KTX2Loader:\x09Invalid\x20texture','_state','Point\x20must\x20be\x20a\x20Vector3\x20or\x20an\x20object\x20with\x20x,\x20y,\x20z\x20properties','metallicRoughnessTexture','点击选择第一个面以开始测量','multiplyScalar','WEBGL_compressed_texture_pvrtc','getMatrixAt','--face_measure_guides','specularColorTexture','noiseTexture','decode','wrapT','rgba(0,\x200,\x200,\x200.9)','traverseVisible','_invokeAll','makeEmpty','round','scene','\x0a\x20\x20\x20\x20\x20\x20position:\x20absolute;\x0a\x20\x20\x20\x20\x20\x20bottom:\x2010px;\x0a\x20\x20\x20\x20\x20\x20left:\x2050%;\x0a\x20\x20\x20\x20\x20\x20transform:\x20translateX(-50%);\x0a\x20\x20\x20\x20\x20\x20background:\x20rgba(0,\x200,\x200,\x200.7);\x0a\x20\x20\x20\x20\x20\x20color:\x20white;\x0a\x20\x20\x20\x20\x20\x20padding:\x204px\x2012px;\x0a\x20\x20\x20\x20\x20\x20border-radius:\x2012px;\x0a\x20\x20\x20\x20\x20\x20font-size:\x2014px;\x0a\x20\x20\x20\x20','drawDistanceLine','array','createBoundingSphere','far','\x0a\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20font-size:\x2014px;\x0a\x20\x20\x20\x20\x20\x20color:\x20#606266;\x0a\x20\x20\x20\x20\x20\x20line-height:\x201.5;\x0a\x20\x20\x20\x20','成功添加\x20','强度:','texture-compression-etc2','EXT_MESHOPT_COMPRESSION','atan','updateGroupLabel','GLTFLoader异常','isPoints','RGBA_S3TC_DXT5_Format','bind','_lastTime',',无法添加更多剖切面','changedTouches','identifier','restoreMaterials','_roots','initTooltipElement','ACTION','globalClippingEnabled','axis','dracoLoader','Decoder','onTouchMoveRaw','[ModelClipperTool]\x20列表索引超出范围:\x20','string','emissiveMap','getOrCreate','levels','modelInfo','线条\x20','events','THREE.KTX2Loader:\x20Failed\x20to\x20identify\x20transcoding\x20target.','RGB_ETC1_Format','语音识别失败,请重试','endExtensionLine','GiB','rotation','KHR_texture_transform','roughness','display','success','constructor','clone','shadowOffsetY','stringify','skins','removeByIndex','parent','handleTouchMove','onMouseDown','initAxes','createUpDown','crossOrigin','爆炸控制器未初始化','getBoundingBox','hideObject','content\x20is\x20required','rest','loadTexture','originalWorldCenter','dollyToCursor','Tbit','addPointToCurrentLine','加载尺寸标注失败','\x0a\x20\x20\x20\x20\x20\x20padding:\x204px\x2010px;\x0a\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20rgba(255,\x20255,\x20255,\x200.2);\x0a\x20\x20\x20\x20\x20\x20background:\x20rgba(255,\x20255,\x20255,\x200.1);\x0a\x20\x20\x20\x20\x20\x20color:\x20#fff;\x0a\x20\x20\x20\x20\x20\x20border-radius:\x203px;\x0a\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20transition:\x20all\x200.2s;\x0a\x20\x20\x20\x20\x20\x20font-family:\x20inherit;\x0a\x20\x20\x20\x20','distance','\x0a\x20\x20\x20\x20\x20\x20font-size:\x2014px;\x0a\x20\x20\x20\x20\x20\x20font-weight:\x20500;\x0a\x20\x20\x20\x20','globalData','THREE.KTX2Loader:\x20ETC1S\x20and\x20UASTC\x20textures\x20should\x20use\x20multiple-of-four\x20dimensions.','\x0a\x20\x20\x20\x20.toggle-container\x20{\x0a\x20\x20\x20\x20\x20\x20display:\x20inline-flex;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20margin:\x208px;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20.toggle-vertical\x20{\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20.toggle-label\x20{\x0a\x20\x20\x20\x20\x20\x20margin:\x200\x208px;\x0a\x20\x20\x20\x20\x20\x20font-family:\x20Arial,\x20sans-serif;\x0a\x20\x20\x20\x20\x20\x20font-size:\x20','anisotropyMap','clearInput','innerText','transmissionFactor','alignedSatBounds','revokeObjectURL','EVENTS','styleManager','materials','addPoint','sourceCache','offsetHeight','BYTES_PER_ELEMENT','resize','onAfterRender','asset','KHR_TEXTURE_BASISU','rotateTo','webkitUserSelect','triangles','disposeScene','plane-control','未命名图层','uses','KHR_MATERIALS_DISPERSION','ms后重试...','.\x20Available:\x20','touchend','dir:up\x20dir:right\x20dir:down\x20dir:left','_focalOffsetEnd','rgba(55,\x20126,\x20232,\x20','registerAnimation:\x20animationFuncAfter必须是函数','draggingSmoothTime','tableName','side','unregisterEventListeners','getLevelPriority','setX','kibit','setWithCredentials','generateEdge','开始加载文本标注','target','getElementById','none','缓存有效,尝试从缓存加载文件','touch','no\x20callback','toArray','extras','\x20个旧缓存文件,释放了\x20','initialize','status','启动语音识别失败:','plain:up\x20plain:right\x20plain:down\x20plain:left','closestPointToPoint','解压初始化失败:\x20','uuid','环境贴图加载具体错误','isInterleavedBufferAttribute','compositeMaterial','restThreshold','_getTargetDirection','translateY(-20px)','effectManager','fileInput','KEEP','search','setY','clearColor','meshopt_decodeFilterExp','updateProjectionMatrix','html','\x0a\x20\x20\x20\x20\x20\x20\x20\x20margin-left:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2020px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#909399;\x0a\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20transition:\x20color\x200.2s;\x0a\x20\x20\x20\x20\x20\x20','_findPointerByMouseButton','\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20gap:\x208px;\x0a\x20\x20\x20\x20\x20\x20justify-content:\x20space-between;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20','uniform\x20sampler2D\x20tDiffuse;\x0a\x0a\x09\x09uniform\x20vec2\x20resolution;\x0a\x0a\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09vec2\x20texelSize\x20=\x20(\x201.0\x20/\x20resolution\x20);\x0a\x09\x09\x09float\x20result\x20=\x200.0;\x0a\x0a\x09\x09\x09for\x20(\x20int\x20i\x20=\x20-\x202;\x20i\x20<=\x202;\x20i\x20++\x20)\x20{\x0a\x0a\x09\x09\x09\x09for\x20(\x20int\x20j\x20=\x20-\x202;\x20j\x20<=\x202;\x20j\x20++\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09vec2\x20offset\x20=\x20(\x20vec2(\x20float(\x20i\x20),\x20float(\x20j\x20)\x20)\x20)\x20*\x20texelSize;\x0a\x09\x09\x09\x09\x09result\x20+=\x20texture2D(\x20tDiffuse,\x20vUv\x20+\x20offset\x20).r;\x0a\x0a\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09}\x0a\x0a\x09\x09\x09gl_FragColor\x20=\x20vec4(\x20vec3(\x20result\x20/\x20(\x205.0\x20*\x205.0\x20)\x20),\x201.0\x20);\x0a\x0a\x09\x09}','renderOrder','flex','⚠\x20两个面在同一平面上,距离为0,请选择不同的面','px;\x0a\x20\x20\x20\x20\x20\x20left:\x20','isLine','iPad\x20Simulator','translateX(0)','attributes','锁定\x20','assignTexture','padStart','assign','meshCache','removeAllEventListeners','LINE_STRIP','createPropertyPanel','proxyModel','setClearAlpha','setFromMatrixPosition','number','initHelperTipElement','cssText','1px\x20solid\x20rgba(255,\x20255,\x20255,\x200.1)','getLineColorByDirection','toBlob','baseColorTexture','Module','push','closeDB','scroll','clientX','clampPoint','textureCache','handleMouseDown','WEBKIT_WEBGL_compressed_texture_pvrtc','clickPoint','delta','\x20×\x20','supercompressionScheme','触摸并拖动','showAllInstances','metallicFactor','slice','beforeAddCallback','sheenRoughness','RGBA_BPTC_Format','pointerlockerror','highlightAnnotation','line','pvrtcSupported','SPAN','hasEventListener','applyStyles','textPoint','stopTool','start','setIndex','#EEEEEE','bar','lastIndexOf','_malloc','isLineToolDrawing','edges','diagonal','cameras','平面方程必须是长度为4的数组\x20[a,\x20b,\x20c,\x20d]','sheenColorTexture','saveState','basis_transcoder.js','setFromMatrix4','从内存中获取到文件:\x20','div','isClipped:\x20point必须是Vector3实例','4102000cDZvWf','typeSize','pool','uniforms','rgba(255,\x20255,\x20255,\x20','GET','ssao','Spherical','lastClickTime','addToDom','清除缓存过程出错','logger','reduce','初始化解压器','highlightGroup','TOUCH_ZOOM','updateOrthographicCamera:\x20更新正交相机失败','endMarker','setOpacity:\x20opacity必须是0-1之间的数字','Invalid\x20scene:\x20must\x20be\x20a\x20Three.js\x20Object3D','setOpacity:\x20forceUpdate必须是布尔值','onMouseMove','.draggingDampingFactor\x20has\x20been\x20deprecated.\x20use\x20draggingSmoothTime\x20(in\x20seconds)\x20instead.','_addNodeRef','removeShortcut:\x20key无效','zh-CN','applyMatrix4','_createGeometry','#222222','Gibit','LINE_LOOP','initContainer','_invokeOne','interpolate_','blurRenderTarget','objectStore','Event\x20must\x20be\x20MouseEvent\x20or\x20TouchEvent','MAX_CLIPPING_PLANES','deleteFromCache','parse','binary','messageElement','[WARNING]\x20:\x20Missing\x20\x22on','_enabled','lineWidth','output','DRACO_LOADER','group','camera-controls:\x20`THREE`\x20is\x20undefined.\x20You\x20must\x20first\x20run\x20`CameraControls.install(\x20{\x20THREE:\x20THREE\x20}\x20)`.\x20Check\x20the\x20docs\x20for\x20further\x20information.','lineTo','inputContainer','specularTexture','keys','disconnect','ZiB','设置默认控制快捷键失败','未知大小','TOUCH_OFFSET','proxy','bmv-annotation-input','#DBDBDE','isSkinnedMesh','切换相机类型','THREE.BufferGeometryUtils.toTrianglesDrawMode():\x20Unknown\x20draw\x20mode:','updateAllMaterials','ArrowLeft','_updatedLastTime','splitAxis','wake','up_right','handleImageUpload','_activePointers','清理旧缓存异常','setGlobalClippingEnabled','children','文件缓存已过期:\x20','数据库连接未初始化,尝试重新初始化','draggable','pbrMetallicRoughness','hideInput','interval','itemSize','iridescence','onContextLost','add','deltaX','pivotPoint',',\x20Y:','stroke','geometryIndex','createNipple','readwrite','resizeHandler','Progress\x20callback\x20must\x20be\x20a\x20function','thicknessFactor','initCameraControls','onClick','plane-control-actions','onAny','skinWeight','workingColorSpace','Invalid\x20raycaster\x20object','cloneBuffers','dictionary','iridescenceTexture','preventDefault','包围盒为空,使用安全默认值','clearOldCacheUntilSpaceAvailable','origHeight','install','\x0a\x20\x20\x20\x20\x20\x20uniform\x20vec4\x20cps[','remove','currentImageUrls','begin','planeMaterial','exportVersion','数据库重新初始化失败,无法保存缓存','--walk','exitButton','symbol',']\x20已成功清空','morphTargetInfluences','addEvent','setFromAxisAngle','height-100vh','_cameraUp0','createInterpolant','drawRange','dollyDragInverted','_changedDolly','_isUserControllingRotate','toLocaleString','continuousDrawing','distanceTo','instanceMatrix','bmv-message\x20bmv-message-','clientY','removePass','nodeNamesUsed','cameraNear','缓存已禁用,跳过数据库初始化','webglcontextrestored','Expected\x20a\x20finite\x20number,\x20got\x20','0\x202px\x206px\x20rgba(0,\x200,\x200,\x200.2)','bmv-container','OFFSET','find','renderToScreen','multiple','location','DFC_NODE','downloadEdgeFromUrl','setRenderTarget','findObjectByPartialName','holdStart','url','pluginCallbacks','charCodeAt','mesh','materialIndex','distanceToCameraSquared','LineGeometry','_options','\x0a\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20\x20\x20outline:\x20none;\x0a\x20\x20\x20\x20\x20\x20font-size:\x2014px;\x0a\x20\x20\x20\x20\x20\x20padding:\x204px;\x0a\x20\x20\x20\x20','getImageLevelInfo','noise4d','auto','light:','textAlign','lens','nodes','sectionBoxHelper','freeze','toggleEdgeVisibility','href','min','\x0a\x20\x20\x20\x20\x20\x20margin-right:\x2010px;\x0a\x20\x20\x20\x20\x20\x20font-size:\x2018px;\x0a\x20\x20\x20\x20\x20\x20font-weight:\x20bold;\x0a\x20\x20\x20\x20\x20\x20color:\x20','ctx','SSAO','px;\x0a\x20\x20\x20\x20\x20\x20color:\x20#333;\x0a\x20\x20\x20\x20\x20\x20z-index:\x20222;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20.label-top\x20.toggle-label,\x0a\x20\x20\x20\x20.label-bottom\x20.toggle-label\x20{\x0a\x20\x20\x20\x20\x20\x20margin:\x204px\x200;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20.switch\x20{\x0a\x20\x20\x20\x20\x20\x20position:\x20relative;\x0a\x20\x20\x20\x20\x20\x20display:\x20inline-block;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20.switch\x20input\x20{\x0a\x20\x20\x20\x20\x20\x20opacity:\x200;\x0a\x20\x20\x20\x20\x20\x20width:\x200;\x0a\x20\x20\x20\x20\x20\x20height:\x200;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20.slider\x20{\x0a\x20\x20\x20\x20\x20\x20position:\x20absolute;\x0a\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20top:\x200;\x0a\x20\x20\x20\x20\x20\x20left:\x200;\x0a\x20\x20\x20\x20\x20\x20right:\x200;\x0a\x20\x20\x20\x20\x20\x20bottom:\x200;\x0a\x20\x20\x20\x20\x20\x20background-color:\x20','webkitSpeechRecognition','_holding','presets','hostname','updateCameraUp','forward','\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20gap:\x208px;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20','intensitySlider','left','setupDefaultControls:\x20viewer未初始化','planes','获取缓存列表失败,无法清理','缩放操作失败:','%\x20(','mouseout','_hemiLight','isAxisLocked','all\x200.3s\x20ease','lengthSq','dxtSupported','Invalid\x20scene\x20object','FILE_ERROR','dragStartPosition','isAnnotationInViewport','showEdge','handleEnd','autoClearStencil','\x0a\x09\x09#include\x20<common>\x0a\x09\x09#include\x20<color_pars_vertex>\x0a\x09\x09#include\x20<fog_pars_vertex>\x0a\x09\x09#include\x20<logdepthbuf_pars_vertex>\x0a\x09\x09#include\x20<clipping_planes_pars_vertex>\x0a\x0a\x09\x09uniform\x20float\x20linewidth;\x0a\x09\x09uniform\x20vec2\x20resolution;\x0a\x0a\x09\x09attribute\x20vec3\x20instanceStart;\x0a\x09\x09attribute\x20vec3\x20instanceEnd;\x0a\x0a\x09\x09attribute\x20vec3\x20instanceColorStart;\x0a\x09\x09attribute\x20vec3\x20instanceColorEnd;\x0a\x0a\x09\x09#ifdef\x20WORLD_UNITS\x0a\x0a\x09\x09\x09varying\x20vec4\x20worldPos;\x0a\x09\x09\x09varying\x20vec3\x20worldStart;\x0a\x09\x09\x09varying\x20vec3\x20worldEnd;\x0a\x0a\x09\x09\x09#ifdef\x20USE_DASH\x0a\x0a\x09\x09\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09\x09#endif\x0a\x0a\x09\x09#else\x0a\x0a\x09\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09#endif\x0a\x0a\x09\x09#ifdef\x20USE_DASH\x0a\x0a\x09\x09\x09uniform\x20float\x20dashScale;\x0a\x09\x09\x09attribute\x20float\x20instanceDistanceStart;\x0a\x09\x09\x09attribute\x20float\x20instanceDistanceEnd;\x0a\x09\x09\x09varying\x20float\x20vLineDistance;\x0a\x0a\x09\x09#endif\x0a\x0a\x09\x09void\x20trimSegment(\x20const\x20in\x20vec4\x20start,\x20inout\x20vec4\x20end\x20)\x20{\x0a\x0a\x09\x09\x09//\x20trim\x20end\x20segment\x20so\x20it\x20terminates\x20between\x20the\x20camera\x20plane\x20and\x20the\x20near\x20plane\x0a\x0a\x09\x09\x09//\x20conservative\x20estimate\x20of\x20the\x20near\x20plane\x0a\x09\x09\x09float\x20a\x20=\x20projectionMatrix[\x202\x20][\x202\x20];\x20//\x203nd\x20entry\x20in\x203th\x20column\x0a\x09\x09\x09float\x20b\x20=\x20projectionMatrix[\x203\x20][\x202\x20];\x20//\x203nd\x20entry\x20in\x204th\x20column\x0a\x09\x09\x09float\x20nearEstimate\x20=\x20-\x200.5\x20*\x20b\x20/\x20a;\x0a\x0a\x09\x09\x09float\x20alpha\x20=\x20(\x20nearEstimate\x20-\x20start.z\x20)\x20/\x20(\x20end.z\x20-\x20start.z\x20);\x0a\x0a\x09\x09\x09end.xyz\x20=\x20mix(\x20start.xyz,\x20end.xyz,\x20alpha\x20);\x0a\x0a\x09\x09}\x0a\x0a\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09#ifdef\x20USE_COLOR\x0a\x0a\x09\x09\x09\x09vColor.xyz\x20=\x20(\x20position.y\x20<\x200.5\x20)\x20?\x20instanceColorStart\x20:\x20instanceColorEnd;\x0a\x0a\x09\x09\x09#endif\x0a\x0a\x09\x09\x09#ifdef\x20USE_DASH\x0a\x0a\x09\x09\x09\x09vLineDistance\x20=\x20(\x20position.y\x20<\x200.5\x20)\x20?\x20dashScale\x20*\x20instanceDistanceStart\x20:\x20dashScale\x20*\x20instanceDistanceEnd;\x0a\x09\x09\x09\x09vUv\x20=\x20uv;\x0a\x0a\x09\x09\x09#endif\x0a\x0a\x09\x09\x09float\x20aspect\x20=\x20resolution.x\x20/\x20resolution.y;\x0a\x0a\x09\x09\x09//\x20camera\x20space\x0a\x09\x09\x09vec4\x20start\x20=\x20modelViewMatrix\x20*\x20vec4(\x20instanceStart,\x201.0\x20);\x0a\x09\x09\x09vec4\x20end\x20=\x20modelViewMatrix\x20*\x20vec4(\x20instanceEnd,\x201.0\x20);\x0a\x0a\x09\x09\x09#ifdef\x20WORLD_UNITS\x0a\x0a\x09\x09\x09\x09worldStart\x20=\x20start.xyz;\x0a\x09\x09\x09\x09worldEnd\x20=\x20end.xyz;\x0a\x0a\x09\x09\x09#else\x0a\x0a\x09\x09\x09\x09vUv\x20=\x20uv;\x0a\x0a\x09\x09\x09#endif\x0a\x0a\x09\x09\x09//\x20special\x20case\x20for\x20perspective\x20projection,\x20and\x20segments\x20that\x20terminate\x20either\x20in,\x20or\x20behind,\x20the\x20camera\x20plane\x0a\x09\x09\x09//\x20clearly\x20the\x20gpu\x20firmware\x20has\x20a\x20way\x20of\x20addressing\x20this\x20issue\x20when\x20projecting\x20into\x20ndc\x20space\x0a\x09\x09\x09//\x20but\x20we\x20need\x20to\x20perform\x20ndc-space\x20calculations\x20in\x20the\x20shader,\x20so\x20we\x20must\x20address\x20this\x20issue\x20directly\x0a\x09\x09\x09//\x20perhaps\x20there\x20is\x20a\x20more\x20elegant\x20solution\x20--\x20WestLangley\x0a\x0a\x09\x09\x09bool\x20perspective\x20=\x20(\x20projectionMatrix[\x202\x20][\x203\x20]\x20==\x20-\x201.0\x20);\x20//\x204th\x20entry\x20in\x20the\x203rd\x20column\x0a\x0a\x09\x09\x09if\x20(\x20perspective\x20)\x20{\x0a\x0a\x09\x09\x09\x09if\x20(\x20start.z\x20<\x200.0\x20&&\x20end.z\x20>=\x200.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09trimSegment(\x20start,\x20end\x20);\x0a\x0a\x09\x09\x09\x09}\x20else\x20if\x20(\x20end.z\x20<\x200.0\x20&&\x20start.z\x20>=\x200.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09trimSegment(\x20end,\x20start\x20);\x0a\x0a\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09}\x0a\x0a\x09\x09\x09//\x20clip\x20space\x0a\x09\x09\x09vec4\x20clipStart\x20=\x20projectionMatrix\x20*\x20start;\x0a\x09\x09\x09vec4\x20clipEnd\x20=\x20projectionMatrix\x20*\x20end;\x0a\x0a\x09\x09\x09//\x20ndc\x20space\x0a\x09\x09\x09vec3\x20ndcStart\x20=\x20clipStart.xyz\x20/\x20clipStart.w;\x0a\x09\x09\x09vec3\x20ndcEnd\x20=\x20clipEnd.xyz\x20/\x20clipEnd.w;\x0a\x0a\x09\x09\x09//\x20direction\x0a\x09\x09\x09vec2\x20dir\x20=\x20ndcEnd.xy\x20-\x20ndcStart.xy;\x0a\x0a\x09\x09\x09//\x20account\x20for\x20clip-space\x20aspect\x20ratio\x0a\x09\x09\x09dir.x\x20*=\x20aspect;\x0a\x09\x09\x09dir\x20=\x20normalize(\x20dir\x20);\x0a\x0a\x09\x09\x09#ifdef\x20WORLD_UNITS\x0a\x0a\x09\x09\x09\x09vec3\x20worldDir\x20=\x20normalize(\x20end.xyz\x20-\x20start.xyz\x20);\x0a\x09\x09\x09\x09vec3\x20tmpFwd\x20=\x20normalize(\x20mix(\x20start.xyz,\x20end.xyz,\x200.5\x20)\x20);\x0a\x09\x09\x09\x09vec3\x20worldUp\x20=\x20normalize(\x20cross(\x20worldDir,\x20tmpFwd\x20)\x20);\x0a\x09\x09\x09\x09vec3\x20worldFwd\x20=\x20cross(\x20worldDir,\x20worldUp\x20);\x0a\x09\x09\x09\x09worldPos\x20=\x20position.y\x20<\x200.5\x20?\x20start:\x20end;\x0a\x0a\x09\x09\x09\x09//\x20height\x20offset\x0a\x09\x09\x09\x09float\x20hw\x20=\x20linewidth\x20*\x200.5;\x0a\x09\x09\x09\x09worldPos.xyz\x20+=\x20position.x\x20<\x200.0\x20?\x20hw\x20*\x20worldUp\x20:\x20-\x20hw\x20*\x20worldUp;\x0a\x0a\x09\x09\x09\x09//\x20don\x27t\x20extend\x20the\x20line\x20if\x20we\x27re\x20rendering\x20dashes\x20because\x20we\x0a\x09\x09\x09\x09//\x20won\x27t\x20be\x20rendering\x20the\x20endcaps\x0a\x09\x09\x09\x09#ifndef\x20USE_DASH\x0a\x0a\x09\x09\x09\x09\x09//\x20cap\x20extension\x0a\x09\x09\x09\x09\x09worldPos.xyz\x20+=\x20position.y\x20<\x200.5\x20?\x20-\x20hw\x20*\x20worldDir\x20:\x20hw\x20*\x20worldDir;\x0a\x0a\x09\x09\x09\x09\x09//\x20add\x20width\x20to\x20the\x20box\x0a\x09\x09\x09\x09\x09worldPos.xyz\x20+=\x20worldFwd\x20*\x20hw;\x0a\x0a\x09\x09\x09\x09\x09//\x20endcaps\x0a\x09\x09\x09\x09\x09if\x20(\x20position.y\x20>\x201.0\x20||\x20position.y\x20<\x200.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09\x09worldPos.xyz\x20-=\x20worldFwd\x20*\x202.0\x20*\x20hw;\x0a\x0a\x09\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09#endif\x0a\x0a\x09\x09\x09\x09//\x20project\x20the\x20worldpos\x0a\x09\x09\x09\x09vec4\x20clip\x20=\x20projectionMatrix\x20*\x20worldPos;\x0a\x0a\x09\x09\x09\x09//\x20shift\x20the\x20depth\x20of\x20the\x20projected\x20points\x20so\x20the\x20line\x0a\x09\x09\x09\x09//\x20segments\x20overlap\x20neatly\x0a\x09\x09\x09\x09vec3\x20clipPose\x20=\x20(\x20position.y\x20<\x200.5\x20)\x20?\x20ndcStart\x20:\x20ndcEnd;\x0a\x09\x09\x09\x09clip.z\x20=\x20clipPose.z\x20*\x20clip.w;\x0a\x0a\x09\x09\x09#else\x0a\x0a\x09\x09\x09\x09vec2\x20offset\x20=\x20vec2(\x20dir.y,\x20-\x20dir.x\x20);\x0a\x09\x09\x09\x09//\x20undo\x20aspect\x20ratio\x20adjustment\x0a\x09\x09\x09\x09dir.x\x20/=\x20aspect;\x0a\x09\x09\x09\x09offset.x\x20/=\x20aspect;\x0a\x0a\x09\x09\x09\x09//\x20sign\x20flip\x0a\x09\x09\x09\x09if\x20(\x20position.x\x20<\x200.0\x20)\x20offset\x20*=\x20-\x201.0;\x0a\x0a\x09\x09\x09\x09//\x20endcaps\x0a\x09\x09\x09\x09if\x20(\x20position.y\x20<\x200.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09offset\x20+=\x20-\x20dir;\x0a\x0a\x09\x09\x09\x09}\x20else\x20if\x20(\x20position.y\x20>\x201.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09offset\x20+=\x20dir;\x0a\x0a\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09//\x20adjust\x20for\x20linewidth\x0a\x09\x09\x09\x09offset\x20*=\x20linewidth;\x0a\x0a\x09\x09\x09\x09//\x20adjust\x20for\x20clip-space\x20to\x20screen-space\x20conversion\x20//\x20maybe\x20resolution\x20should\x20be\x20based\x20on\x20viewport\x20...\x0a\x09\x09\x09\x09offset\x20/=\x20resolution.y;\x0a\x0a\x09\x09\x09\x09//\x20select\x20end\x0a\x09\x09\x09\x09vec4\x20clip\x20=\x20(\x20position.y\x20<\x200.5\x20)\x20?\x20clipStart\x20:\x20clipEnd;\x0a\x0a\x09\x09\x09\x09//\x20back\x20to\x20clip\x20space\x0a\x09\x09\x09\x09offset\x20*=\x20clip.w;\x0a\x0a\x09\x09\x09\x09clip.xy\x20+=\x20offset;\x0a\x0a\x09\x09\x09#endif\x0a\x0a\x09\x09\x09gl_Position\x20=\x20clip;\x0a\x0a\x09\x09\x09vec4\x20mvPosition\x20=\x20(\x20position.y\x20<\x200.5\x20)\x20?\x20start\x20:\x20end;\x20//\x20this\x20is\x20an\x20approximation\x0a\x0a\x09\x09\x09#include\x20<logdepthbuf_vertex>\x0a\x09\x09\x09#include\x20<clipping_planes_vertex>\x0a\x09\x09\x09#include\x20<fog_vertex>\x0a\x0a\x09\x09}\x0a\x09\x09','sectionBoxGroup','updateEdge','MeshBVH:\x20Invalid\x20build\x20strategy\x20value\x20','RGBA_HALF','缓存保存失败:\x20','pages','updatePlaneHelper','正交相机不支持框选缩放,请切换到透视相机','warn','Invalid\x20object:\x20must\x20be\x20a\x20Three.js\x20Object3D','insertPass','two','label','isBone','translate(0px,\x200px)','_lastDollyDirection','hasOwnProperty','HOLD_START','sheenColor','THREE.BufferGeometryUtils.toTrianglesDrawMode():\x20Unable\x20to\x20generate\x20correct\x20amount\x20of\x20triangles.','getClearColor','itemStart','extendParams','edgeLayers','getFromCache','LODFactor\x20must\x20be\x20positive','CSS_CLASS_CLIP','__wasm_call_ctors','onupgradeneeded','fsQuad','TRANSLATION','updateMarkupsVisibility','drawLine','getCurrentStyleIndex','[Tool]\x20工具已在运行中,拒绝重复启动','clearDraw','registerAnimation','points','PAGE_CHANGE_PROGRESS','getMaterialType','ROOT_LOD_','setBoundary','计算LOD边界盒','scale','UNKNOWN_ERROR','setControlSpeed','restoreVisibility','noise3d','_target','setFogVisible:\x20场景中未设置雾效果','empty-message','plugins','bmv-measure-label-delete','_radiusVelocity','缓存有效性检查','accessor','registerEvent:\x20未知的事件类型','dispersion','send','float32Array','outerConeAngle','animations','checkCacheValidity','ClonedMaterial:','offColor','bmv-measure-label','dot3','iridescenceFactor','errors','_nearPlaneCorners','preload','TRIANGLES','Material\x20is\x20required','_lastDistance','ktx2','smoothTime','mode','边线数据处理失败:\x20','rgba(255,\x20255,\x20255,\x200.1)','subVectors','layers','error','2234472kZZZLD','配置加载器','getValue','文件大小\x20>=\x2015MB,生成线框模型并使用LOD','uiPanel','setFromNormalAndCoplanarPoint','setPositions','ktx2Loader','isPass','minPolarAngle','/*\x20constants\x20*/','uint32Array','toggle-vertical','function','originalMaterials','subarray','\x20/\x20','addColorStop','buttons','isEnabled','clearCache','anisotropyRotation','获取存储配额失败:','NORMAL','getOrthographicCamera','释放场景资源时发生错误','clearAnnotations','_taskCosts','boxSize','pressure','CUBICSPLINE','tempAnchorMarker','phi','THREE.GLTFLoader:\x20Missing\x20min/max\x20properties\x20for\x20accessor\x20POSITION.','_getClientRect','context','varying\x20vec2\x20vUv;\x0a\x09\x09\x09\x09void\x20main()\x20{\x0a\x09\x09\x09\x09\x09vUv\x20=\x20uv;\x0a\x09\x09\x09\x09\x09gl_Position\x20=\x20projectionMatrix\x20*\x20modelViewMatrix\x20*\x20vec4(\x20position,\x201.0\x20);\x0a\x09\x09\x09\x09}','NETWORK_ERROR','ArrowDown','clear:\x20释放几何体失败','createNodeAttachment','color','_updateNearPlaneCorners','pageChangeStart','calculateLODFarDistanceMultiplier','loadTextureImage','format','binded','count','isMobileDevice','生成边线样式','input','#626262','resourcePath','cursor','currentPage','_yAxisUpSpaceInverse','sheenRoughnessFactor','sampleLower','_focalOffsetVelocity','tool-loading-overlay','removeEventListener:\x20callback必须是函数','transaction','vite-plugin-css-injected-by-js','init','generateRandomKernelRotations','handleLeftMouseDown','isInteger','occlusionTexture','您的浏览器不支持语音识别','getDfcTreeStructure:\x20key\x20格式不正确,应为\x20\x22key1\x22\x20或\x20\x22key1-key2\x22,实际为\x20\x22','[ModelClipperTool]\x20找不到对应的裁剪平面:\x20','cancelAnimationFrame','getVisibleAt','decodeGltfBufferAsync','material','sqrt','_createOnRestPromise','8px\x2014px','match','后期渲染已初始化','addEventListener','charAt','plane-control-value','_focalOffset0','Material\x20does\x20not\x20have\x20a\x20map\x20texture','bufferView','clearGroups','_target0','EXT_mesh_gpu_instancing','获取到数据库版本:\x20','offset_vector','ids','fillStyle','KHR_MATERIALS_EMISSIVE_STRENGTH','drawSelectionBox','addVectors','var\x20instance;\x20var\x20ready\x20=\x20WebAssembly.instantiate(new\x20Uint8Array([','call','isMeshStandardMaterial','clearBuffer','createProgressBar','response','focalOffset0','uv2','边线数据下载出错','explosionIntensity','bindings',';\x0a\x20\x20\x20\x20','\x20is\x20missing\x20URI\x20and\x20bufferView','channels','Request\x20timeout','now','环境贴图已禁用','getCameraAspectDistance:\x20zoom值无效','Scene\x20is\x20required','items','isFinite','levelData','loadMesh','color:\x20#3b82f6;\x20font-weight:\x20normal;','fromBufferAttribute','stride','workers','closestPointToPointParameter','Quaternion','相机投影矩阵已更新','instanceStart','--explode','maxPolarAngle','cancel','\x20m²\x20<span\x20title=\x22移除\x22\x20class=\x22bmv-measure-label-delete\x22>x</span>','src','progress','BLEND','Float32Array','wheel','添加场景','BC7_M5','N/A','点击模型上的点开始标注','removeIdentifier','holding','视角坐标格式错误','attributeTypes','创建实例化网格,共','terminate','onclick','SCREEN_PAN','Escape','[ModelClipperTool]\x20sectionBox\x20未初始化','hide','colliderMeshes','ASTC_4x4','selectedMaterial','_sphericalEnd','setClearColor','MB),需要释放\x20','408562mEaMDs','minDistance','updateOrthographicCamera:\x20viewSize无效','processOnMove','scenePageManager','缓存表数量超过限制,删除表:\x20','KTX2_LOADER','_free','hudLabels','Viewer实例初始化完成','Min\x20must\x20be\x20less\x20than\x20or\x20equal\x20to\x20max','zipDownloader','isMobile','filesize','decodePrimitive','setOpacity','loadZipAsync:\x20progress必须是函数,使用默认空函数','boxCenter','缓存已禁用或数据库未初始化,缓存无效','disableBlackWhiteMode:\x20禁用黑白模式失败','tr_point','padding','zIndex','clearDepth','opacity','draco','cache','webkit','normalize','priorityHDR','selectedFaces','TEX_COORD','localClippingEnabled','outputColorSpace','attachEvent','setFromBox','cacheExpiry','boolean','创建ZipDownloader实例失败','lightManager','stylize','实例\x20','detectClickedLine','TOUCH_DOLLY_ROTATE','开始加载详细模型','camera','deltaY','leftCacheBounds','lineIndex','skinIndex','ray','roughnessMap','groupEnd','loadBuffer','requestAnimationFrame','addShortcut:\x20config不能为空','three','dashScale','THREE.GLTFLoader:\x20No\x20DRACOLoader\x20instance\x20provided.','rotateAzimuthTo','18px','setHex','enable','resolveTriangleIndex','optimizeModelMemory','translate(','baseColorFactor','targets','image/webp','MeshBVH:\x20Only\x20BufferGeometries\x20are\x20supported.','toolOptions','clippingPlanes','handlePaste','touchcancel','isLineGeometry','rgba(0,\x200,\x200,\x200.3)','setFromPoints','loadMaterial','BasisFormat','setLookAt','cameraSleepListener','updateImagePreview','edge','type','reject','oldSelect','perspectiveEffectManager','textBaseline','unzip','fov','无效的\x20camera\x20对象:缺少\x20position\x20属性或\x20distanceTo\x20方法','overrideVisibility','onDeactivate','toISOString','orbitBehavior','正交相机不支持第一人称漫游,请切换到透视相机','Degree\x20must\x20be\x20a\x20finite\x20number','setTransparencyMode','4px\x20solid\x20#e6a23c','ArrowUp','onMouseUpRaw','grad3','animationsAfter','bloom','objectIsVisible:\x20object为空','WebGL上下文丢失,开始释放场景资源','bindSliderEvent','KeyR','mouseButton','处理实例化分组\x20','px,','clear','close','targetNames','createCollection','ETC1','isWebGPURenderer','maxZoom','sheenColorFactor','bumpTexture','recognition','font','barycoord','onend','resizeCanvas','copyMaterial','drag','offsetWidth','available','THREE.KTX2Loader:\x20Missing\x20initialization\x20with\x20`.detectSupport(\x20renderer\x20)`.','slider\x20round','ETC1S','pointerup','interactiveArea','dispatchEvent','clearcoatNormalMap','slidersContainer','circle','TRIANGLE_STRIP','onTouchCancelRaw','getUint8','processOnStart','clientHeight','resultBuffer','All\x20scale\x20factors\x20must\x20be\x20finite\x20non-zero\x20numbers','PLANE_DUPLICATE_THRESHOLD','decoderPending','addPage','ZIP解压错误','setTest','/ktx2/','pageChangeProgress','THREE.KTX2Loader:\x20Unsupported\x20supercompressionScheme.','detachEvent','workerPool','mimeType','isActive','setExtensions','Pbit','space','_findPointerById','%),自动禁用缓存以避免页面刷新','span','缓存保存异常:\x20','\x20KB/s','RGBA_PVRTC_4BPPV1_Format','--look_around','°,\x20Z:','THREE.KTX2Loader:\x20Please\x20update\x20Basis\x20Universal\x20transcoder.','aoMap','#67c23a','normalizeRotations','清理了\x20','setW','transmission','TOUCH_TRUCK','sampler','direction','iridescenceThicknessRange','onPut','setFromMatrixScale','simplex','uv3','resize:\x20容器尺寸无效','无需清理缓存,空间充足','update','extensionsUsed','dot4','deactivate','isInputMode','drawPolygon','_needsUpdate','wrappedCallback','filename','CANVAS','KTX2File','bumpFactor','点击添加直线的起点','selectedIndex','Vector4','onDblclick','specularIntensity','个实例','threshold','getSize','eventName','data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA','pressure\x20','Failed\x20to\x20create\x20LOD\x20object:','djb2Hash','removeTempAnchorMarker','PAGE_CHANGE_START','actives','rgba(255,\x20255,\x20255,\x200.2)','light_','renderTarget1','\x0a\x20\x20\x20\x20\x20\x20width:\x2040px;\x0a\x20\x20\x20\x20\x20\x20height:\x2040px;\x0a\x20\x20\x20\x20\x20\x20border:\x204px\x20solid\x20#377ee8;\x0a\x20\x20\x20\x20\x20\x20border-top:\x204px\x20solid\x20transparent;\x0a\x20\x20\x20\x20\x20\x20border-radius:\x2050%;\x0a\x20\x20\x20\x20\x20\x20animation:\x20tool-spin\x201s\x20linear\x20infinite;\x0a\x20\x20\x20\x20','getAttribute','批注工具已激活\x20-\x20点击模型上的点开始批注','textarea','removed','getDistanceToFitBox','fill','CSS_CLASS_LOOK_AROUND','resetDirection','highlightLine','getClearAlpha','%c[','calculateLookAtTarget','上一张','dot','isNewScroll','图片处理失败:','_markDefs','isLastEnabledPass','handleMouseUp','Width\x20and\x20height\x20must\x20be\x20positive\x20numbers','orthographicEffectManager','isMaterial','messages','onActivate','Radius\x20must\x20be\x20a\x20positive\x20number','\x20张图片','substr','get','fromWireframeGeometry','easeOutQuad','animation','highlightPlane','标注工具已激活\x20-\x20点击模型上的点开始标注','useSharedArrayBuffer','KHR_BINARY_GLTF','Failed\x20to\x20parse\x20tr_point,\x20using\x20origin','canvas','requestHeader','_found_','drawGuideLine','weights','_tooltip','ZIP解压失败:\x20','innerWidth','创建ZipDownloader实例失败:\x20','CopyShader','_holdEnd','domains','intersectObjects','hasFeature','getContext','等待所有模型文件加载完成','isCompressedTexture','originalTransparencies','hits','prepareNipples','8px','enableBlackWhiteMode:\x20styleManager未初始化','_getArrayFromAccessor','morphTargetDictionary','groups','获取文件数据:\x20','shortcuts','Object\x20must\x20be\x20a\x20Three.js\x20Object3D','rgba(30,\x20136,\x20229,\x200.3)','absolute','decodeDracoFile','edgeData','diffuse','uint16Array','HIGHLIGHT_SCALE_FACTOR','toggle-','layer','restTimeout','pageXOffset','PAGE_CHANGE_COMPLETE','fileLoader','createWrappedCallback','saveToCache','toLowerCase','PARSE_MODEL_INFO','ZOOM','destroyed','destination-out','开始下载ZIP文件','已清除内存中的','offset_distance','geometry','实例化网格分组完成','zoomTo','visibleObjects','disposeBoundsTree','voiceButton','sparse','enterFirstPersonMode','latest','range','updateProgress','spot','static','loadDimensionsFromData','copyPass','loadModel','currentPoints','_directionalLight','尺寸标注的起点和终点重合,跳过','measure-snap-point','下载解压失败:\x20','dollyTo','let\x20_BasisFormat\x20=\x20','--label','signed','then','createNodeMesh','_drawInfo','joints','meshoptDecoder','interpolation','成功恢复\x20','_isUserControllingDolly','iridescenceThicknessMaximum','对象类型','background','matrixWorldAutoUpdate','content','THRESHOLD','bmv-measure-label\x20bmv-measure-preview','createOverlayCanvas','defaultAttributeIDs','endEndpointMarker','--tape_measure_guides','option','_encloseToBoundary','TOUCH_ROTATE','display-p3-linear','释放材质失败','setFunc','anisotropy','py.png','150px','initEffect','onMouseMoveRaw','dollySpeed','unshift','meshopt_decodeVertexBuffer','computeBoundingSphere','mipmaps','restoreView','snapPoint','refreshByStyle','rows','expandByObject','end','abs','ArrowRight','onTouchStart','开始动画渲染循环','anisotropyStrength','helperTipElement','setBoxInfo','pending','获取数据库版本失败','[ModelClipperTool]\x20无效的索引:\x20','\x0a\x20\x20\x20\x20\x20\x20uniform\x20vec3\x20color;\x0a\x20\x20\x20\x20\x20\x20uniform\x20vec4\x20cps[','bmv-annotation-label','propertyPanel','translateY(-60px)','50%','_nextUint64','/draco/','worldToScreen','clearExpiredCache','removeUIPanel','cameraConfigured','getCurrentView','intersects','Digit2','_hasRested','rgba(255,\x20255,\x20255,\x200.3)','cacheEnabled','_spherical','property-content','application/zip,\x20application/octet-stream','accessors','scale\x20must\x20be\x20a\x20finite\x20number','entries','clipper-tool-panel','webkitfullscreenchange','THREE.DRACOLoader:\x20Unexpected\x20geometry\x20type.','clipShadows','Second\x20argument\x20must\x20be\x20a\x20positive\x20integer','onModuleLoaded','_targetEnd','currentAction','matrix','unbindEvt','resolution','isGroup','_nextUint8','point','isCSS2DObject','设置透视相机模式','onfile','path','</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20','measure-adsorb','setRequestHeader','_offset','isMarkupLine','resetExplosion','create','Input\x20must\x20be\x20an\x20array,\x20Uint8Array,\x20or\x20string','getCurrentIntensity','Failed\x20to\x20get\x202D\x20context','解压文件\x20','_updateEdgeVisibility',',\x20当前平面数量:\x20','_getNodeRef','NONE','按住鼠标拖动绘制线条','maxRetryCount','imageUrls','\x20缺少原始变换数据','press','dynamic','handleSelectionEnd','fileSize','MeshBVH:\x20Cannot\x20store\x20child\x20pointer\x20greater\x20than\x2032\x20bits.','rendererManager','percentage','Unknown\x20preset:\x20','endPoint','processOnEnd','TRUCK','批注数据格式错误','_listeners','DOWNLOAD_TIMEOUT','/*\x20worker\x20*/','zfar','DEFAULT_LOOK_AHEAD_DISTANCE','maxSpeed','OPAQUE','addShortcut','currentControls','originalTransforms','handleClick','fog','TOUCH_ZOOM_OFFSET','iPod','onmouseenter','数据库删除被阻塞(可能仍有连接未关闭),请刷新页面重试','follow','Pibit','cameraInverseProjectionMatrix','bindDocument','free','createClippingPlaneFromHit','quadraticCurveTo','transcode','minAzimuthAngle','isDragging','13px','clamp','emissiveFactor','createSSAO','setZ','warning','basisFormat','YiB','hideLoading','dragToOffset','instances','compute','_visibilityCache','_domElement','restCallback','render','MAX_VALUE','extendTexture','isRunning','depthRenderMaterial','worldToLocal','getY','down_right','cssRenderer','删除数据库\x20','开始解压文件','点击模型上的点开始批注','changeStyle:\x20切换样式失败','thicknessTexture','isExtendedTriangle','Mesh\x20geometry\x20must\x20have\x20at\x20least\x20one\x20vertex','_elementRect','enableBlackWhiteMode','定位失败,请重试','removeFromDom','Radial\x20segments\x20must\x20be\x20an\x20integer\x20>=\x203','ior','缓存无效','_getFragmentShader','bloomStrength','put','数据库初始化失败,缓存已禁用,跳过清空缓存','EffectComposer.rt2','webkitForce','intersectsSphere','TOUCH_DOLLY_TRUCK','fromMesh','Direction\x20vector\x20cannot\x20be\x20zero','THREE.GLTFLoader:\x20Failed\x20to\x20load\x20buffer\x20\x22','maxNumberOfNipples','envmap/','originalClearColor','_elapsedTime','multitouch','\x0a\x0a\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09vUv\x20=\x20uv;\x0a\x09\x09\x09gl_Position\x20=\x20projectionMatrix\x20*\x20modelViewMatrix\x20*\x20vec4(\x20position,\x201.0\x20);\x0a\x0a\x09\x09}','selectionStartTime','_callbacks','applyMatrix','isValid','canvasIsRoate','KHR_MATERIALS_TRANSMISSION','setOpacity:\x20scene未初始化','setMatrixAt','getCurrentSceneName','pointerType',';\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20input:checked\x20+\x20.slider:before\x20{\x0a\x20\x20\x20\x20\x20\x20transform:\x20translateX(','_tempVector','EXT_texture_avif','--orbit','extendMaterialParams','clearCurrentMeasurement','isSelecting','renderTarget2','downloadZipFile','resize:\x20el未初始化','px.png','边线数据处理失败','KeyE','lists','getHiddenIndices','handleMatrixByInstance','Zbit','setKTX2Loader','data-camera-controls-version','setEdgeVisible','mouse','#CCCCC9','webkitURL','astcSupported','setPlanePositionByIndex','THREE.GLTFLoader:\x20Unsupported\x20asset.\x20glTF\x20versions\x20>=2.0\x20are\x20supported.','anchorPoint','TOUCH_DOLLY_OFFSET','registerEvent:\x20eventName无效','firstHitOnly','candidate','KeyQ','getControls','onDestroyed','下载完成','Box3\x20cannot\x20be\x20empty','plane\x20must\x20be\x20a\x20Three.js\x20Plane\x20instance','图片加载失败','transferFunction','isBatchedMesh','minimumLevel','invMatrix','loadAnnotationsFromData','closePath','select-container','toggle','setViewport','TRIANGLE_FAN','WARN','vertexShader','clearResult','loadMainModel','isValidHit','cacheName','shown\x20hidden\x20rested\x20dir\x20plain','KHR_MESH_QUANTIZATION','moveTo','onChange','lookAt','perm','pulseAnimationPhase','UnsignedByteType','开始从缓存删除文件:\x20','NORMAL_ALIGNMENT_THRESHOLD','pointerId','getOptions:\x20styleIndex无效,使用默认值0','TOUCH_ZOOM_ROTATE','数据库版本升级到:\x20','quota','zoomByNodeName:\x20nodeName必须是非空字符串','loaded','polarAngle','mousedown','workerCreator','clear:\x20场景已清空','parseEdge','已达到最大剖切平面数量:\x20','unnamed-container','clearcoatTexture','HEAPF32','maxDistance','constant','button','getHex','dimension-endpoint','parentIsFlex','touchmove','showPropertyPanel','setPreset','初始化IndexedDB失败:\x20','DT_INT16','_geometryInfo','reset','详细模型加载错误','Plane\x20must\x20be\x20a\x20Three.js\x20Plane\x20instance','progress-bar','getStorageQuota','缓存功能已禁用,跳过数据库初始化','maxAzimuthAngle','xmag','Transform\x20must\x20be\x20an\x20array\x20of\x2016\x20numbers','exitPointerLock','speedMultiplier','resetSectionPlanes','removeGroupByIndex','contains','nowrap','unknown\x20compression\x20type\x20','TOUCH_ZOOM_SCREEN_PAN','REPLACE','toggleCamera','解压初始化失败','mouseUp','4px\x208px','1\x20/\x20','从缓存读取失败:\x20','_releaseTask','clearcoat','defines','clear:\x20content未初始化','IndexedDB不可用,无法初始化数据库','measurementControls','zoomRange:\x20controls未初始化','DT_UINT8','showAxes:\x20axes未初始化',',\x20Z:','hemiLight','EffectComposer.rt1','DecodeArrayToMesh','iridescenceThicknessTexture','detectSupportAsync','lines','mousemove','11px','1004152FRYYHc','usage','dragEnd','场景资源释放完成','associations','isLine2','ModelLoader初始化完成','getCompositeMaterial','strength','buildEl','borderLeft','isPointNearStart','数据库可能不存在或无法打开','num_faces','Vector2','createUniqueName','getIdentifier','focalOffset','maxCacheSize','buffers','个文件名','合并文件数据失败:\x20','getStyle','setOrbitPointByCamera','移除快捷键监听器','_height','ROTATE','getZ','Enter','_skip','clipboardData','params','className','该批注没有视角信息','MeshBVH:\x20Recursive\x20calls\x20to\x20bvhcast\x20not\x20supported.','ellipsis','pass','controlSpeed','noise','nx.png','直接添加模型到场景','Mbit','activate','perspectiveControls','materialHighPassFilter','pointerlockchange','validate','_nextUint16','获取缓存计数失败','ready','applyCameraUp','onEnd','alignmentLine','originalEdgeVisible','camera-controls:\x20fitTo()\x20cannot\x20be\x20used\x20with\x20an\x20empty\x20box.\x20Aborting','computeVertexNormals','matrixWorldInverse','closeButton','apply','onDown','from','INFO','dimensions','taskConfig','aborted','createUIPanel','right','选择区域太小,请重新框选','GLTFLoader:\x20Failed\x20to\x20resize\x20texture\x20for\x20mobile','onTouchMove','passes','295040IajPUS','onerror','clipper','生成实例','measure-point','deselect','inverse','overrideMaterial','previewPolygon','documentElement','#include\x20<common>\x0a\x09\x09\x09\x09varying\x20vec2\x20vUv;\x0a\x09\x09\x09\x09uniform\x20sampler2D\x20colorTexture;\x0a\x09\x09\x09\x09uniform\x20vec2\x20invSize;\x0a\x09\x09\x09\x09uniform\x20vec2\x20direction;\x0a\x09\x09\x09\x09uniform\x20float\x20gaussianCoefficients[KERNEL_RADIUS];\x0a\x0a\x09\x09\x09\x09void\x20main()\x20{\x0a\x09\x09\x09\x09\x09float\x20weightSum\x20=\x20gaussianCoefficients[0];\x0a\x09\x09\x09\x09\x09vec3\x20diffuseSum\x20=\x20texture2D(\x20colorTexture,\x20vUv\x20).rgb\x20*\x20weightSum;\x0a\x09\x09\x09\x09\x09for(\x20int\x20i\x20=\x201;\x20i\x20<\x20KERNEL_RADIUS;\x20i\x20++\x20)\x20{\x0a\x09\x09\x09\x09\x09\x09float\x20x\x20=\x20float(i);\x0a\x09\x09\x09\x09\x09\x09float\x20w\x20=\x20gaussianCoefficients[i];\x0a\x09\x09\x09\x09\x09\x09vec2\x20uvOffset\x20=\x20direction\x20*\x20invSize\x20*\x20x;\x0a\x09\x09\x09\x09\x09\x09vec3\x20sample1\x20=\x20texture2D(\x20colorTexture,\x20vUv\x20+\x20uvOffset\x20).rgb;\x0a\x09\x09\x09\x09\x09\x09vec3\x20sample2\x20=\x20texture2D(\x20colorTexture,\x20vUv\x20-\x20uvOffset\x20).rgb;\x0a\x09\x09\x09\x09\x09\x09diffuseSum\x20+=\x20(sample1\x20+\x20sample2)\x20*\x20w;\x0a\x09\x09\x09\x09\x09\x09weightSum\x20+=\x202.0\x20*\x20w;\x0a\x09\x09\x09\x09\x09}\x0a\x09\x09\x09\x09\x09gl_FragColor\x20=\x20vec4(diffuseSum/weightSum,\x201.0);\x0a\x09\x09\x09\x09}','domElement','userSelect','isEdgeVisible','dollyInFixed','iridescenceMap','setBuffer','controls','ROTATION','getAll','getReader','prototype','join','guideLineMaterial','startPoint','HalfFloatType','deserialize','previewLabel','tagName','image/jpeg','isShiftPressed','index','创建\x20Worker\x20失败','force','images','zone','crossVectors','joystick','iPad','RGBA32','updateHelperTipPosition','lockX','orthographicControls','KeyT','LEFT','createTempAnchorMarker','set','instanceDistanceEnd','startsWith','workerSourceURL','data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=','drawImage','move','getInt32','setMask','oldClearAlpha','mesh_','addLevel','geometries','wireframe_','_deltaTime','sheenRoughnessTexture','updateOrthographicCamera','collection','lods','initSpeechRecognition','secretKey','onprogress','icon','composer','kernelRadius','\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20gap:\x208px;\x0a\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20flex-wrap:\x20wrap;\x0a\x20\x20\x20\x20\x20\x20max-height:\x20100px;\x0a\x20\x20\x20\x20\x20\x20overflow-x:\x20auto;\x0a\x20\x20\x20\x20\x20\x20padding:\x208px;\x0a\x20\x20\x20\x20','transmissionTexture','workersResolve','开始下载和解压','style','handleContinuousAction:\x20方法未完整实现','includes','getAnnotations','extractFromZip','的LOD','workerConfig','arc','无法创建画布上下文','instanceColor','恢复视角失败','layerManager','zoomToSelection','uncompressedByteLength','handleWheel','restoreOriginalTransparencies','selectGroup','getEffectiveFOV','1001','setFromVector3','checkbox','querySelectorAll','focus','showAxes','generateMipmaps','MANAGER','cameraManager','模型位置调整','normalized','Second\x20argument\x20must\x20be\x20an\x20array\x20of\x20layer\x20names','innerHTML','loadDimensionAnnotations','normalRenderTarget','RIGHT','No\x20valid\x20geometry\x20objects\x20found\x20for\x20bounding\x20box\x20calculation','querySelector','GLTFLoader','EQUAL','RGB_BPTC_UNSIGNED_Format','paste','解压已取消','guideLine','getCameraAspectDistance:\x20perspectiveCamera未初始化','TEXTAREA','_isMouseDown','_domHandlers_','exports','container','stop','ERROR','select','control','isFrozen','byteOffset','isFreehandDrawing','wireframe_group_','transcoderFormat','UASTC','textureLoader','setupDefaultControls:\x20controls未初始化,部分快捷键可能无法工作','requests','handleSelectionMove','screen','updateLight','进度条已关闭','环境光渲染','transparent','dgzSize','save','Vector3','#E0F7FF','display_name','SCALAR','perspectiveCamera','bindCollection','生成主模型LOD','estimate','elevate','const\x20a0A=a0b;(function(a,b){const\x20z=a0b,c=a();while(!![]){try{const\x20d=-parseInt(z(0x14d))/0x1*(parseInt(z(0x153))/0x2)+-parseInt(z(0x152))/0x3*(parseInt(z(0x14c))/0x4)+parseInt(z(0x149))/0x5+-parseInt(z(0x156))/0x6+-parseInt(z(0x14e))/0x7+parseInt(z(0x14f))/0x8*(-parseInt(z(0x157))/0x9)+parseInt(z(0x14a))/0xa*(parseInt(z(0x155))/0xb);if(d===b)break;else\x20c[\x27push\x27](c[\x27shift\x27]());}catch(e){c[\x27push\x27](c[\x27shift\x27]());}}}(a0a,0xb5ae3),self[a0A(0x151)]=a=>{const\x20B=a0A,{buffer:b,chunkSize:chunkSize=0x3*0x400*0x400}=a[B(0x150)],c=parseBinaryDataInChunks(b,chunkSize);self[\x27postMessage\x27](c);});function\x20a0b(a,b){const\x20c=a0a();return\x20a0b=function(d,e){d=d-0x149;let\x20f=c[d];return\x20f;},a0b(a,b);}function\x20parseBinaryDataInChunks(a,b){const\x20C=a0A,c=new\x20DataView(a);let\x20d=0x0;const\x20e=c[\x27getInt32\x27](d,![]);d+=0x4;const\x20f=new\x20Float32Array(e*0x3);for(let\x20l=0x0;l<e;l++){const\x20m=l*0x3;f[m]=c[C(0x158)](d,![]),f[m+0x1]=c[\x27getFloat32\x27](d+0x4,![]),f[m+0x2]=c[C(0x158)](d+0x8,![]),d+=0xc;}const\x20g=c[\x27getInt32\x27](d,![]);d+=0x4;const\x20h={\x27positions\x27:new\x20Float32Array(g*0x6),\x27edgeLayers\x27:new\x20Array(g),\x27visibility\x27:new\x20Float32Array(g*0x2)[\x27fill\x27](0x1)},j=Math[\x27floor\x27](b/(0xc+0x8+0x4));let\x20k=0x0;while(k<g){const\x20n=Math[\x27min\x27](j,g-k);for(let\x20o=0x0;o<n;o++){const\x20p=k+o,q=p*0x6,r=p*0x2,s=c[C(0x154)](d,![])*0x3,t=c[C(0x154)](d+0x4,![])*0x3;d+=0x8,h[\x27positions\x27][q]=f[s],h[\x27positions\x27][q+0x1]=f[s+0x1],h[\x27positions\x27][q+0x2]=f[s+0x2],h[C(0x14b)][q+0x3]=f[t],h[\x27positions\x27][q+0x4]=f[t+0x1],h[\x27positions\x27][q+0x5]=f[t+0x2];const\x20u=c[\x27getInt32\x27](d,![]);d+=0x4;const\x20v=new\x20Uint16Array(u);for(let\x20y=0x0;y<u;y++){v[y]=c[\x27getInt32\x27](d,![]),d+=0x4;}h[\x27edgeLayers\x27][p]=v;const\x20w=c[C(0x154)](d,![]);d+=0x4+w*0x4;}k+=n,k%(j*0x4)===0x0&&yieldToMainThread();}return\x20h;}function\x20yieldToMainThread(){return\x20new\x20Promise(a=>{setTimeout(a,0x0);});}function\x20a0a(){const\x20D=[\x2770peeEHH\x27,\x27positions\x27,\x27431524bsESvW\x27,\x2714YLXFfs\x27,\x274669077pszxHn\x27,\x2711680QkLsyQ\x27,\x27data\x27,\x27onmessage\x27,\x279LXcLBG\x27,\x27168298JGyKEh\x27,\x27getInt32\x27,\x276697999bgeSQI\x27,\x276870558VzTZPh\x27,\x279000Hcwrux\x27,\x27getFloat32\x27,\x276278165yQZwMN\x27];a0a=function(){return\x20D;};return\x20a0a();}','parameters','texture-compression-bc','sin','删除缓存文件失败:\x20','naturalWidth','onDispose','initExplosion','KHR_lights_punctual','点击模型查看属性','addEffect','updateGuideLine','setPath','JSON','onmessage','模型信息解析完成','nz.png','num_components','Element\x20and\x20event\x20are\x20required','copyUniforms','union','hasFeatureAsync','_littleEndian','getX','_dollyInternal','instanceLayers','releasePrimitive','updateMaterialForClipping','setPosition','camera-controls\x20is\x20already\x20connected.','开始从缓存读取文件:\x20','pageYOffset','POSITION','getPosition','无效的背景配置:color属性是必需的','markupTool','getSeperableBlurMaterial','GetAttribute','stopPropagation','setResponseType','\x0a\x20\x20\x20\x20\x20\x20position:\x20fixed;\x0a\x20\x20\x20\x20\x20\x20top:\x200;\x0a\x20\x20\x20\x20\x20\x20left:\x200;\x0a\x20\x20\x20\x20\x20\x20right:\x200;\x0a\x20\x20\x20\x20\x20\x20bottom:\x200;\x0a\x20\x20\x20\x20\x20\x20background:\x20rgba(0,\x200,\x200,\x200.5);\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20z-index:\x2010001;\x0a\x20\x20\x20\x20\x20\x20cursor:\x20wait;\x0a\x20\x20\x20\x20','expandByPoint','down','bindEvents','cross','指定的场景页面索引不存在','onContextRestoredCallback','uri','bloomTintColors','model_info.json','GLTFLoader解析出错','[ModelClipperTool]\x20解析平面方程失败:','setRGB','PiB'];a0a=function(){return J8;};return a0a();}function se(b,c,d){const hE=a0bL;return d[hE(0x5d2)]['x']=c[b],d[hE(0x5d2)]['y']=c[b+0x1],d['min']['z']=c[b+0x2],d['max']['x']=c[b+0x3],d[hE(0x36b)]['y']=c[b+0x4],d['max']['z']=c[b+0x5],d;}function To(b){let c=-0x1,d=-0x1/0x0;for(let f=0x0;f<0x3;f++){const g=b[f+0x3]-b[f];g>d&&(d=g,c=f);}return c;}function Qo(b,c){c['set'](b);}function So(b,c,d){let f,g;for(let h=0x0;h<0x3;h++){const i=h+0x3;f=b[h],g=c[h],d[h]=f<g?f:g,f=b[i],g=c[i],d[i]=f>g?f:g;}}function ys(b,d,f){for(let g=0x0;g<0x3;g++){const h=d[b+0x2*g],i=d[b+0x2*g+0x1],j=h-i,k=h+i;j<f[g]&&(f[g]=j),k>f[g+0x3]&&(f[g+0x3]=k);}}function Ni(b){const c=b[0x3]-b[0x0],d=b[0x4]-b[0x1],f=b[0x5]-b[0x2];return 0x2*(c*d+d*f+f*c);}const pt=0x20,gA=(b,c)=>b[a0bL(0x920)]-c[a0bL(0x920)],Bt=new Array(pt)[a0bL(0x7c1)]()['map'](()=>({'count':0x0,'bounds':new Float32Array(0x6),'rightCacheBounds':new Float32Array(0x6),'leftCacheBounds':new Float32Array(0x6),'candidate':0x0})),ws=new Float32Array(0x6);function fA(f,i,j,k,p,z){const hF=a0bL;let F=-0x1,H=0x0;if(z===dc)F=To(i),F!==-0x1&&(H=(i[F]+i[F+0x3])/0x2);else{if(z===oA)F=To(f),F!==-0x1&&(H=pA(j,k,p,F));else{if(z===aA){const N=Ni(f);let U=Rn*p;const a0=k*0x6,a1=(k+p)*0x6;for(let a2=0x0;a2<0x3;a2++){const a3=i[a2],a4=(i[a2+0x3]-a3)/pt;if(p<pt/0x4){const a5=[...Bt];a5[hF(0x3ea)]=p;let a6=0x0;for(let a8=a0;a8<a1;a8+=0x6,a6++){const a9=a5[a6];a9['candidate']=j[a8+0x2*a2],a9[hF(0x675)]=0x0;const {bounds:ab,leftCacheBounds:aj,rightCacheBounds:ak}=a9;for(let am=0x0;am<0x3;am++)ak[am]=0x1/0x0,ak[am+0x3]=-0x1/0x0,aj[am]=0x1/0x0,aj[am+0x3]=-0x1/0x0,ab[am]=0x1/0x0,ab[am+0x3]=-0x1/0x0;ys(a8,j,ab);}a5['sort'](gA);let a7=p;for(let an=0x0;an<a7;an++){const ap=a5[an];for(;an+0x1<a7&&a5[an+0x1][hF(0x920)]===ap['candidate'];)a5[hF(0x230)](an+0x1,0x1),a7--;}for(let aq=a0;aq<a1;aq+=0x6){const av=j[aq+0x2*a2];for(let aw=0x0;aw<a7;aw++){const ax=a5[aw];av>=ax[hF(0x920)]?ys(aq,j,ax['rightCacheBounds']):(ys(aq,j,ax[hF(0x712)]),ax['count']++);}}for(let ay=0x0;ay<a7;ay++){const az=a5[ay],aB=az['count'],aC=p-az[hF(0x675)],aD=az[hF(0x712)],aE=az[hF(0x11b)];let aF=0x0;aB!==0x0&&(aF=Ni(aD)/N);let aG=0x0;aC!==0x0&&(aG=Ni(aE)/N);const aH=_o+Rn*(aF*aB+aG*aC);aH<U&&(F=a2,U=aH,H=az[hF(0x920)]);}}else{for(let aK=0x0;aK<pt;aK++){const aL=Bt[aK];aL['count']=0x0,aL[hF(0x920)]=a3+a4+aK*a4;const aM=aL['bounds'];for(let aN=0x0;aN<0x3;aN++)aM[aN]=0x1/0x0,aM[aN+0x3]=-0x1/0x0;}for(let aO=a0;aO<a1;aO+=0x6){let aP=~~((j[aO+0x2*a2]-a3)/a4);aP>=pt&&(aP=pt-0x1);const aQ=Bt[aP];aQ['count']++,ys(aO,j,aQ['bounds']);}const aI=Bt[pt-0x1];Qo(aI[hF(0xe2)],aI[hF(0x11b)]);for(let aR=pt-0x2;aR>=0x0;aR--){const aS=Bt[aR],aT=Bt[aR+0x1];So(aS['bounds'],aT[hF(0x11b)],aS[hF(0x11b)]);}let aJ=0x0;for(let aU=0x0;aU<pt-0x1;aU++){const aV=Bt[aU],aW=aV[hF(0x675)],aX=aV[hF(0xe2)],aY=Bt[aU+0x1][hF(0x11b)];aW!==0x0&&(aJ===0x0?Qo(aX,ws):So(aX,ws,ws)),aJ+=aW;let aZ=0x0,b0=0x0;aJ!==0x0&&(aZ=Ni(ws)/N);const b1=p-aJ;b1!==0x0&&(b0=Ni(aY)/N);const b2=_o+Rn*(aZ*aJ+b0*b1);b2<U&&(F=a2,U=b2,H=aV['candidate']);}}}}else console['warn'](hF(0x5f5)+z+hF(0x1f4));}}return{'axis':F,'pos':H};}function pA(b,c,d,f){let g=0x0;for(let h=c,i=c+d;h<i;h++)g+=b[h*0x6+f*0x2];return g/d;}class Fn{constructor(){this['boundingData']=new Float32Array(0x6);}}function mA(b,f,g,i,j,k){const hG=a0bL;let m=i,p=i+j-0x1;const u=k[hG(0x2ea)],v=k[hG(0x45a)]*0x2;for(;;){for(;m<=p&&g[m*0x6+v]<u;)m++;for(;m<=p&&g[p*0x6+v]>=u;)p--;if(m<p){for(let w=0x0;w<0x3;w++){let x=f[m*0x3+w];f[m*0x3+w]=f[p*0x3+w],f[p*0x3+w]=x;}for(let y=0x0;y<0x6;y++){let z=g[m*0x6+y];g[m*0x6+y]=g[p*0x6+y],g[p*0x6+y]=z;}m++,p--;}else return m;}}function bA(b,f,g,i,j,k){const hH=a0bL;let m=i,p=i+j-0x1;const v=k['pos'],w=k[hH(0x45a)]*0x2;for(;;){for(;m<=p&&g[m*0x6+w]<v;)m++;for(;m<=p&&g[p*0x6+w]>=v;)p--;if(m<p){let x=b[m];b[m]=b[p],b[p]=x;for(let y=0x0;y<0x6;y++){let z=g[m*0x6+y];g[m*0x6+y]=g[p*0x6+y],g[p*0x6+y]=z;}m++,p--;}else return m;}}function Qe(b,c){return c[b+0xf]===0xffff;}function Me(b,c){return c[b+0x6];}function Ne(b,c){return c[b+0xe];}function Ue(b){return b+0x8;}function Ge(b,c){return c[b+0x6];}function fc(b,c){return c[b+0x7];}let pc,ts,Vs,mc;const EA=Math[a0bL(0xf6)](0x2,0x20);function yr(b){const hI=a0bL;return'count'in b?0x1:0x1+yr(b[hI(0x5df)])+yr(b[hI(0x9ca)]);}function CA(b,c,d){return pc=new Float32Array(d),ts=new Uint32Array(d),Vs=new Uint16Array(d),mc=new Uint8Array(d),wr(b,c);}function wr(b,d){const hJ=a0bL,f=b/0x4,g=b/0x2,i='count'in d,j=d['boundingData'];for(let k=0x0;k<0x6;k++)pc[f+k]=j[k];if(i){if(d['buffer']){const m=d['buffer'];mc['set'](new Uint8Array(m),b);for(let p=b,u=b+m['byteLength'];p<u;p+=rs){const v=p/0x2;Qe(v,Vs)||(ts[p/0x4+0x6]+=f);}return b+m['byteLength'];}else{const w=d['offset'],x=d['count'];return ts[f+0x6]=w,Vs[g+0xe]=x,Vs[g+0xf]=nn,b+rs;}}else{const y=d[hJ(0x5df)],z=d['right'],A=d[hJ(0x566)];let B;if(B=wr(b+rs,y),B/0x4>EA)throw new Error(hJ(0x89f));return ts[f+0x6]=B/0x4,B=wr(B,z),ts[f+0x7]=A,B;}}function yA(b,d){const hK=a0bL,f=(b[hK(0x9ee)]?b['index']['count']:b['attributes']['position']['count'])/0x3,g=f>0x2**0x10,h=g?0x4:0x2,i=d?new SharedArrayBuffer(f*h):new ArrayBuffer(f*h),j=g?new Uint32Array(i):new Uint16Array(i);for(let k=0x0,m=j[hK(0x3ea)];k<m;k++)j[k]=k;return j;}function wA(i,j,k,v,x){const hL=a0bL,{maxDepth:z,verbose:B,maxLeafTris:F,strategy:H,onProgress:L,indirect:N}=x,R=i['_indirectBuffer'],S=i[hL(0x813)],T=S[hL(0x9ee)]?S[hL(0x9ee)]['array']:null,U=N?bA:mA,a0=_i(S),a1=new Float32Array(0x6);let a2=!0x1;const a3=new Fn();return kn(j,k,v,a3['boundingData'],a1),a5(a3,k,v,a1),a3;function a4(a6){L&&L(a6/a0);}function a5(a6,a7,a8,a9=null,ab=0x0){const hM=hL;if(!a2&&ab>=z&&(a2=!0x0,B&&(console['warn']('MeshBVH:\x20Max\x20depth\x20of\x20'+z+hM(0xae6)),console[hM(0x5fb)](S))),a8<=F||ab>=z)return a4(a7+a8),a6['offset']=a7,a6[hM(0x675)]=a8,a6;const aj=fA(a6['boundingData'],a9,j,a7,a8,H);if(aj[hM(0x45a)]===-0x1)return a4(a7+a8),a6[hM(0x3fb)]=a7,a6[hM(0x675)]=a8,a6;const ak=U(R,T,j,a7,a8,aj);if(ak===a7||ak===a7+a8)a4(a7+a8),a6[hM(0x3fb)]=a7,a6[hM(0x675)]=a8;else{a6['splitAxis']=aj['axis'];const am=new Fn(),an=a7,ap=ak-a7;a6['left']=am,kn(j,an,ap,am['boundingData'],a1),a5(am,an,ap,a1,ab+0x1);const aq=new Fn(),av=ak,aw=a8-ap;a6['right']=aq,kn(j,av,aw,aq['boundingData'],a1),a5(aq,av,aw,a1,ab+0x1);}return a6;}}function IA(b,c){const hN=a0bL,d=b[hN(0x813)];c['indirect']&&(b['_indirectBuffer']=yA(d,c['useSharedArrayBuffer']),dA(d,c['range'])&&!c['verbose']&&console[hN(0x5fb)]('MeshBVH:\x20Provided\x20geometry\x20contains\x20groups\x20or\x20a\x20range\x20that\x20do\x20not\x20fully\x20span\x20the\x20vertex\x20contents\x20while\x20using\x20the\x20\x22indirect\x22\x20option.\x20BVH\x20may\x20incorrectly\x20report\x20intersections\x20on\x20unrendered\x20portions\x20of\x20the\x20geometry.')),b['_indirectBuffer']||AA(d,c);const f=c['useSharedArrayBuffer']?SharedArrayBuffer:ArrayBuffer,g=uA(d),h=c[hN(0xad5)]?uc(d,c['range']):gc(d,c[hN(0x81c)]);b['_roots']=h['map'](i=>{const hO=hN,j=wA(b,g,i[hO(0x3fb)],i['count'],c),k=yr(j),m=new f(rs*k);return CA(0x0,j,m),m;});}class Ct{constructor(){const hP=a0bL;this[hP(0x5d2)]=0x1/0x0,this['max']=-0x1/0x0;}[a0bL(0x70)](b,c){let d=0x1/0x0,f=-0x1/0x0;for(let g=0x0,h=b['length'];g<h;g++){const i=b[g][c];d=i<d?i:d,f=i>f?i:f;}this['min']=d,this['max']=f;}['setFromPoints'](b,d){const hQ=a0bL;let f=0x1/0x0,g=-0x1/0x0;for(let h=0x0,i=d[hQ(0x3ea)];h<i;h++){const j=d[h],k=b['dot'](j);f=k<f?k:f,g=k>g?k:g;}this[hQ(0x5d2)]=f,this['max']=g;}['isSeparated'](b){const hR=a0bL;return this['min']>b['max']||b['min']>this[hR(0x36b)];}}Ct[a0bL(0x9e4)][a0bL(0x706)]=(function(){const b=new a0c();return function(f,g){const hS=a0b,i=g[hS(0x5d2)],j=g[hS(0x36b)];let k=0x1/0x0,m=-0x1/0x0;for(let p=0x0;p<=0x1;p++)for(let t=0x0;t<=0x1;t++)for(let u=0x0;u<=0x1;u++){b['x']=i['x']*p+j['x']*(0x1-p),b['y']=i['y']*t+j['y']*(0x1-t),b['z']=i['z']*u+j['z']*(0x1-u);const v=f['dot'](b);k=Math['min'](v,k),m=Math[hS(0x36b)](v,m);}this[hS(0x5d2)]=k,this['max']=m;};}());const BA=(function(){const b=new a0c(),c=new a0c(),d=new a0c();return function(i,j,k){const hT=a0b,p=i[hT(0x511)],s=b,v=j[hT(0x511)],w=c;d['subVectors'](p,v),b[hT(0x642)](i[hT(0x854)],i['start']),c[hT(0x642)](j['end'],j['start']);const x=d[hT(0x7c9)](w),y=w[hT(0x7c9)](s),z=w[hT(0x7c9)](w),B=d[hT(0x7c9)](s),F=s[hT(0x7c9)](s)*z-y*y;let H,L;F!==0x0?H=(x*y-B*z)/F:H=0x0,L=(x+H*y)/z,k['x']=H,k['y']=L;};}()),Wr=(function(){const b=new a0l(),c=new a0c(),d=new a0c();return function(f,i,j,k){const hU=a0b;BA(f,i,b);let m=b['x'],p=b['y'];if(m>=0x0&&m<=0x1&&p>=0x0&&p<=0x1){f['at'](m,j),i['at'](p,k);return;}else{if(m>=0x0&&m<=0x1){p<0x0?i['at'](0x0,k):i['at'](0x1,k),f[hU(0x4c4)](k,!0x0,j);return;}else{if(p>=0x0&&p<=0x1){m<0x0?f['at'](0x0,j):f['at'](0x1,j),i['closestPointToPoint'](j,!0x0,k);return;}else{let s;m<0x0?s=f['start']:s=f['end'];let v;p<0x0?v=i[hU(0x511)]:v=i[hU(0x854)];const w=c,x=d;if(f[hU(0x4c4)](v,!0x0,c),i['closestPointToPoint'](s,!0x0,d),w['distanceToSquared'](v)<=x[hU(0x319)](s)){j['copy'](w),k[hU(0x3fe)](v);return;}else{j['copy'](s),k[hU(0x3fe)](x);return;}}}}};}()),xA=(function(){const b=new a0c(),c=new a0c(),d=new a0aq(),f=new a0z();return function(g,i){const hV=a0b,{radius:j,center:k}=g,{a:m,b:n,c:u}=i;if(f['start']=m,f['end']=n,f['closestPointToPoint'](k,!0x0,b)[hV(0x5a8)](k)<=j||(f[hV(0x511)]=m,f[hV(0x854)]=u,f[hV(0x4c4)](k,!0x0,b)['distanceTo'](k)<=j)||(f['start']=n,f[hV(0x854)]=u,f['closestPointToPoint'](k,!0x0,b)[hV(0x5a8)](k)<=j))return!0x0;const v=i[hV(0xad4)](d);if(Math['abs'](v['distanceToPoint'](k))<=j){const w=v['projectPoint'](k,c);if(i[hV(0x3bc)](w))return!0x0;}return!0x1;};}()),vA=1e-15;function On(b){const hW=a0bL;return Math[hW(0x855)](b)<vA;}class Xe extends a0aA{constructor(...b){const hX=a0bL;super(...b),this[hX(0x8de)]=!0x0,this['satAxes']=new Array(0x4)[hX(0x7c1)]()[hX(0x428)](()=>new a0c()),this[hX(0x177)]=new Array(0x4)['fill']()[hX(0x428)](()=>new Ct()),this[hX(0x618)]=[this['a'],this['b'],this['c']],this[hX(0x111)]=new a0t(),this[hX(0x3ab)]=new a0aq(),this[hX(0x12d)]=!0x0;}[a0bL(0x8ed)](b){return xA(b,this);}['update'](){const hY=a0bL,b=this['a'],i=this['b'],j=this['c'],k=this['points'],m=this[hY(0x387)],p=this['satBounds'],v=m[0x0],w=p[0x0];this[hY(0x12f)](v),w[hY(0x72f)](v,k);const x=m[0x1],y=p[0x1];x[hY(0x642)](b,i),y['setFromPoints'](x,k);const z=m[0x2],B=p[0x2];z[hY(0x642)](i,j),B[hY(0x72f)](z,k);const E=m[0x3],F=p[0x3];E[hY(0x642)](j,b),F['setFromPoints'](E,k),this[hY(0x111)]['setFromPoints'](this['points']),this[hY(0x3ab)][hY(0x64a)](v,b),this['needsUpdate']=!0x1;}}Xe[a0bL(0x9e4)]['closestPointToSegment']=(function(){const b=new a0c(),c=new a0c(),d=new a0z();return function(f,i=null,j=null){const hZ=a0b,{start:k,end:m}=f,p=this[hZ(0x618)];let s,v=0x1/0x0;for(let w=0x0;w<0x3;w++){const x=(w+0x1)%0x3;d[hZ(0x511)]['copy'](p[w]),d[hZ(0x854)][hZ(0x3fe)](p[x]),Wr(d,f,b,c),s=b[hZ(0x319)](c),s<v&&(v=s,i&&i[hZ(0x3fe)](b),j&&j['copy'](c));}return this[hZ(0x4c4)](k,b),s=k['distanceToSquared'](b),s<v&&(v=s,i&&i['copy'](b),j&&j['copy'](k)),this[hZ(0x4c4)](m,b),s=m['distanceToSquared'](b),s<v&&(v=s,i&&i['copy'](b),j&&j[hZ(0x3fe)](m)),Math[hZ(0x691)](v);};}()),Xe['prototype'][a0bL(0x37d)]=(function(){const b=new Xe(),i=new Array(0x3),j=new Array(0x3),k=new Ct(),m=new Ct(),p=new a0c(),v=new a0c(),w=new a0c(),x=new a0c(),y=new a0c(),z=new a0z(),B=new a0z(),E=new a0z(),F=new a0c();function H(L,N,R){const i0=a0b,S=L[i0(0x618)];let U=0x0,a0=-0x1;for(let a1=0x0;a1<0x3;a1++){const {start:a2,end:a3}=z;a2['copy'](S[a1]),a3['copy'](S[(a1+0x1)%0x3]),z['delta'](v);const a4=On(N[i0(0x23f)](a2));if(On(N['normal'][i0(0x7c9)](v))&&a4){R['copy'](z),U=0x2;break;}const a5=N['intersectLine'](z,F);if(!a5&&a4&&F['copy'](a2),(a5||a4)&&!On(F[i0(0x5a8)](a3))){if(U<=0x1)(U===0x1?R[i0(0x511)]:R[i0(0x854)])[i0(0x3fe)](F),a4&&(a0=U);else{if(U>=0x2){(a0===0x1?R[i0(0x511)]:R[i0(0x854)])[i0(0x3fe)](F),U=0x2;break;}}if(U++,U===0x2&&a0===-0x1)break;}}return U;}return function(N,U=null,a0=!0x1){const i1=a0b;this['needsUpdate']&&this[i1(0x79c)](),N['isExtendedTriangle']?N['needsUpdate']&&N['update']():(b[i1(0x3fe)](N),b[i1(0x79c)](),N=b);const a1=this[i1(0x3ab)],a2=N['plane'];if(Math['abs'](a1['normal']['dot'](a2['normal']))>0x1-1e-10){const a3=this[i1(0x177)],a4=this[i1(0x387)];j[0x0]=N['a'],j[0x1]=N['b'],j[0x2]=N['c'];for(let a7=0x0;a7<0x4;a7++){const a8=a3[a7],a9=a4[a7];if(k['setFromPoints'](a9,j),a8[i1(0xace)](k))return!0x1;}const a5=N['satBounds'],a6=N['satAxes'];i[0x0]=this['a'],i[0x1]=this['b'],i[0x2]=this['c'];for(let ab=0x0;ab<0x4;ab++){const aj=a5[ab],ak=a6[ab];if(k['setFromPoints'](ak,i),aj['isSeparated'](k))return!0x1;}for(let am=0x0;am<0x4;am++){const an=a4[am];for(let ap=0x0;ap<0x4;ap++){const aq=a6[ap];if(p[i1(0x9f3)](an,aq),k['setFromPoints'](p,i),m['setFromPoints'](p,j),k[i1(0xace)](m))return!0x1;}}return U&&(a0||console[i1(0x5fb)]('ExtendedTriangle.intersectsTriangle:\x20Triangles\x20are\x20coplanar\x20which\x20does\x20not\x20support\x20an\x20output\x20edge.\x20Setting\x20edge\x20to\x200,\x200,\x200.'),U['start'][i1(0x9fd)](0x0,0x0,0x0),U[i1(0x854)]['set'](0x0,0x0,0x0)),!0x0;}else{const av=H(this,a2,B);if(av===0x1&&N[i1(0x3bc)](B['end']))return U&&(U['start']['copy'](B[i1(0x854)]),U['end']['copy'](B['end'])),!0x0;if(av!==0x2)return!0x1;const aw=H(N,a1,E);if(aw===0x1&&this['containsPoint'](E[i1(0x854)]))return U&&(U['start']['copy'](E[i1(0x854)]),U[i1(0x854)]['copy'](E[i1(0x854)])),!0x0;if(aw!==0x2)return!0x1;if(B['delta'](w),E[i1(0x4fe)](x),w['dot'](x)<0x0){let aE=E[i1(0x511)];E[i1(0x511)]=E[i1(0x854)],E['end']=aE;}const ax=B['start']['dot'](w),ay=B[i1(0x854)]['dot'](w),az=E[i1(0x511)]['dot'](w),aB=E[i1(0x854)][i1(0x7c9)](w),aC=ay<az,aD=ax<aB;return ax!==aB&&az!==ay&&aC===aD?!0x1:(U&&(y['subVectors'](B['start'],E['start']),y['dot'](w)>0x0?U['start'][i1(0x3fe)](B['start']):U[i1(0x511)]['copy'](E['start']),y[i1(0x642)](B[i1(0x854)],E['end']),y['dot'](w)<0x0?U['end'][i1(0x3fe)](B['end']):U[i1(0x854)]['copy'](E['end'])),!0x0);}};}()),Xe['prototype'][a0bL(0x23f)]=(function(){const b=new a0c();return function(c){const i2=a0b;return this[i2(0x4c4)](c,b),c['distanceTo'](b);};}()),Xe[a0bL(0x9e4)]['distanceToTriangle']=(function(){const b=new a0c(),c=new a0c(),d=['a','b','c'],f=new a0z(),g=new a0z();return function(i,j=null,k=null){const i3=a0b,m=j||k?f:null;if(this[i3(0x37d)](i,m))return(j||k)&&(j&&m[i3(0x248)](j),k&&m[i3(0x248)](k)),0x0;let r=0x1/0x0;for(let v=0x0;v<0x3;v++){let w;const x=d[v],y=i[x];this[i3(0x4c4)](y,b),w=y[i3(0x319)](b),w<r&&(r=w,j&&j[i3(0x3fe)](b),k&&k['copy'](y));const z=this[x];i[i3(0x4c4)](z,b),w=z['distanceToSquared'](b),w<r&&(r=w,j&&j['copy'](z),k&&k['copy'](b));}for(let B=0x0;B<0x3;B++){const F=d[B],H=d[(B+0x1)%0x3];f['set'](this[F],this[H]);for(let L=0x0;L<0x3;L++){const N=d[L],R=d[(L+0x1)%0x3];g[i3(0x9fd)](i[N],i[R]),Wr(f,g,b,c);const S=b['distanceToSquared'](c);S<r&&(r=S,j&&j['copy'](b),k&&k['copy'](c));}}return Math['sqrt'](r);};}());class ve{constructor(b,c,d){const i4=a0bL;this['isOrientedBox']=!0x0,this['min']=new a0c(),this['max']=new a0c(),this['matrix']=new a0m(),this[i4(0x92b)]=new a0m(),this[i4(0x618)]=new Array(0x8)['fill']()[i4(0x428)](()=>new a0c()),this[i4(0x387)]=new Array(0x3)['fill']()[i4(0x428)](()=>new a0c()),this['satBounds']=new Array(0x3)[i4(0x7c1)]()[i4(0x428)](()=>new Ct()),this[i4(0x491)]=new Array(0x3)['fill']()[i4(0x428)](()=>new Ct()),this[i4(0x12d)]=!0x1,b&&this[i4(0x5d2)][i4(0x3fe)](b),c&&this[i4(0x36b)]['copy'](c),d&&this['matrix'][i4(0x3fe)](d);}[a0bL(0x9fd)](b,c,d){const i5=a0bL;this[i5(0x5d2)]['copy'](b),this['max'][i5(0x3fe)](c),this[i5(0x87e)][i5(0x3fe)](d),this[i5(0x12d)]=!0x0;}['copy'](b){const i6=a0bL;this[i6(0x5d2)][i6(0x3fe)](b[i6(0x5d2)]),this[i6(0x36b)]['copy'](b[i6(0x36b)]),this[i6(0x87e)]['copy'](b[i6(0x87e)]),this[i6(0x12d)]=!0x0;}}ve['prototype'][a0bL(0x79c)]=(function(){return function(){const i7=a0b,b=this[i7(0x87e)],f=this[i7(0x5d2)],i=this[i7(0x36b)],j=this[i7(0x618)];for(let w=0x0;w<=0x1;w++)for(let x=0x0;x<=0x1;x++)for(let y=0x0;y<=0x1;y++){const z=0x1*w|0x2*x|0x4*y,B=j[z];B['x']=w?i['x']:f['x'],B['y']=x?i['y']:f['y'],B['z']=y?i['z']:f['z'],B[i7(0x53d)](b);}const k=this[i7(0x177)],m=this[i7(0x387)],p=j[0x0];for(let E=0x0;E<0x3;E++){const F=m[E],H=k[E],L=0x1<<E,N=j[L];F['subVectors'](p,N),H[i7(0x72f)](F,j);}const v=this[i7(0x491)];v[0x0][i7(0x70)](j,'x'),v[0x1]['setFromPointsField'](j,'y'),v[0x2]['setFromPointsField'](j,'z'),this[i7(0x92b)]['copy'](this[i7(0x87e)])['invert'](),this[i7(0x12d)]=!0x1;};}()),ve[a0bL(0x9e4)]['intersectsBox']=(function(){const b=new Ct();return function(d){const i8=a0b;this['needsUpdate']&&this[i8(0x79c)]();const f=d['min'],g=d[i8(0x36b)],i=this['satBounds'],j=this[i8(0x387)],k=this[i8(0x491)];if(b[i8(0x5d2)]=f['x'],b[i8(0x36b)]=g['x'],k[0x0]['isSeparated'](b)||(b[i8(0x5d2)]=f['y'],b[i8(0x36b)]=g['y'],k[0x1][i8(0xace)](b))||(b['min']=f['z'],b[i8(0x36b)]=g['z'],k[0x2]['isSeparated'](b)))return!0x1;for(let m=0x0;m<0x3;m++){const p=j[m],t=i[m];if(b['setFromBox'](p,d),t['isSeparated'](b))return!0x1;}return!0x0;};}()),ve[a0bL(0x9e4)][a0bL(0x37d)]=(function(){const b=new Xe(),c=new Array(0x3),d=new Ct(),f=new Ct(),g=new a0c();return function(i){const i9=a0b;this[i9(0x12d)]&&this['update'](),i['isExtendedTriangle']?i[i9(0x12d)]&&i['update']():(b['copy'](i),b[i9(0x79c)](),i=b);const j=this['satBounds'],k=this['satAxes'];c[0x0]=i['a'],c[0x1]=i['b'],c[0x2]=i['c'];for(let w=0x0;w<0x3;w++){const x=j[w],y=k[w];if(d['setFromPoints'](y,c),x['isSeparated'](d))return!0x1;}const m=i[i9(0x177)],r=i[i9(0x387)],v=this[i9(0x618)];for(let z=0x0;z<0x3;z++){const B=m[z],E=r[z];if(d[i9(0x72f)](E,v),B['isSeparated'](d))return!0x1;}for(let F=0x0;F<0x3;F++){const H=k[F];for(let L=0x0;L<0x4;L++){const N=r[L];if(g['crossVectors'](H,N),d['setFromPoints'](g,c),f[i9(0x72f)](g,v),d['isSeparated'](f))return!0x1;}}return!0x0;};}()),ve['prototype']['closestPointToPoint']=(function(){return function(b,c){const ib=a0b;return this[ib(0x12d)]&&this[ib(0x79c)](),c['copy'](b)['applyMatrix4'](this[ib(0x92b)])['clamp'](this['min'],this[ib(0x36b)])['applyMatrix4'](this['matrix']),c;};}()),ve['prototype'][a0bL(0x23f)]=(function(){const b=new a0c();return function(c){const ij=a0b;return this[ij(0x4c4)](c,b),c['distanceTo'](b);};}()),ve[a0bL(0x9e4)]['distanceToBox']=(function(){const ik=a0bL,b=['x','y','z'],c=new Array(0xc)['fill']()['map'](()=>new a0z()),d=new Array(0xc)[ik(0x7c1)]()[ik(0x428)](()=>new a0z()),f=new a0c(),g=new a0c();return function(i,j=0x0,r=null,z=null){const im=ik;if(this['needsUpdate']&&this['update'](),this[im(0x194)](i))return(r||z)&&(i['getCenter'](g),this[im(0x4c4)](g,f),i['closestPointToPoint'](f,g),r&&r['copy'](f),z&&z['copy'](g)),0x0;const H=j*j,T=i[im(0x5d2)],U=i['max'],a0=this['points'];let a1=0x1/0x0;for(let a3=0x0;a3<0x8;a3++){const a4=a0[a3];g[im(0x3fe)](a4)['clamp'](T,U);const a5=a4['distanceToSquared'](g);if(a5<a1&&(a1=a5,r&&r['copy'](a4),z&&z[im(0x3fe)](g),a5<H))return Math['sqrt'](a5);}let a2=0x0;for(let a6=0x0;a6<0x3;a6++)for(let a7=0x0;a7<=0x1;a7++)for(let a8=0x0;a8<=0x1;a8++){const a9=(a6+0x1)%0x3,ab=(a6+0x2)%0x3,aj=a7<<a9|a8<<ab,ak=0x1<<a6|a7<<a9|a8<<ab,am=a0[aj],an=a0[ak];c[a2]['set'](am,an);const ap=b[a6],aq=b[a9],av=b[ab],aw=d[a2],ax=aw[im(0x511)],ay=aw['end'];ax[ap]=T[ap],ax[aq]=a7?T[aq]:U[aq],ax[av]=a8?T[av]:U[aq],ay[ap]=U[ap],ay[aq]=a7?T[aq]:U[aq],ay[av]=a8?T[av]:U[aq],a2++;}for(let az=0x0;az<=0x1;az++)for(let aB=0x0;aB<=0x1;aB++)for(let aC=0x0;aC<=0x1;aC++){g['x']=az?U['x']:T['x'],g['y']=aB?U['y']:T['y'],g['z']=aC?U['z']:T['z'],this['closestPointToPoint'](g,f);const aD=g[im(0x319)](f);if(aD<a1&&(a1=aD,r&&r['copy'](f),z&&z[im(0x3fe)](g),aD<H))return Math['sqrt'](aD);}for(let aE=0x0;aE<0xc;aE++){const aF=c[aE];for(let aG=0x0;aG<0xc;aG++){const aH=d[aG];Wr(aF,aH,f,g);const aI=f[im(0x319)](g);if(aI<a1&&(a1=aI,r&&r['copy'](f),z&&z[im(0x3fe)](g),aI<H))return Math[im(0x691)](aI);}}return Math[im(0x691)](a1);};}());class Jr{constructor(b){const ip=a0bL;this[ip(0xc1)]=b,this[ip(0x22d)]=[];}[a0bL(0x1b4)](){const iq=a0bL,b=this[iq(0x22d)];return b['length']===0x0?this['_getNewPrimitive']():b['pop']();}[a0bL(0xa82)](b){const iv=a0bL;this['_primitives'][iv(0x4f5)](b);}}class _A extends Jr{constructor(){super(()=>new Xe());}}const ze=new _A();class TA{constructor(){const iw=a0bL;this[iw(0x62e)]=null,this['uint16Array']=null,this['uint32Array']=null;const b=[];let c=null;this[iw(0x9df)]=d=>{c&&b['push'](c),c=d,this['float32Array']=new Float32Array(d),this['uint16Array']=new Uint16Array(d),this['uint32Array']=new Uint32Array(d);},this[iw(0x6a9)]=()=>{const ix=iw;c=null,this['float32Array']=null,this[ix(0x801)]=null,this['uint32Array']=null,b['length']!==0x0&&this[ix(0x9df)](b[ix(0x249)]());};}}const te=new TA();let St,ui;const Jt=[],Is=new Jr(()=>new a0h());function QA(b,d,f,g,h,i){const iy=a0bL;St=Is[iy(0x1b4)](),ui=Is[iy(0x1b4)](),Jt[iy(0x4f5)](St,ui),te[iy(0x9df)](b[iy(0x456)][d]);const j=Ir(0x0,b['geometry'],f,g,h,i);te[iy(0x6a9)](),Is['releasePrimitive'](St),Is[iy(0xa82)](ui),Jt[iy(0x249)](),Jt['pop']();const k=Jt['length'];return k>0x0&&(ui=Jt[k-0x1],St=Jt[k-0x2]),j;}function Ir(d,i,j,k,z=null,H=0x0,N=0x0){const {float32Array:U,uint16Array:a0,uint32Array:a1}=te;let a2=d*0x2;if(Qe(a2,a0)){const a3=Me(d,a1),a4=Ne(a2,a0);return se(d,U,St),k(a3,a4,!0x1,N,H+d,St);}else{let a5=function(az){const {uint16Array:aB,uint32Array:aC}=te;let aD=az*0x2;for(;!Qe(aD,aB);)az=Ue(az),aD=az*0x2;return Me(az,aC);},a6=function(az){const {uint16Array:aB,uint32Array:aC}=te;let aD=az*0x2;for(;!Qe(aD,aB);)az=Ge(az,aC),aD=az*0x2;return Me(az,aC)+Ne(aD,aB);};const a7=Ue(d),a8=Ge(d,a1);let a9=a7,ab=a8,aj,ak,am,an;if(z&&(am=St,an=ui,se(a9,U,am),se(ab,U,an),aj=z(am),ak=z(an),ak<aj)){a9=a8,ab=a7;const az=aj;aj=ak,ak=az,am=an;}am||(am=St,se(a9,U,am));const ap=Qe(a9*0x2,a0),aq=j(am,ap,aj,N+0x1,H+a9);let av;if(aq===vo){const aB=a5(a9),aC=a6(a9)-aB;av=k(aB,aC,!0x0,N+0x1,H+a9,am);}else av=aq&&Ir(a9,i,j,k,z,H,N+0x1);if(av)return!0x0;an=ui,se(ab,U,an);const aw=Qe(ab*0x2,a0),ax=j(an,aw,ak,N+0x1,H+ab);let ay;if(ax===vo){const aD=a5(ab),aE=a6(ab)-aD;ay=k(aD,aE,!0x0,N+0x1,H+ab,an);}else ay=ax&&Ir(ab,i,j,k,z,H,N+0x1);return!!ay;}}const Ui=new a0c(),Nn=new a0c();function SA(b,d,f={},g=0x0,i=0x1/0x0){const iz=a0bL,j=g*g,k=i*i;let m=0x1/0x0,p=null;if(b[iz(0x154)]({'boundsTraverseOrder':v=>(Ui['copy'](d)[iz(0x8c2)](v[iz(0x5d2)],v['max']),Ui['distanceToSquared'](d)),'intersectsBounds':(v,w,x)=>x<m&&x<k,'intersectsTriangle':(v,w)=>{const iB=iz;v['closestPointToPoint'](d,Ui);const x=d[iB(0x319)](Ui);return x<m&&(Nn[iB(0x3fe)](Ui),m=x,p=w),x<j;}}),m===0x1/0x0)return null;const u=Math[iz(0x691)](m);return f['point']?f[iz(0x883)]['copy'](Nn):f['point']=Nn[iz(0x471)](),f['distance']=u,f[iz(0x254)]=p,f;}const DA=parseInt(a0aC)>=0xa9,Lt=new a0c(),Rt=new a0c(),Pt=new a0c(),Bs=new a0l(),xs=new a0l(),vs=new a0l(),Do=new a0c(),Mo=new a0c(),Lo=new a0c(),Gi=new a0c();function MA(b,d,f,g,i,j,k,m){const iC=a0bL;let p;if(j===a0aB?p=b[iC(0xb0b)](g,f,d,!0x0,i):p=b[iC(0xb0b)](d,f,g,j!==a0at,i),p===null)return null;const u=b['origin'][iC(0x5a8)](i);return u<k||u>m?null:{'distance':u,'point':i['clone']()};}function LA(b,f,i,j,k,m,p,v,w,x,y){const iD=a0bL;Lt['fromBufferAttribute'](f,m),Rt['fromBufferAttribute'](f,p),Pt[iD(0x6be)](f,v);const z=MA(b,Lt,Rt,Pt,Gi,w,x,y);if(z){const B=new a0c();a0aA['getBarycoord'](Gi,Lt,Rt,Pt,B),j&&(Bs[iD(0x6be)](j,m),xs['fromBufferAttribute'](j,p),vs[iD(0x6be)](j,v),z['uv']=a0aA['getInterpolation'](Gi,Lt,Rt,Pt,Bs,xs,vs,new a0l())),k&&(Bs[iD(0x6be)](k,m),xs[iD(0x6be)](k,p),vs['fromBufferAttribute'](k,v),z['uv1']=a0aA[iD(0x21e)](Gi,Lt,Rt,Pt,Bs,xs,vs,new a0l())),i&&(Do[iD(0x6be)](i,m),Mo[iD(0x6be)](i,p),Lo['fromBufferAttribute'](i,v),z[iD(0x83)]=a0aA['getInterpolation'](Gi,Lt,Rt,Pt,Do,Mo,Lo,new a0c()),z[iD(0x83)]['dot'](b[iD(0x794)])>0x0&&z[iD(0x83)][iD(0x433)](-0x1));const E={'a':m,'b':p,'c':v,'normal':new a0c(),'materialIndex':0x0};a0aA['getNormal'](Lt,Rt,Pt,E['normal']),z[iD(0x3b8)]=E,z['faceIndex']=m,DA&&(z[iD(0x75d)]=B);}return z;}function rn(i,j,k,m,v,w,x){const iE=a0bL,y=m*0x3;let z=y+0x0,B=y+0x1,E=y+0x2;const F=i['index'];i[iE(0x9ee)]&&(z=F[iE(0xa7f)](z),B=F[iE(0xa7f)](B),E=F['getX'](E));const {position:H,normal:L,uv:N,uv1:R}=i[iE(0x4e1)],S=LA(k,H,L,N,R,z,B,E,j,w,x);return S?(S[iE(0x254)]=m,v&&v['push'](S),S):null;}function he(b,d,f,g){const iF=a0bL,i=b['a'],j=b['b'],k=b['c'];let m=d,p=d+0x1,u=d+0x2;f&&(m=f['getX'](m),p=f['getX'](p),u=f[iF(0xa7f)](u)),i['x']=g[iF(0xa7f)](m),i['y']=g[iF(0x8d6)](m),i['z']=g['getZ'](m),j['x']=g['getX'](p),j['y']=g[iF(0x8d6)](p),j['z']=g['getZ'](p),k['x']=g[iF(0xa7f)](u),k['y']=g[iF(0x8d6)](u),k['z']=g['getZ'](u);}function RA(b,f,g,i,j,k,m,p){const {geometry:u,_indirectBuffer:v}=b;for(let w=i,x=i+j;w<x;w++)rn(u,f,g,w,k,m,p);}function PA(b,f,i,j,k,m,p){const iG=a0bL,{geometry:v,_indirectBuffer:w}=b;let x=0x1/0x0,y=null;for(let z=j,B=j+k;z<B;z++){let E;E=rn(v,f,i,z,null,m,p),E&&E[iG(0x488)]<x&&(y=E,x=E[iG(0x488)]);}return y;}function kA(b,f,g,i,j,k,m){const iH=a0bL,{geometry:p}=g,{index:v}=p,w=p[iH(0x4e1)]['position'];for(let x=b,y=f+b;x<y;x++){let z;if(z=x,he(m,z*0x3,v,w),m[iH(0x12d)]=!0x0,i(m,z,j,k))return!0x0;}return!0x1;}function FA(b,f=null){const iI=a0bL;f&&Array[iI(0x335)](f)&&(f=new Set(f));const i=b[iI(0x813)],j=i[iI(0x9ee)]?i[iI(0x9ee)]['array']:null,k=i[iI(0x4e1)][iI(0x1b7)];let m,p,v,w,x=0x0;const y=b['_roots'];for(let B=0x0,E=y[iI(0x3ea)];B<E;B++)m=y[B],p=new Uint32Array(m),v=new Uint16Array(m),w=new Float32Array(m),z(0x0,x),x+=m['byteLength'];function z(a0,a1,a2=!0x1){const iJ=iI,a3=a0*0x2;if(v[a3+0xf]===nn){const a4=p[a0+0x6],a5=v[a3+0xe];let a6=0x1/0x0,a7=0x1/0x0,a8=0x1/0x0,a9=-0x1/0x0,ab=-0x1/0x0,aj=-0x1/0x0;for(let ak=0x3*a4,am=0x3*(a4+a5);ak<am;ak++){let an=j[ak];const ap=k[iJ(0xa7f)](an),aq=k[iJ(0x8d6)](an),av=k[iJ(0x9a3)](an);ap<a6&&(a6=ap),ap>a9&&(a9=ap),aq<a7&&(a7=aq),aq>ab&&(ab=aq),av<a8&&(a8=av),av>aj&&(aj=av);}return w[a0+0x0]!==a6||w[a0+0x1]!==a7||w[a0+0x2]!==a8||w[a0+0x3]!==a9||w[a0+0x4]!==ab||w[a0+0x5]!==aj?(w[a0+0x0]=a6,w[a0+0x1]=a7,w[a0+0x2]=a8,w[a0+0x3]=a9,w[a0+0x4]=ab,w[a0+0x5]=aj,!0x0):!0x1;}else{const aw=a0+0x8,ax=p[a0+0x6],ay=aw+a1,az=ax+a1;let aB=a2,aC=!0x1,aD=!0x1;f?aB||(aC=f['has'](ay),aD=f['has'](az),aB=!aC&&!aD):(aC=!0x0,aD=!0x0);const aE=aB||aC,aF=aB||aD;let aG=!0x1;aE&&(aG=z(aw,a1,aB));let aH=!0x1;aF&&(aH=z(ax,a1,aB));const aI=aG||aH;if(aI)for(let aJ=0x0;aJ<0x3;aJ++){const aK=aw+aJ,aL=ax+aJ,aM=w[aK],aN=w[aK+0x3],aO=w[aL],aP=w[aL+0x3];w[a0+aJ]=aM<aO?aM:aO,w[a0+aJ+0x3]=aN>aP?aN:aP;}return aI;}}}function Mt(i,j,k,v,z){const iK=a0bL;let F,H,L,N,R,S;const T=0x1/k[iK(0x794)]['x'],U=0x1/k[iK(0x794)]['y'],a0=0x1/k['direction']['z'],a1=k[iK(0x105)]['x'],a2=k['origin']['y'],a3=k[iK(0x105)]['z'];let a4=j[i],a5=j[i+0x3],a6=j[i+0x1],a7=j[i+0x3+0x1],a8=j[i+0x2],a9=j[i+0x3+0x2];return T>=0x0?(F=(a4-a1)*T,H=(a5-a1)*T):(F=(a5-a1)*T,H=(a4-a1)*T),U>=0x0?(L=(a6-a2)*U,N=(a7-a2)*U):(L=(a7-a2)*U,N=(a6-a2)*U),F>N||L>H||((L>F||isNaN(F))&&(F=L),(N<H||isNaN(H))&&(H=N),a0>=0x0?(R=(a8-a3)*a0,S=(a9-a3)*a0):(R=(a9-a3)*a0,S=(a8-a3)*a0),F>S||R>H)?!0x1:((R>F||F!==F)&&(F=R),(S<H||H!==H)&&(H=S),F<=z&&H>=v);}function OA(b,f,g,i,j,k,m,p){const {geometry:v,_indirectBuffer:w}=b;for(let x=i,y=i+j;x<y;x++){let z=w?w[x]:x;rn(v,f,g,z,k,m,p);}}function NA(b,f,i,j,k,m,p){const iL=a0bL,{geometry:v,_indirectBuffer:w}=b;let x=0x1/0x0,y=null;for(let z=j,B=j+k;z<B;z++){let E;E=rn(v,f,i,w?w[z]:z,null,m,p),E&&E[iL(0x488)]<x&&(y=E,x=E[iL(0x488)]);}return y;}function UA(b,f,g,i,j,k,m){const iM=a0bL,{geometry:p}=g,{index:v}=p,w=p['attributes'][iM(0x1b7)];for(let x=b,y=f+b;x<y;x++){let z;if(z=g['resolveTriangleIndex'](x),he(m,z*0x3,v,w),m['needsUpdate']=!0x0,i(m,z,j,k))return!0x0;}return!0x1;}function GA(b,c,d,f,g,h,i){te['setBuffer'](b['_roots'][c]),Br(0x0,b,d,f,g,h,i),te['clearBuffer']();}function Br(b,d,f,i,j,k,m){const {float32Array:p,uint16Array:v,uint32Array:w}=te,x=b*0x2;if(Qe(x,v)){const y=Me(b,w),z=Ne(x,v);RA(d,f,i,y,z,j,k,m);}else{const B=Ue(b);Mt(B,p,i,k,m)&&Br(B,d,f,i,j,k,m);const E=Ge(b,w);Mt(E,p,i,k,m)&&Br(E,d,f,i,j,k,m);}}const zA=['x','y','z'];function HA(b,c,d,f,g,h){te['setBuffer'](b['_roots'][c]);const i=xr(0x0,b,d,f,g,h);return te['clearBuffer'](),i;}function xr(g,i,j,k,v,x){const iN=a0bL,{float32Array:y,uint16Array:z,uint32Array:A}=te;let E=g*0x2;if(Qe(E,z)){const F=Me(g,A),H=Ne(E,z);return PA(i,j,k,F,H,v,x);}else{const L=fc(g,A),N=zA[L],R=k['direction'][N]>=0x0;let S,T;R?(S=Ue(g),T=Ge(g,A)):(S=Ge(g,A),T=Ue(g));const U=Mt(S,y,k,v,x)?xr(S,i,j,k,v,x):null;if(U){const a1=U[iN(0x883)][N];if(R?a1<=y[T+L]:a1>=y[T+L+0x3])return U;}const a0=Mt(T,y,k,v,x)?xr(T,i,j,k,v,x):null;return U&&a0?U['distance']<=a0['distance']?U:a0:U||a0||null;}}const _s=new a0h(),Xt=new Xe(),$t=new Xe(),zi=new a0m(),Ro=new ve(),Ts=new ve();function qA(b,c,d,f){const iO=a0bL;te[iO(0x9df)](b['_roots'][c]);const g=vr(0x0,b,d,f);return te[iO(0x6a9)](),g;}function vr(h,i,j,k,v=null){const iP=a0bL,{float32Array:x,uint16Array:z,uint32Array:B}=te;let F=h*0x2;if(v===null&&(j['boundingBox']||j[iP(0xaf9)](),Ro[iP(0x9fd)](j[iP(0x3dd)]['min'],j[iP(0x3dd)]['max'],k),v=Ro),Qe(F,z)){const H=i[iP(0x813)],L=H['index'],N=H['attributes']['position'],R=j[iP(0x9ee)],S=j['attributes'][iP(0x1b7)],T=Me(h,B),U=Ne(F,z);if(zi[iP(0x3fe)](k)['invert'](),j['boundsTree'])return se(h,x,Ts),Ts['matrix'][iP(0x3fe)](zi),Ts['needsUpdate']=!0x0,j[iP(0x1db)][iP(0x154)]({'intersectsBounds':a0=>Ts[iP(0x194)](a0),'intersectsTriangle':a0=>{const iQ=iP;a0['a'][iQ(0x53d)](k),a0['b'][iQ(0x53d)](k),a0['c'][iQ(0x53d)](k),a0[iQ(0x12d)]=!0x0;for(let a1=T*0x3,a2=(U+T)*0x3;a1<a2;a1+=0x3)if(he($t,a1,L,N),$t['needsUpdate']=!0x0,a0[iQ(0x37d)]($t))return!0x0;return!0x1;}});for(let a0=T*0x3,a1=(U+T)*0x3;a0<a1;a0+=0x3){he(Xt,a0,L,N),Xt['a']['applyMatrix4'](zi),Xt['b']['applyMatrix4'](zi),Xt['c'][iP(0x53d)](zi),Xt[iP(0x12d)]=!0x0;for(let a2=0x0,a3=R[iP(0x675)];a2<a3;a2+=0x3)if(he($t,a2,R,S),$t['needsUpdate']=!0x0,Xt[iP(0x37d)]($t))return!0x0;}}else{const a4=h+0x8,a5=B[h+0x6];return se(a4,x,_s),!!(v[iP(0x194)](_s)&&vr(a4,i,j,k,v)||(se(a5,x,_s),v[iP(0x194)](_s)&&vr(a5,i,j,k,v)));}}const Qs=new a0m(),Un=new ve(),Hi=new ve(),VA=new a0c(),jA=new a0c(),YA=new a0c(),KA=new a0c();function WA(i,j,k,v={},x={},z=0x0,B=0x1/0x0){const iR=a0bL;j[iR(0x3dd)]||j['computeBoundingBox'](),Un['set'](j[iR(0x3dd)][iR(0x5d2)],j['boundingBox'][iR(0x36b)],k),Un[iR(0x12d)]=!0x0;const F=i['geometry'],H=F[iR(0x4e1)]['position'],L=F[iR(0x9ee)],N=j[iR(0x4e1)]['position'],R=j['index'],S=ze[iR(0x1b4)](),T=ze['getPrimitive']();let U=VA,a0=jA,a1=null,a2=null;x&&(a1=YA,a2=KA);let a3=0x1/0x0,a4=null,a5=null;return Qs[iR(0x3fe)](k)['invert'](),Hi[iR(0x87e)][iR(0x3fe)](Qs),i['shapecast']({'boundsTraverseOrder':a6=>Un[iR(0xc7)](a6),'intersectsBounds':(a6,a7,a8)=>a8<a3&&a8<B?(a7&&(Hi[iR(0x5d2)]['copy'](a6['min']),Hi['max']['copy'](a6[iR(0x36b)]),Hi[iR(0x12d)]=!0x0),!0x0):!0x1,'intersectsRange':(a6,a7)=>{const iS=iR;if(j['boundsTree'])return j[iS(0x1db)][iS(0x154)]({'boundsTraverseOrder':a8=>Hi[iS(0xc7)](a8),'intersectsBounds':(a8,a9,ab)=>ab<a3&&ab<B,'intersectsRange':(a8,a9)=>{const iT=iS;for(let ab=a8,aj=a8+a9;ab<aj;ab++){he(T,0x3*ab,R,N),T['a']['applyMatrix4'](k),T['b']['applyMatrix4'](k),T['c']['applyMatrix4'](k),T[iT(0x12d)]=!0x0;for(let ak=a6,am=a6+a7;ak<am;ak++){he(S,0x3*ak,L,H),S['needsUpdate']=!0x0;const an=S['distanceToTriangle'](T,U,a1);if(an<a3&&(a0[iT(0x3fe)](U),a2&&a2[iT(0x3fe)](a1),a3=an,a4=ak,a5=ab),an<z)return!0x0;}}}});{const a8=_i(j);for(let a9=0x0,ab=a8;a9<ab;a9++){he(T,0x3*a9,R,N),T['a']['applyMatrix4'](k),T['b']['applyMatrix4'](k),T['c'][iS(0x53d)](k),T[iS(0x12d)]=!0x0;for(let aj=a6,ak=a6+a7;aj<ak;aj++){he(S,0x3*aj,L,H),S[iS(0x12d)]=!0x0;const am=S['distanceToTriangle'](T,U,a1);if(am<a3&&(a0['copy'](U),a2&&a2[iS(0x3fe)](a1),a3=am,a4=aj,a5=a9),am<z)return!0x0;}}}}}),ze[iR(0xa82)](S),ze[iR(0xa82)](T),a3===0x1/0x0?null:(v[iR(0x883)]?v['point']['copy'](a0):v[iR(0x883)]=a0[iR(0x471)](),v[iR(0x488)]=a3,v['faceIndex']=a4,x&&(x['point']?x['point']['copy'](a2):x['point']=a2[iR(0x471)](),x[iR(0x883)][iR(0x53d)](Qs),a0[iR(0x53d)](Qs),x['distance']=a0['sub'](x['point'])['length'](),x[iR(0x254)]=a5),v);}function JA(b,f=null){const iU=a0bL;f&&Array['isArray'](f)&&(f=new Set(f));const i=b['geometry'],j=i[iU(0x9ee)]?i['index'][iU(0x443)]:null,k=i[iU(0x4e1)]['position'];let m,p,v,w,x=0x0;const y=b['_roots'];for(let B=0x0,E=y['length'];B<E;B++)m=y[B],p=new Uint32Array(m),v=new Uint16Array(m),w=new Float32Array(m),z(0x0,x),x+=m[iU(0x175)];function z(a0,a1,a2=!0x1){const iV=iU,a3=a0*0x2;if(v[a3+0xf]===nn){const a4=p[a0+0x6],a5=v[a3+0xe];let a6=0x1/0x0,a7=0x1/0x0,a8=0x1/0x0,a9=-0x1/0x0,ab=-0x1/0x0,aj=-0x1/0x0;for(let ak=a4,am=a4+a5;ak<am;ak++){const an=0x3*b['resolveTriangleIndex'](ak);for(let ap=0x0;ap<0x3;ap++){let aq=an+ap;aq=j?j[aq]:aq;const av=k['getX'](aq),aw=k['getY'](aq),ax=k['getZ'](aq);av<a6&&(a6=av),av>a9&&(a9=av),aw<a7&&(a7=aw),aw>ab&&(ab=aw),ax<a8&&(a8=ax),ax>aj&&(aj=ax);}}return w[a0+0x0]!==a6||w[a0+0x1]!==a7||w[a0+0x2]!==a8||w[a0+0x3]!==a9||w[a0+0x4]!==ab||w[a0+0x5]!==aj?(w[a0+0x0]=a6,w[a0+0x1]=a7,w[a0+0x2]=a8,w[a0+0x3]=a9,w[a0+0x4]=ab,w[a0+0x5]=aj,!0x0):!0x1;}else{const ay=a0+0x8,az=p[a0+0x6],aB=ay+a1,aC=az+a1;let aD=a2,aE=!0x1,aF=!0x1;f?aD||(aE=f[iV(0x258)](aB),aF=f['has'](aC),aD=!aE&&!aF):(aE=!0x0,aF=!0x0);const aG=aD||aE,aH=aD||aF;let aI=!0x1;aG&&(aI=z(ay,a1,aD));let aJ=!0x1;aH&&(aJ=z(az,a1,aD));const aK=aI||aJ;if(aK)for(let aL=0x0;aL<0x3;aL++){const aM=ay+aL,aN=az+aL,aO=w[aM],aP=w[aM+0x3],aQ=w[aN],aR=w[aN+0x3];w[a0+aL]=aO<aQ?aO:aQ,w[a0+aL+0x3]=aP>aR?aP:aR;}return aK;}}}function XA(b,c,d,f,g,h,i){const iW=a0bL;te[iW(0x9df)](b[iW(0x456)][c]),_r(0x0,b,d,f,g,h,i),te[iW(0x6a9)]();}function _r(b,d,f,i,j,k,m){const {float32Array:p,uint16Array:v,uint32Array:w}=te,x=b*0x2;if(Qe(x,v)){const y=Me(b,w),z=Ne(x,v);OA(d,f,i,y,z,j,k,m);}else{const B=Ue(b);Mt(B,p,i,k,m)&&_r(B,d,f,i,j,k,m);const E=Ge(b,w);Mt(E,p,i,k,m)&&_r(E,d,f,i,j,k,m);}}const $A=['x','y','z'];function ZA(b,c,d,f,g,h){const iX=a0bL;te[iX(0x9df)](b['_roots'][c]);const i=Tr(0x0,b,d,f,g,h);return te[iX(0x6a9)](),i;}function Tr(g,i,j,k,v,x){const iY=a0bL,{float32Array:y,uint16Array:z,uint32Array:A}=te;let E=g*0x2;if(Qe(E,z)){const F=Me(g,A),H=Ne(E,z);return NA(i,j,k,F,H,v,x);}else{const L=fc(g,A),N=$A[L],R=k['direction'][N]>=0x0;let S,T;R?(S=Ue(g),T=Ge(g,A)):(S=Ge(g,A),T=Ue(g));const U=Mt(S,y,k,v,x)?Tr(S,i,j,k,v,x):null;if(U){const a1=U[iY(0x883)][N];if(R?a1<=y[T+L]:a1>=y[T+L+0x3])return U;}const a0=Mt(T,y,k,v,x)?Tr(T,i,j,k,v,x):null;return U&&a0?U[iY(0x488)]<=a0[iY(0x488)]?U:a0:U||a0||null;}}const Ss=new a0h(),Zt=new Xe(),ei=new Xe(),qi=new a0m(),Po=new ve(),Ds=new ve();function ed(b,c,d,f){const iZ=a0bL;te[iZ(0x9df)](b[iZ(0x456)][c]);const g=Qr(0x0,b,d,f);return te['clearBuffer'](),g;}function Qr(h,i,j,k,v=null){const j0=a0bL,{float32Array:x,uint16Array:z,uint32Array:F}=te;let H=h*0x2;if(v===null&&(j[j0(0x3dd)]||j[j0(0xaf9)](),Po[j0(0x9fd)](j['boundingBox'][j0(0x5d2)],j[j0(0x3dd)][j0(0x36b)],k),v=Po),Qe(H,z)){const L=i['geometry'],N=L['index'],R=L[j0(0x4e1)][j0(0x1b7)],S=j[j0(0x9ee)],T=j[j0(0x4e1)][j0(0x1b7)],U=Me(h,F),a0=Ne(H,z);if(qi['copy'](k)['invert'](),j['boundsTree'])return se(h,x,Ds),Ds[j0(0x87e)][j0(0x3fe)](qi),Ds[j0(0x12d)]=!0x0,j['boundsTree']['shapecast']({'intersectsBounds':a1=>Ds['intersectsBox'](a1),'intersectsTriangle':a1=>{const j1=j0;a1['a']['applyMatrix4'](k),a1['b']['applyMatrix4'](k),a1['c'][j1(0x53d)](k),a1['needsUpdate']=!0x0;for(let a2=U,a3=a0+U;a2<a3;a2++)if(he(ei,0x3*i['resolveTriangleIndex'](a2),N,R),ei[j1(0x12d)]=!0x0,a1[j1(0x37d)](ei))return!0x0;return!0x1;}});for(let a1=U,a2=a0+U;a1<a2;a1++){const a3=i['resolveTriangleIndex'](a1);he(Zt,0x3*a3,N,R),Zt['a'][j0(0x53d)](qi),Zt['b']['applyMatrix4'](qi),Zt['c'][j0(0x53d)](qi),Zt['needsUpdate']=!0x0;for(let a4=0x0,a5=S['count'];a4<a5;a4+=0x3)if(he(ei,a4,S,T),ei['needsUpdate']=!0x0,Zt[j0(0x37d)](ei))return!0x0;}}else{const a6=h+0x8,a7=F[h+0x6];return se(a6,x,Ss),!!(v[j0(0x194)](Ss)&&Qr(a6,i,j,k,v)||(se(a7,x,Ss),v['intersectsBox'](Ss)&&Qr(a7,i,j,k,v)));}}const Ms=new a0m(),Gn=new ve(),Vi=new ve(),td=new a0c(),id=new a0c(),sd=new a0c(),nd=new a0c();function rd(i,j,k,v={},x={},z=0x0,B=0x1/0x0){const j2=a0bL;j[j2(0x3dd)]||j[j2(0xaf9)](),Gn[j2(0x9fd)](j['boundingBox']['min'],j['boundingBox'][j2(0x36b)],k),Gn['needsUpdate']=!0x0;const F=i['geometry'],H=F[j2(0x4e1)][j2(0x1b7)],L=F['index'],N=j['attributes'][j2(0x1b7)],R=j[j2(0x9ee)],S=ze[j2(0x1b4)](),T=ze[j2(0x1b4)]();let U=td,a0=id,a1=null,a2=null;x&&(a1=sd,a2=nd);let a3=0x1/0x0,a4=null,a5=null;return Ms[j2(0x3fe)](k)['invert'](),Vi['matrix'][j2(0x3fe)](Ms),i[j2(0x154)]({'boundsTraverseOrder':a6=>Gn[j2(0xc7)](a6),'intersectsBounds':(a6,a7,a8)=>a8<a3&&a8<B?(a7&&(Vi[j2(0x5d2)][j2(0x3fe)](a6['min']),Vi['max'][j2(0x3fe)](a6['max']),Vi['needsUpdate']=!0x0),!0x0):!0x1,'intersectsRange':(a6,a7)=>{const j3=j2;if(j[j3(0x1db)]){const a8=j[j3(0x1db)];return a8['shapecast']({'boundsTraverseOrder':a9=>Vi[j3(0xc7)](a9),'intersectsBounds':(a9,ab,aj)=>aj<a3&&aj<B,'intersectsRange':(a9,ab)=>{const j4=j3;for(let aj=a9,ak=a9+ab;aj<ak;aj++){const am=a8[j4(0x722)](aj);he(T,0x3*am,R,N),T['a']['applyMatrix4'](k),T['b'][j4(0x53d)](k),T['c'][j4(0x53d)](k),T['needsUpdate']=!0x0;for(let an=a6,ap=a6+a7;an<ap;an++){const aq=i[j4(0x722)](an);he(S,0x3*aq,L,H),S['needsUpdate']=!0x0;const av=S['distanceToTriangle'](T,U,a1);if(av<a3&&(a0['copy'](U),a2&&a2[j4(0x3fe)](a1),a3=av,a4=an,a5=aj),av<z)return!0x0;}}}});}else{const a9=_i(j);for(let ab=0x0,aj=a9;ab<aj;ab++){he(T,0x3*ab,R,N),T['a'][j3(0x53d)](k),T['b'][j3(0x53d)](k),T['c']['applyMatrix4'](k),T[j3(0x12d)]=!0x0;for(let ak=a6,am=a6+a7;ak<am;ak++){const an=i['resolveTriangleIndex'](ak);he(S,0x3*an,L,H),S['needsUpdate']=!0x0;const ap=S['distanceToTriangle'](T,U,a1);if(ap<a3&&(a0[j3(0x3fe)](U),a2&&a2['copy'](a1),a3=ap,a4=ak,a5=ab),ap<z)return!0x0;}}}}}),ze['releasePrimitive'](S),ze[j2(0xa82)](T),a3===0x1/0x0?null:(v['point']?v['point'][j2(0x3fe)](a0):v['point']=a0[j2(0x471)](),v['distance']=a3,v['faceIndex']=a4,x&&(x['point']?x['point'][j2(0x3fe)](a2):x['point']=a2[j2(0x471)](),x[j2(0x883)][j2(0x53d)](Ms),a0['applyMatrix4'](Ms),x['distance']=a0['sub'](x[j2(0x883)])['length'](),x['faceIndex']=a5),v);}function od(){return typeof SharedArrayBuffer<'u';}const os=new te['constructor'](),$s=new te['constructor'](),Tt=new Jr(()=>new a0h()),ti=new a0h(),ii=new a0h(),zn=new a0h(),Hn=new a0h();let qn=!0x1;function ad(b,i,j,k){const j5=a0bL;if(qn)throw new Error(j5(0x9aa));qn=!0x0;const m=b[j5(0x456)],p=i['_roots'];let v,w=0x0,x=0x0;const y=new a0m()[j5(0x3fe)](j)[j5(0x1bf)]();for(let z=0x0,B=m['length'];z<B;z++){os['setBuffer'](m[z]),x=0x0;const E=Tt['getPrimitive']();se(0x0,os['float32Array'],E),E['applyMatrix4'](y);for(let F=0x0,H=p[j5(0x3ea)];F<H&&($s[j5(0x9df)](p[F]),v=Ke(0x0,0x0,j,y,k,w,x,0x0,0x0,E),$s['clearBuffer'](),x+=p[F][j5(0x3ea)],!v);F++);if(Tt['releasePrimitive'](E),os['clearBuffer'](),w+=m[z]['length'],v)break;}return qn=!0x1,v;}function Ke(i,j,z,H,a0,a1=0x0,a2=0x0,a3=0x0,a4=0x0,a5=null,a6=!0x1){const j6=a0bL;let a7,a8;a6?(a7=$s,a8=os):(a7=os,a8=$s);const a9=a7[j6(0x62e)],ab=a7[j6(0x650)],aj=a7['uint16Array'],ak=a8['float32Array'],am=a8[j6(0x650)],an=a8[j6(0x801)],ap=i*0x2,aq=j*0x2,av=Qe(ap,aj),aw=Qe(aq,an);let ax=!0x1;if(aw&&av)a6?ax=a0(Me(j,am),Ne(j*0x2,an),Me(i,ab),Ne(i*0x2,aj),a4,a2+j,a3,a1+i):ax=a0(Me(i,ab),Ne(i*0x2,aj),Me(j,am),Ne(j*0x2,an),a3,a1+i,a4,a2+j);else{if(aw){const ay=Tt['getPrimitive']();se(j,ak,ay),ay[j6(0x53d)](z);const az=Ue(i),aB=Ge(i,ab);se(az,a9,ti),se(aB,a9,ii);const aC=ay[j6(0x194)](ti),aD=ay['intersectsBox'](ii);ax=aC&&Ke(j,az,H,z,a0,a2,a1,a4,a3+0x1,ay,!a6)||aD&&Ke(j,aB,H,z,a0,a2,a1,a4,a3+0x1,ay,!a6),Tt[j6(0xa82)](ay);}else{const aE=Ue(j),aF=Ge(j,am);se(aE,ak,zn),se(aF,ak,Hn);const aG=a5['intersectsBox'](zn),aH=a5['intersectsBox'](Hn);if(aG&&aH)ax=Ke(i,aE,z,H,a0,a1,a2,a3,a4+0x1,a5,a6)||Ke(i,aF,z,H,a0,a1,a2,a3,a4+0x1,a5,a6);else{if(aG){if(av)ax=Ke(i,aE,z,H,a0,a1,a2,a3,a4+0x1,a5,a6);else{const aI=Tt['getPrimitive']();aI['copy'](zn)[j6(0x53d)](z);const aJ=Ue(i),aK=Ge(i,ab);se(aJ,a9,ti),se(aK,a9,ii);const aL=aI['intersectsBox'](ti),aM=aI['intersectsBox'](ii);ax=aL&&Ke(aE,aJ,H,z,a0,a2,a1,a4,a3+0x1,aI,!a6)||aM&&Ke(aE,aK,H,z,a0,a2,a1,a4,a3+0x1,aI,!a6),Tt['releasePrimitive'](aI);}}else{if(aH){if(av)ax=Ke(i,aF,z,H,a0,a1,a2,a3,a4+0x1,a5,a6);else{const aN=Tt[j6(0x1b4)]();aN['copy'](Hn)[j6(0x53d)](z);const aO=Ue(i),aP=Ge(i,ab);se(aO,a9,ti),se(aP,a9,ii);const aQ=aN[j6(0x194)](ti),aR=aN['intersectsBox'](ii);ax=aQ&&Ke(aF,aO,H,z,a0,a2,a1,a4,a3+0x1,aN,!a6)||aR&&Ke(aF,aP,H,z,a0,a2,a1,a4,a3+0x1,aN,!a6),Tt['releasePrimitive'](aN);}}}}}}return ax;}const Ls=new ve(),ko=new a0h(),cd={'strategy':dc,'maxDepth':0x28,'maxLeafTris':0xa,'useSharedArrayBuffer':!0x1,'setBoundingBox':!0x0,'onProgress':null,'indirect':!0x1,'verbose':!0x0,'range':null};class Xr{static['serialize'](b,d={}){const j7=a0bL;d={'cloneBuffers':!0x0,...d};const f=b[j7(0x813)],g=b[j7(0x456)],h=b[j7(0x109)],i=f['getIndex']();let j;return d[j7(0x589)]?j={'roots':g[j7(0x428)](k=>k['slice']()),'index':i?i['array']['slice']():null,'indirectBuffer':h?h['slice']():null}:j={'roots':g,'index':i?i['array']:null,'indirectBuffer':h},j;}static[a0bL(0x9e9)](b,d,f={}){const j8=a0bL;f={'setIndex':!0x0,'indirect':!!b['indirectBuffer'],...f};const {index:g,roots:i,indirectBuffer:j}=b,k=new Xr(d,{...f,[Pn]:!0x0});if(k[j8(0x456)]=i,k['_indirectBuffer']=j||null,f[j8(0x512)]){const m=d[j8(0x232)]();if(m===null){const p=new a0F(b[j8(0x9ee)],0x1,!0x1);d[j8(0x512)](p);}else m[j8(0x443)]!==g&&(m[j8(0x443)]['set'](g),m[j8(0x12d)]=!0x0);}return k;}get[a0bL(0xad5)](){return!!this['_indirectBuffer'];}constructor(b,c={}){const j9=a0bL;if(b[j9(0xaf)]){if(b[j9(0x9ee)]&&b['index'][j9(0x4c8)])throw new Error('MeshBVH:\x20InterleavedBufferAttribute\x20is\x20not\x20supported\x20for\x20the\x20index\x20attribute.');}else throw new Error(j9(0x728));if(c=Object['assign']({...cd,[Pn]:!0x1},c),c['useSharedArrayBuffer']&&!od())throw new Error(j9(0x295));this[j9(0x813)]=b,this['_roots']=null,this['_indirectBuffer']=null,c[Pn]||(IA(this,c),!b['boundingBox']&&c['setBoundingBox']&&(b['boundingBox']=this['getBoundingBox'](new a0h()))),this['resolveTriangleIndex']=c['indirect']?d=>this[j9(0x109)][d]:d=>d;}[a0bL(0x2a1)](b=null){const jb=a0bL;return(this[jb(0xad5)]?JA:FA)(this,b);}['traverse'](b,c=0x0){const d=this['_roots'][c],f=new Uint32Array(d),g=new Uint16Array(d);h(0x0);function h(i,j=0x0){const k=i*0x2,m=g[k+0xf]===nn;if(m){const p=f[i+0x6],v=g[k+0xe];b(j,m,new Float32Array(d,i*0x4,0x6),p,v);}else{const w=i+rs/0x4,x=f[i+0x6],y=f[i+0x7];b(j,m,new Float32Array(d,i*0x4,0x6),y)||(h(w,j+0x1),h(x,j+0x1));}}}['raycast'](i,j=a0aD,k=0x0,v=0x1/0x0){const jf=a0bL,w=this[jf(0x456)],x=this['geometry'],z=[],B=j[jf(0x7d1)],F=Array[jf(0x335)](j),H=x['groups'],L=B?j['side']:j,N=this[jf(0xad5)]?XA:GA;for(let R=0x0,S=w['length'];R<S;R++){const T=F?j[H[R]['materialIndex']]['side']:L,U=z['length'];if(N(this,R,T,i,z,k,v),F){const a0=H[R]['materialIndex'];for(let a1=U,a2=z['length'];a1<a2;a1++)z[a1]['face'][jf(0x5c2)]=a0;}}return z;}[a0bL(0x1e5)](i,j=a0aD,k=0x0,m=0x1/0x0){const jg=a0bL,v=this[jg(0x456)],w=this[jg(0x813)],x=j['isMaterial'],y=Array[jg(0x335)](j);let z=null;const B=w['groups'],E=x?j['side']:j,F=this[jg(0xad5)]?ZA:HA;for(let H=0x0,L=v[jg(0x3ea)];H<L;H++){const N=y?j[B[H]['materialIndex']][jg(0x4af)]:E,R=F(this,H,N,i,k,m);R!=null&&(z==null||R['distance']<z[jg(0x488)])&&(z=R,y&&(R[jg(0x3b8)][jg(0x5c2)]=B[H][jg(0x5c2)]));}return z;}[a0bL(0x403)](b,d){const jj=a0bL;let f=!0x1;const g=this['_roots'],h=this['indirect']?ed:qA;for(let i=0x0,j=g[jj(0x3ea)];i<j&&(f=h(this,i,b,d),!f);i++);return f;}[a0bL(0x154)](b){const jk=a0bL,f=ze['getPrimitive'](),i=this['indirect']?UA:kA;let {boundsTraverseOrder:j,intersectsBounds:k,intersectsRange:m,intersectsTriangle:p}=b;if(m&&p){const y=m;m=(z,B,E,F,H)=>y(z,B,E,F,H)?!0x0:i(z,B,this,p,E,F,f);}else m||(p?m=(z,B,E,F)=>i(z,B,this,p,E,F,f):m=(z,B,E)=>E);let v=!0x1,w=0x0;const x=this['_roots'];for(let z=0x0,B=x[jk(0x3ea)];z<B;z++){const E=x[z];if(v=QA(this,z,k,m,j,w),v)break;w+=E['byteLength'];}return ze[jk(0xa82)](f),v;}['bvhcast'](b,i,j){const jm=a0bL;let {intersectsRanges:k,intersectsTriangles:m}=j;const v=ze['getPrimitive'](),w=this['geometry']['index'],x=this[jm(0x813)][jm(0x4e1)]['position'],y=this['indirect']?H=>{const jp=jm,L=this[jp(0x722)](H);he(v,L*0x3,w,x);}:H=>{he(v,H*0x3,w,x);},z=ze[jm(0x1b4)](),B=b['geometry']['index'],E=b['geometry'][jm(0x4e1)]['position'],F=b[jm(0xad5)]?H=>{const L=b['resolveTriangleIndex'](H);he(z,L*0x3,B,E);}:H=>{he(z,H*0x3,B,E);};if(m){const H=(L,N,R,U,a0,a1,a2,a3)=>{const jq=jm;for(let a4=R,a5=R+U;a4<a5;a4++){F(a4),z['a'][jq(0x53d)](i),z['b'][jq(0x53d)](i),z['c'][jq(0x53d)](i),z['needsUpdate']=!0x0;for(let a6=L,a7=L+N;a6<a7;a6++)if(y(a6),v['needsUpdate']=!0x0,m(v,z,a6,a4,a0,a1,a2,a3))return!0x0;}return!0x1;};if(k){const L=k;k=function(N,R,S,T,U,a0,a1,a2){return L(N,R,S,T,U,a0,a1,a2)?!0x0:H(N,R,S,T,U,a0,a1,a2);};}else k=H;}return ad(this,b,i,k);}[a0bL(0x194)](b,c){const jv=a0bL;return Ls[jv(0x9fd)](b[jv(0x5d2)],b[jv(0x36b)],c),Ls[jv(0x12d)]=!0x0,this['shapecast']({'intersectsBounds':d=>Ls[jv(0x194)](d),'intersectsTriangle':d=>Ls[jv(0x37d)](d)});}[a0bL(0x8ed)](b){const jw=a0bL;return this['shapecast']({'intersectsBounds':c=>b['intersectsBox'](c),'intersectsTriangle':c=>c[jw(0x8ed)](b)});}['closestPointToGeometry'](b,c,d={},f={},g=0x0,h=0x1/0x0){return(this['indirect']?rd:WA)(this,b,c,d,f,g,h);}['closestPointToPoint'](b,c={},d=0x0,f=0x1/0x0){return SA(this,b,c,d,f);}[a0bL(0x47d)](b){const jx=a0bL;return b[jx(0x43e)](),this['_roots'][jx(0xb8)](c=>{se(0x0,new Float32Array(c),ko),b['union'](ko);}),b;}}function Fo(b,c,d){const jy=a0bL;return b===null?null:(b['point'][jy(0x53d)](c[jy(0x14e)]),b['distance']=b['point'][jy(0x5a8)](d['ray'][jy(0x105)]),b['object']=c,b);}const Rs=new a0aF(),Oo=new a0c(),No=new a0m(),ld=a0e[a0bL(0x9e4)]['raycast'],hd=a0aE[a0bL(0x9e4)]['raycast'],Uo=new a0c(),Ee=new a0e(),Ps=[];function Ad(b,c){const jz=a0bL;this[jz(0x929)]?dd['call'](this,b,c):ud['call'](this,b,c);}function dd(b,f){const jB=a0bL;if(this['boundsTrees']){const i=this[jB(0x41b)],j=this[jB(0x82e)]||this['_instanceInfo'],k=this['_drawRanges']||this[jB(0x95d)],m=this[jB(0x14e)];Ee['material']=this[jB(0x690)],Ee[jB(0x813)]=this['geometry'];const p=Ee[jB(0x813)]['boundsTree'],v=Ee[jB(0x813)][jB(0x5a2)];Ee[jB(0x813)]['boundingSphere']===null&&(Ee['geometry'][jB(0xb05)]=new a0t());for(let w=0x0,x=j['length'];w<x;w++){if(!this[jB(0x68e)](w))continue;const y=j[w][jB(0x57c)];if(Ee['geometry']['boundsTree']=i[y],this[jB(0x435)](w,Ee['matrixWorld'])[jB(0x267)](m),!Ee[jB(0x813)]['boundsTree']){this['getBoundingBoxAt'](y,Ee['geometry']['boundingBox']),this[jB(0x159)](y,Ee['geometry'][jB(0xb05)]);const z=k[y];Ee[jB(0x813)]['setDrawRange'](z['start'],z['count']);}Ee['raycast'](b,Ps);for(let B=0x0,E=Ps['length'];B<E;B++){const F=Ps[B];F['object']=this,F['batchId']=w,f[jB(0x4f5)](F);}Ps['length']=0x0;}Ee[jB(0x813)]['boundsTree']=p,Ee[jB(0x813)]['drawRange']=v,Ee['material']=null,Ee[jB(0x813)]=null;}else hd['call'](this,b,f);}function ud(b,d){const jC=a0bL;if(this[jC(0x813)]['boundsTree']){if(this['material']===void 0x0)return;No[jC(0x3fe)](this['matrixWorld'])[jC(0x1bf)](),Rs[jC(0x3fe)](b['ray'])['applyMatrix4'](No),Uo[jC(0x797)](this[jC(0x14e)]),Oo[jC(0x3fe)](Rs[jC(0x794)])[jC(0x26b)](Uo);const f=Oo['length'](),g=b[jC(0x3ad)]/f,i=b['far']/f,j=this['geometry'][jC(0x1db)];if(b[jC(0x91f)]===!0x0){const k=Fo(j[jC(0x1e5)](Rs,this[jC(0x690)],g,i),this,b);k&&d[jC(0x4f5)](k);}else{const m=j['raycast'](Rs,this['material'],g,i);for(let p=0x0,u=m['length'];p<u;p++){const v=Fo(m[p],this,b);v&&d['push'](v);}}}else ld[jC(0x6a7)](this,b,d);}function gd(b={}){const jD=a0bL;return this[jD(0x1db)]=new Xr(this,b),this[jD(0x1db)];}function fd(){const jE=a0bL;this[jE(0x1db)]=null;}a0j[a0bL(0x9e4)]['computeBoundsTree']=gd,a0j[a0bL(0x9e4)][a0bL(0x817)]=fd,a0e['prototype']['raycast']=Ad,a0d['prototype'][a0bL(0x5bc)]=function(b,c=!0x1){const jF=a0bL;let d;const f=c?b:b[jF(0x80b)]();return this[jF(0x268)](g=>{const jG=jF;if(d)return;(c?g[jG(0x74)]:g['name']?.[jG(0x80b)]())?.[jG(0xa1c)](f)&&(d=g);}),d;},a0d[a0bL(0x9e4)]['traverseUntilFound']=function(b){const jH=a0bL;let c;return this[jH(0x268)](d=>{!c&&b(d)&&(c=d);}),c;};function pd(){const jI=a0bL;a0j[jI(0x9e4)]['hasOwnProperty'](jI(0xa9))||console['error']('BVH\x20extension\x20failed\x20to\x20initialize');}const md=new a0aG({'color':0xff,'emissive':'#9ff555','emissiveIntensity':0x1,'transparent':!0x0,'opacity':0.9}),bd=new a0aH({'color':0xffffff,'transparent':!0x0,'opacity':0x1,'transmission':0x0,'roughness':0.1,'metalness':0x0,'clearcoat':0.5,'clearcoatRoughness':0x0});new a0aG({'color':new a0G(0xe62020),'roughness':0.3,'metalness':0.7,'transparent':!0x1,'opacity':0x1,'envMapIntensity':0.8}),new a0aG({'color':new a0G(0x3ff34b),'roughness':0.3,'metalness':0.7,'transparent':!0x1,'opacity':0x1,'envMapIntensity':0.8}),new a0aG({'color':new a0G(0xd0d0d0),'roughness':0.5,'metalness':0x0,'transparent':!0x1,'opacity':0x1,'envMapIntensity':0.5});const Ed=new a0g({'color':0xffffff,'transparent':!0x1}),Cd=new a0i({'color':0x121212});function Xg(){return{'whiteMaterial':Ed,'emissiveMaterial':md,'glassMaterial':bd};}const yd=sn();class wd{constructor(b,c,d,f){const jJ=a0bL;C(this,'el'),C(this,jJ(0x15b)),C(this,jJ(0x36e)),C(this,jJ(0xa96)),C(this,'renderer',null),C(this,jJ(0x8d8),null),C(this,'canvas',null),(this['el']=b,this['options']=c,this['onContextLostCallback']=d,this[jJ(0xa96)]=f);}[a0bL(0x171)](){const jK=a0bL,b=new hh();return b[jK(0x23b)](this['el']['clientWidth'],this['el']['clientHeight']),b[jK(0x9da)]['style']['position']=jK(0x7fd),b[jK(0x9da)][jK(0xa1a)][jK(0x29e)]='0',this['el'][jK(0x2cf)](b['domElement']),this['cssRenderer']=b,b;}[a0bL(0x13a)](){const jL=a0bL,{render:b}=this[jL(0x15b)],c={'antialias':!0x0,'powerPreference':jL(0x8b)};b?.[jL(0x30c)]&&a0bq(c,b['webGLRenderer']);const d=new a0aI(c);return yd?d['setPixelRatio'](window['devicePixelRatio']*0.75):d['setPixelRatio'](window[jL(0xac7)]),d['setSize'](this['el']['clientWidth'],this['el'][jL(0x771)]),d[jL(0x9da)][jL(0x696)]('webglcontextlost',this['onContextLostCallback']),d['domElement'][jL(0x696)](jL(0x5b0),this['onContextRestoredCallback']),d[jL(0x703)]=!0x0,d[jL(0x704)]=a0D,d['domElement'][jL(0xa1a)][jL(0x1b7)]=jL(0x7fd),this['el']['appendChild'](d[jL(0x9da)]),this[jL(0x7e0)]=d[jL(0x9da)],this['renderer']=d,d;}[a0bL(0x392)](b,c){const jM=a0bL;this['renderer']&&this[jM(0x9b)]['setSize'](b,c),this['cssRenderer']&&this['cssRenderer'][jM(0x23b)](b,c);}[a0bL(0x1a5)](){const jN=a0bL;this['renderer']&&(this[jN(0x9b)][jN(0x1a5)](),this[jN(0x9b)][jN(0x9da)][jN(0x1d0)]&&this[jN(0x9b)][jN(0x9da)][jN(0x1d0)]['removeChild'](this[jN(0x9b)]['domElement']),this['renderer']=null),this['cssRenderer']&&(this['cssRenderer'][jN(0x9da)]['parentNode']&&this['cssRenderer']['domElement'][jN(0x1d0)][jN(0x197)](this[jN(0x8d8)][jN(0x9da)]),this['cssRenderer']=null),this[jN(0x7e0)]=null;}}const ie={'LEFT':0x1,'RIGHT':0x2,'MIDDLE':0x4},Q=Object['freeze']({'NONE':0x0,'ROTATE':0x1,'TRUCK':0x2,'SCREEN_PAN':0x4,'OFFSET':0x8,'DOLLY':0x10,'ZOOM':0x20,'TOUCH_ROTATE':0x40,'TOUCH_TRUCK':0x80,'TOUCH_SCREEN_PAN':0x100,'TOUCH_OFFSET':0x200,'TOUCH_DOLLY':0x400,'TOUCH_ZOOM':0x800,'TOUCH_DOLLY_TRUCK':0x1000,'TOUCH_DOLLY_SCREEN_PAN':0x2000,'TOUCH_DOLLY_OFFSET':0x4000,'TOUCH_DOLLY_ROTATE':0x8000,'TOUCH_ZOOM_TRUCK':0x10000,'TOUCH_ZOOM_OFFSET':0x20000,'TOUCH_ZOOM_SCREEN_PAN':0x40000,'TOUCH_ZOOM_ROTATE':0x80000}),si={'NONE':0x0,'IN':0x1,'OUT':-0x1};function kt(b){return b['isPerspectiveCamera'];}function _t(b){return b['isOrthographicCamera'];}const ni=Math['PI']*0x2,Go=Math['PI']/0x2,bc=0.00001,ji=Math['PI']/0xb4;function We(b,c,d){return Math['max'](c,Math['min'](d,b));}function X(b,c=bc){return Math['abs'](b)<c;}function K(b,c,d=bc){return X(b-c,d);}function zo(b,c){return Math['round'](b/c)*c;}function Yi(b){const jO=a0bL;return isFinite(b)?b:b<0x0?-Number['MAX_VALUE']:Number[jO(0x8d1)];}function Ki(b){const jP=a0bL;return Math[jP(0x855)](b)<Number[jP(0x8d1)]?b:b*(0x1/0x0);}function ks(b,f,i,j,k=0x1/0x0,m){const jQ=a0bL;j=Math['max'](0.0001,j);const p=0x2/j,v=p*m,w=0x1/(0x1+v+0.48*v*v+0.235*v*v*v);let x=b-f;const y=f,z=k*j;x=We(x,-z,z),f=b-x;const B=(i[jQ(0xaa2)]+p*x)*m;i['value']=(i['value']-p*B)*w;let E=f+(x+B)*w;return y-b>0x0==E>y&&(E=y,i[jQ(0xaa2)]=(E-y)/m),E;}function Ho(i,j,z,H,U=0x1/0x0,a0,a1){const jR=a0bL;H=Math[jR(0x36b)](0.0001,H);const a2=0x2/H,a3=a2*a0,a4=0x1/(0x1+a3+0.48*a3*a3+0.235*a3*a3*a3);let a5=j['x'],a6=j['y'],a7=j['z'],a8=i['x']-a5,a9=i['y']-a6,ab=i['z']-a7;const aj=a5,ak=a6,am=a7,an=U*H,ap=an*an,aq=a8*a8+a9*a9+ab*ab;if(aq>ap){const aF=Math['sqrt'](aq);a8=a8/aF*an,a9=a9/aF*an,ab=ab/aF*an;}a5=i['x']-a8,a6=i['y']-a9,a7=i['z']-ab;const av=(z['x']+a2*a8)*a0,aw=(z['y']+a2*a9)*a0,ax=(z['z']+a2*ab)*a0;z['x']=(z['x']-a2*av)*a4,z['y']=(z['y']-a2*aw)*a4,z['z']=(z['z']-a2*ax)*a4,a1['x']=a5+(a8+av)*a4,a1['y']=a6+(a9+aw)*a4,a1['z']=a7+(ab+ax)*a4;const ay=aj-i['x'],az=ak-i['y'],aB=am-i['z'],aC=a1['x']-aj,aD=a1['y']-ak,aE=a1['z']-am;return ay*aC+az*aD+aB*aE>0x0&&(a1['x']=aj,a1['y']=ak,a1['z']=am,z['x']=(a1['x']-aj)/a0,z['y']=(a1['y']-ak)/a0,z['z']=(a1['z']-am)/a0),a1;}function Vn(b,c){const jS=a0bL;c[jS(0x9fd)](0x0,0x0),b[jS(0xb8)](d=>{const jT=jS;c['x']+=d[jT(0x4f8)],c['y']+=d['clientY'];}),c['x']/=b[jS(0x3ea)],c['y']/=b['length'];}function jn(b,c){return _t(b)?(console['warn'](c+'\x20is\x20not\x20supported\x20in\x20OrthographicCamera'),!0x0):!0x1;}let Id=class{constructor(){const jU=a0bL;C(this,jU(0x8a7),{});}['addEventListener'](b,c){const jV=a0bL,d=this[jV(0x8a7)];d[b]===void 0x0&&(d[b]=[]),d[b]['indexOf'](c)===-0x1&&d[b]['push'](c);}[a0bL(0x50d)](b,c){const jW=a0bL,d=this[jW(0x8a7)];return d[b]!==void 0x0&&d[b][jW(0x3ae)](c)!==-0x1;}[a0bL(0xcf)](b,c){const jX=a0bL,d=this[jX(0x8a7)][b];if(d!==void 0x0){const f=d[jX(0x3ae)](c);f!==-0x1&&d[jX(0x230)](f,0x1);}}[a0bL(0x4e7)](b){const jY=a0bL;if(!b){this['_listeners']={};return;}Array['isArray'](this['_listeners'][b])&&(this[jY(0x8a7)][b]['length']=0x0);}['dispatchEvent'](b){const jZ=a0bL,c=this[jZ(0x8a7)][b['type']];if(c!==void 0x0){b['target']=this;const d=c['slice'](0x0);for(let e=0x0,f=d['length'];e<f;e++)d[e][jZ(0x6a7)](this,b);}}};function a0b(a,b){const c=a0a();return a0b=function(d,e){d=d-0x65;let f=c[d];return f;},a0b(a,b);}const Bd='__VERSION',Fs=0x1/0x8,xd=/Mac/[a0bL(0x2b6)](globalThis?.[a0bL(0x192)]?.[a0bL(0x239)]);let G,qo,Os,Yn,_e,q,Y,ri,Wi,st,nt,Ft,Vo,jo,Re,Ji,oi,Yo,Kn,Ko,Wn,Jn,Ns;class Te extends Id{constructor(i,j){const k0=a0bL;super(),C(this,k0(0x64e),0x0),C(this,k0(0x6c6),Math['PI']),C(this,'minAzimuthAngle',-0x1/0x0),C(this,k0(0x964),0x1/0x0),C(this,k0(0x6e4),Number['EPSILON']),C(this,k0(0x952),0x1/0x0),C(this,'infinityDolly',!0x1),C(this,k0(0x100),0.01),C(this,'maxZoom',0x1/0x0),C(this,'smoothTime',0.25),C(this,k0(0x4ad),0.125),C(this,k0(0x8ac),0x1/0x0),C(this,k0(0xe9),0x1),C(this,'polarRotateSpeed',0x1),C(this,k0(0x84a),0x1),C(this,k0(0x5a3),!0x1),C(this,k0(0x25f),0x2),C(this,k0(0x483),!0x1),C(this,k0(0x8ca),!0x1),C(this,'boundaryFriction',0x0),C(this,k0(0x4ca),0.01),C(this,k0(0x6dd),[]),C(this,'mouseButtons'),C(this,'touches'),C(this,k0(0x6c7),()=>{}),C(this,k0(0x3b5)),C(this,'unlockPointer'),C(this,'_enabled',!0x0),C(this,k0(0x1f6)),C(this,'_yAxisUpSpace'),C(this,k0(0x67d)),C(this,'_state',Q[k0(0x896)]),C(this,'_domElement'),C(this,k0(0x15f),null),C(this,'_target'),C(this,'_targetEnd'),C(this,k0(0x2a6)),C(this,'_focalOffsetEnd'),C(this,k0(0x870)),C(this,'_sphericalEnd'),C(this,k0(0x63c)),C(this,k0(0x19d)),C(this,'_zoomEnd'),C(this,'_lastZoom'),C(this,k0(0x5a0)),C(this,'_target0'),C(this,'_position0'),C(this,'_zoom0'),C(this,k0(0x699)),C(this,'_dollyControlCoord'),C(this,k0(0x5a4),0x0),C(this,'_changedZoom',0x0),C(this,k0(0x638)),C(this,'_hasRested',!0x0),C(this,'_boundary'),C(this,k0(0x29f),!0x1),C(this,'_needsUpdate',!0x0),C(this,'_updatedLastTime',!0x1),C(this,'_elementRect',new DOMRect()),C(this,k0(0x18b),!0x1),C(this,'_dragNeedsUpdate',!0x0),C(this,k0(0x56a),[]),C(this,k0(0x1c9),null),C(this,k0(0x156),new DOMRect(0x0,0x0,0x1,0x1)),C(this,'_isUserControllingRotate',!0x1),C(this,'_isUserControllingDolly',!0x1),C(this,'_isUserControllingTruck',!0x1),C(this,k0(0x250),!0x1),C(this,k0(0xa9e),!0x1),C(this,k0(0x602),si['NONE']),C(this,k0(0x2a4),{'value':0x0}),C(this,k0(0x80),{'value':0x0}),C(this,'_radiusVelocity',{'value':0x0}),C(this,'_targetVelocity',new G[(k0(0xa5f))]()),C(this,k0(0x680),new G['Vector3']()),C(this,'_zoomVelocity',{'value':0x0}),C(this,k0(0x1a0),(S,T,U,a0)=>{const k1=k0;let a1,a2;if(kt(this[k1(0x1f6)])){const a3=q['copy'](this[k1(0x1f6)][k1(0x1b7)])['sub'](this['_target']),a4=this['_camera']['getEffectiveFOV']()*ji,a5=a3['length']()*Math['tan'](a4*0.5);a1=this[k1(0x25f)]*S*a5/this['_elementRect']['height'],a2=this['truckSpeed']*T*a5/this['_elementRect']['height'];}else{if(_t(this[k1(0x1f6)])){const a6=this['_camera'];a1=this['truckSpeed']*S*(a6[k1(0x9ca)]-a6['left'])/a6['zoom']/this[k1(0x8e0)][k1(0xb1f)],a2=this[k1(0x25f)]*T*(a6[k1(0x29e)]-a6['bottom'])/a6['zoom']/this['_elementRect'][k1(0x19e)];}else return;}a0?(U?this[k1(0x149)](this[k1(0x4aa)]['x']+a1,this[k1(0x4aa)]['y'],this['_focalOffsetEnd']['z'],!0x0):this['truck'](a1,0x0,!0x0),this['forward'](-a2,!0x0)):U?this[k1(0x149)](this[k1(0x4aa)]['x']+a1,this[k1(0x4aa)]['y']+a2,this['_focalOffsetEnd']['z'],!0x0):this[k1(0x7c)](a1,a2,!0x0);}),C(this,k0(0x293),(S,T)=>{const k2=k0,U=ni*this[k2(0xe9)]*S/this[k2(0x8e0)]['height'],a0=ni*this['polarRotateSpeed']*T/this['_elementRect']['height'];this['rotate'](U,a0,!0x0);}),C(this,'_dollyInternal',(S,T,U)=>{const k3=k0,a0=Math['pow'](0.95,-S*this[k3(0x84a)]),a1=this[k3(0x6e0)][k3(0x3eb)],a2=this[k3(0x6e0)]['radius']*a0,a3=We(a2,this[k3(0x6e4)],this[k3(0x952)]),a4=a3-a2;this['infinityDolly']&&this['dollyToCursor']?this['_dollyToNoClamp'](a2,!0x0):this['infinityDolly']&&!this[k3(0x483)]?(this[k3(0x9dd)](a4,!0x0),this[k3(0x35e)](a3,!0x0)):this['_dollyToNoClamp'](a3,!0x0),this['dollyToCursor']&&(this[k3(0x5a4)]+=(this['infinityDolly']?a2:a3)-a1,this[k3(0xac0)][k3(0x9fd)](T,U)),this['_lastDollyDirection']=Math['sign'](-S);}),C(this,'_zoomInternal',(S,T,U)=>{const k4=k0,a0=Math[k4(0xf6)](0.95,S*this['dollySpeed']),a1=this['_zoom'],a2=this[k4(0x19d)]*a0;this[k4(0x815)](a2,!0x0),this[k4(0x483)]&&(this['_changedZoom']+=a2-a1,this['_dollyControlCoord'][k4(0x9fd)](T,U));}),(typeof G>'u'&&console['error'](k0(0x553)),this['_camera']=i,this[k0(0x2de)]=new G[(k0(0x6c2))]()[k0(0x296)](this['_camera']['up'],Os),this[k0(0x67d)]=this['_yAxisUpSpace']['clone']()[k0(0x1bf)](),this[k0(0x42f)]=Q['NONE'],this['_target']=new G[(k0(0xa5f))](),this['_targetEnd']=this['_target']['clone'](),this[k0(0x2a6)]=new G['Vector3'](),this[k0(0x4aa)]=this[k0(0x2a6)][k0(0x471)](),this['_spherical']=new G[(k0(0x52a))]()[k0(0xa2d)](q[k0(0x3fe)](this['_camera'][k0(0x1b7)])['applyQuaternion'](this[k0(0x2de)])),this['_sphericalEnd']=this['_spherical']['clone'](),this[k0(0x63c)]=this[k0(0x870)][k0(0x3eb)],this[k0(0x19d)]=this[k0(0x1f6)]['zoom'],this['_zoomEnd']=this[k0(0x19d)],this[k0(0x169)]=this['_zoom'],this['_nearPlaneCorners']=[new G['Vector3'](),new G['Vector3'](),new G[(k0(0xa5f))](),new G['Vector3']()],this['_updateNearPlaneCorners'](),this['_boundary']=new G['Box3'](new G[(k0(0xa5f))](-0x1/0x0,-0x1/0x0,-0x1/0x0),new G['Vector3'](0x1/0x0,0x1/0x0,0x1/0x0)),this['_cameraUp0']=this[k0(0x1f6)]['up'][k0(0x471)](),this['_target0']=this['_target'][k0(0x471)](),this['_position0']=this[k0(0x1f6)]['position']['clone'](),this[k0(0xb20)]=this[k0(0x19d)],this['_focalOffset0']=this[k0(0x2a6)]['clone'](),this['_dollyControlCoord']=new G['Vector2'](),this['mouseButtons']={'left':Q[k0(0x9a2)],'middle':Q[k0(0x245)],'right':Q['TRUCK'],'wheel':kt(this[k0(0x1f6)])?Q['DOLLY']:_t(this['_camera'])?Q['ZOOM']:Q['NONE']},this[k0(0x30e)]={'one':Q[k0(0x841)],'two':kt(this[k0(0x1f6)])?Q[k0(0x8ee)]:_t(this['_camera'])?Q['TOUCH_ZOOM_TRUCK']:Q[k0(0x896)],'three':Q['TOUCH_TRUCK']});const k=new G[(k0(0x996))](),m=new G[(k0(0x996))](),t=new G[(k0(0x996))](),v=S=>{const k5=k0;if(!this[k5(0x54e)]||!this[k5(0x8ce)])return;if(this[k5(0x156)][k5(0x5df)]!==0x0||this[k5(0x156)][k5(0x29e)]!==0x0||this['_interactiveArea']['width']!==0x1||this[k5(0x156)][k5(0x19e)]!==0x1){const a0=this['_domElement']['getBoundingClientRect'](),a1=S[k5(0x4f8)]/a0[k5(0xb1f)],a2=S[k5(0x5ab)]/a0['height'];if(a1<this['_interactiveArea']['left']||a1>this['_interactiveArea']['right']||a2<this['_interactiveArea']['top']||a2>this['_interactiveArea'][k5(0x342)])return;}const T=S['pointerType']!=='mouse'?null:(S['buttons']&ie[k5(0x9fb)])===ie[k5(0x9fb)]?ie['LEFT']:(S[k5(0x657)]&ie[k5(0x152)])===ie[k5(0x152)]?ie['MIDDLE']:(S[k5(0x657)]&ie['RIGHT'])===ie[k5(0xa3b)]?ie['RIGHT']:null;if(T!==null){const a3=this[k5(0x4d7)](T);a3&&this[k5(0xac6)](a3);}if((S['buttons']&ie[k5(0x9fb)])===ie[k5(0x9fb)]&&this[k5(0x1c9)])return;const U={'pointerId':S[k5(0x942)],'clientX':S[k5(0x4f8)],'clientY':S['clientY'],'deltaX':0x0,'deltaY':0x0,'mouseButton':T};this[k5(0x56a)]['push'](U),this[k5(0x8ce)]['ownerDocument']['removeEventListener'](k5(0xacd),w,{'passive':!0x1}),this[k5(0x8ce)][k5(0x234)][k5(0xcf)]('pointerup',x),this[k5(0x8ce)]['ownerDocument']['addEventListener']('pointermove',w,{'passive':!0x1}),this['_domElement']['ownerDocument'][k5(0x696)](k5(0x767),x),this['_isDragging']=!0x0,F(S);},w=S=>{const k6=k0;S['cancelable']&&S[k6(0x58c)]();const T=S['pointerId'],U=this[k6(0x1c9)]||this[k6(0x783)](T);if(U){if(U['clientX']=S[k6(0x4f8)],U['clientY']=S['clientY'],U['deltaX']=S['movementX'],U['deltaY']=S['movementY'],this['_state']=0x0,S[k6(0x901)]===k6(0x4bb))switch(this[k6(0x56a)][k6(0x3ea)]){case 0x1:this[k6(0x42f)]=this[k6(0x30e)][k6(0xaa1)];break;case 0x2:this['_state']=this['touches']['two'];break;case 0x3:this['_state']=this['touches'][k6(0x71b)];break;}else(!this[k6(0x18b)]&&this['_lockedPointer']||this['_isDragging']&&(S['buttons']&ie['LEFT'])===ie['LEFT'])&&(this[k6(0x42f)]=this[k6(0x42f)]|this[k6(0x3a3)]['left']),this[k6(0x18b)]&&(S[k6(0x657)]&ie[k6(0x152)])===ie['MIDDLE']&&(this['_state']=this[k6(0x42f)]|this[k6(0x3a3)]['middle']),this['_isDragging']&&(S['buttons']&ie[k6(0xa3b)])===ie[k6(0xa3b)]&&(this['_state']=this['_state']|this[k6(0x3a3)]['right']);H();}},x=S=>{const k7=k0,T=this[k7(0x783)](S['pointerId']);if(!(T&&T===this[k7(0x1c9)])){if(T&&this[k7(0xac6)](T),S['pointerType']===k7(0x4bb))switch(this[k7(0x56a)]['length']){case 0x0:this[k7(0x42f)]=Q['NONE'];break;case 0x1:this['_state']=this[k7(0x30e)][k7(0xaa1)];break;case 0x2:this['_state']=this['touches'][k7(0x5fe)];break;case 0x3:this[k7(0x42f)]=this[k7(0x30e)]['three'];break;}else this['_state']=Q[k7(0x896)];L();}};let y=-0x1;const z=S=>{const k8=k0;if(!this['_domElement']||!this['_enabled']||this[k8(0x3a3)]['wheel']===Q[k8(0x896)])return;if(this['_interactiveArea'][k8(0x5df)]!==0x0||this[k8(0x156)]['top']!==0x0||this['_interactiveArea'][k8(0xb1f)]!==0x1||this[k8(0x156)][k8(0x19e)]!==0x1){const a3=this['_domElement']['getBoundingClientRect'](),a4=S[k8(0x4f8)]/a3[k8(0xb1f)],a5=S[k8(0x5ab)]/a3['height'];if(a4<this['_interactiveArea'][k8(0x5df)]||a4>this['_interactiveArea']['right']||a5<this['_interactiveArea'][k8(0x29e)]||a5>this[k8(0x156)]['bottom'])return;}if(S['preventDefault'](),this['dollyToCursor']||this['mouseButtons'][k8(0x6cd)]===Q[k8(0x9a2)]||this['mouseButtons'][k8(0x6cd)]===Q['TRUCK']){const a6=performance[k8(0x6b5)]();y-a6<0x3e8&&this[k8(0x667)](this[k8(0x8e0)]),y=a6;}const U=xd?-0x1:-0x3,a0=S['deltaMode']===0x1?S[k8(0x711)]/U:S[k8(0x711)]/(U*0xa),a1=this[k8(0x483)]?(S[k8(0x4f8)]-this['_elementRect']['x'])/this['_elementRect'][k8(0xb1f)]*0x2-0x1:0x0,a2=this[k8(0x483)]?(S[k8(0x5ab)]-this['_elementRect']['y'])/this['_elementRect'][k8(0x19e)]*-0x2+0x1:0x0;switch(this['mouseButtons']['wheel']){case Q['ROTATE']:{this[k8(0x293)](S[k8(0x578)],S['deltaY']),this['_isUserControllingRotate']=!0x0;break;}case Q['TRUCK']:{this['_truckInternal'](S['deltaX'],S['deltaY'],!0x1,!0x1),this['_isUserControllingTruck']=!0x0;break;}case Q['SCREEN_PAN']:{this['_truckInternal'](S[k8(0x578)],S['deltaY'],!0x1,!0x0),this[k8(0x31f)]=!0x0;break;}case Q[k8(0x5b4)]:{this['_truckInternal'](S['deltaX'],S['deltaY'],!0x0,!0x1),this[k8(0x250)]=!0x0;break;}case Q[k8(0x245)]:{this['_dollyInternal'](-a0,a1,a2),this[k8(0x833)]=!0x0;break;}case Q[k8(0x80d)]:{this['_zoomInternal'](-a0,a1,a2),this['_isUserControllingZoom']=!0x0;break;}}this['dispatchEvent']({'type':k8(0xa4d)});},B=S=>{const k9=k0;if(!(!this['_domElement']||!this[k9(0x54e)])){if(this[k9(0x3a3)]['right']===Te['ACTION'][k9(0x896)]){const T=S instanceof PointerEvent?S[k9(0x942)]:0x0,U=this['_findPointerById'](T);U&&this[k9(0xac6)](U),this['_domElement']['ownerDocument'][k9(0xcf)]('pointermove',w,{'passive':!0x1}),this[k9(0x8ce)][k9(0x234)]['removeEventListener']('pointerup',x);return;}S[k9(0x58c)]();}},F=S=>{const kb=k0;if(!this['_enabled'])return;if(Vn(this['_activePointers'],_e),this[kb(0x667)](this['_elementRect']),k[kb(0x3fe)](_e),m['copy'](_e),this['_activePointers'][kb(0x3ea)]>=0x2){const T=_e['x']-this['_activePointers'][0x1][kb(0x4f8)],U=_e['y']-this['_activePointers'][0x1]['clientY'],a0=Math[kb(0x691)](T*T+U*U);t['set'](0x0,a0);const a1=(this['_activePointers'][0x0]['clientX']+this[kb(0x56a)][0x1][kb(0x4f8)])*0.5,a2=(this['_activePointers'][0x0][kb(0x5ab)]+this[kb(0x56a)][0x1][kb(0x5ab)])*0.5;m['set'](a1,a2);}if(this['_state']=0x0,!S)this[kb(0x1c9)]&&(this[kb(0x42f)]=this['_state']|this['mouseButtons']['left']);else{if(kb(0x901)in S&&S['pointerType']==='touch')switch(this[kb(0x56a)]['length']){case 0x1:this['_state']=this['touches'][kb(0xaa1)];break;case 0x2:this['_state']=this[kb(0x30e)]['two'];break;case 0x3:this['_state']=this['touches'][kb(0x71b)];break;}else!this[kb(0x1c9)]&&(S['buttons']&ie[kb(0x9fb)])===ie[kb(0x9fb)]&&(this['_state']=this[kb(0x42f)]|this['mouseButtons'][kb(0x5df)]),(S[kb(0x657)]&ie['MIDDLE'])===ie['MIDDLE']&&(this['_state']=this['_state']|this['mouseButtons']['middle']),(S[kb(0x657)]&ie['RIGHT'])===ie['RIGHT']&&(this['_state']=this[kb(0x42f)]|this['mouseButtons']['right']);}((this[kb(0x42f)]&Q[kb(0x9a2)])===Q['ROTATE']||(this['_state']&Q[kb(0x841)])===Q[kb(0x841)]||(this[kb(0x42f)]&Q[kb(0x70e)])===Q['TOUCH_DOLLY_ROTATE']||(this['_state']&Q['TOUCH_ZOOM_ROTATE'])===Q[kb(0x944)])&&(this['_sphericalEnd'][kb(0x29c)]=this[kb(0x870)][kb(0x29c)],this['_sphericalEnd']['phi']=this['_spherical']['phi'],this[kb(0x2a4)]['value']=0x0,this['_phiVelocity'][kb(0xaa2)]=0x0),((this[kb(0x42f)]&Q['TRUCK'])===Q['TRUCK']||(this['_state']&Q[kb(0x6d9)])===Q['SCREEN_PAN']||(this[kb(0x42f)]&Q['TOUCH_TRUCK'])===Q['TOUCH_TRUCK']||(this[kb(0x42f)]&Q['TOUCH_SCREEN_PAN'])===Q['TOUCH_SCREEN_PAN']||(this[kb(0x42f)]&Q['TOUCH_DOLLY_TRUCK'])===Q['TOUCH_DOLLY_TRUCK']||(this[kb(0x42f)]&Q['TOUCH_DOLLY_SCREEN_PAN'])===Q[kb(0x2df)]||(this[kb(0x42f)]&Q[kb(0x35c)])===Q['TOUCH_ZOOM_TRUCK']||(this[kb(0x42f)]&Q['TOUCH_ZOOM_SCREEN_PAN'])===Q['TOUCH_DOLLY_SCREEN_PAN'])&&(this[kb(0x87c)][kb(0x3fe)](this['_target']),this[kb(0x183)][kb(0x9fd)](0x0,0x0,0x0)),((this[kb(0x42f)]&Q['DOLLY'])===Q['DOLLY']||(this['_state']&Q['TOUCH_DOLLY'])===Q[kb(0x65)]||(this[kb(0x42f)]&Q[kb(0x8ee)])===Q[kb(0x8ee)]||(this[kb(0x42f)]&Q[kb(0x2df)])===Q['TOUCH_DOLLY_SCREEN_PAN']||(this[kb(0x42f)]&Q['TOUCH_DOLLY_OFFSET'])===Q['TOUCH_DOLLY_OFFSET']||(this[kb(0x42f)]&Q[kb(0x70e)])===Q['TOUCH_DOLLY_ROTATE'])&&(this['_sphericalEnd']['radius']=this[kb(0x870)]['radius'],this[kb(0x628)]['value']=0x0),((this['_state']&Q['ZOOM'])===Q[kb(0x80d)]||(this['_state']&Q[kb(0x532)])===Q[kb(0x532)]||(this['_state']&Q[kb(0x35c)])===Q['TOUCH_ZOOM_TRUCK']||(this['_state']&Q[kb(0x96e)])===Q[kb(0x96e)]||(this['_state']&Q['TOUCH_ZOOM_OFFSET'])===Q['TOUCH_ZOOM_OFFSET']||(this[kb(0x42f)]&Q[kb(0x944)])===Q[kb(0x944)])&&(this[kb(0xb21)]=this['_zoom'],this['_zoomVelocity']['value']=0x0),((this['_state']&Q['OFFSET'])===Q['OFFSET']||(this[kb(0x42f)]&Q[kb(0x55c)])===Q[kb(0x55c)]||(this[kb(0x42f)]&Q[kb(0x91d)])===Q['TOUCH_DOLLY_OFFSET']||(this[kb(0x42f)]&Q[kb(0x8b3)])===Q[kb(0x8b3)])&&(this[kb(0x4aa)][kb(0x3fe)](this['_focalOffset']),this['_focalOffsetVelocity'][kb(0x9fd)](0x0,0x0,0x0)),this[kb(0x769)]({'type':'controlstart'});},H=()=>{const kf=k0;if(!this[kf(0x54e)]||!this[kf(0x3ff)])return;this['_dragNeedsUpdate']=!0x1,Vn(this[kf(0x56a)],_e);const U=this[kf(0x8ce)]&&this['_domElement']['ownerDocument']['pointerLockElement']===this['_domElement']?this['_lockedPointer']||this[kf(0x56a)][0x0]:null,a0=U?-U[kf(0x578)]:m['x']-_e['x'],a1=U?-U[kf(0x711)]:m['y']-_e['y'];if(m[kf(0x3fe)](_e),((this['_state']&Q[kf(0x9a2)])===Q['ROTATE']||(this['_state']&Q[kf(0x841)])===Q['TOUCH_ROTATE']||(this['_state']&Q[kf(0x70e)])===Q[kf(0x70e)]||(this['_state']&Q[kf(0x944)])===Q[kf(0x944)])&&(this['_rotateInternal'](a0,a1),this['_isUserControllingRotate']=!0x0),(this['_state']&Q['DOLLY'])===Q['DOLLY']||(this[kf(0x42f)]&Q['ZOOM'])===Q[kf(0x80d)]){const a2=this[kf(0x483)]?(k['x']-this[kf(0x8e0)]['x'])/this[kf(0x8e0)][kf(0xb1f)]*0x2-0x1:0x0,a3=this[kf(0x483)]?(k['y']-this['_elementRect']['y'])/this[kf(0x8e0)][kf(0x19e)]*-0x2+0x1:0x0,a4=this[kf(0x5a3)]?-0x1:0x1;(this[kf(0x42f)]&Q['DOLLY'])===Q['DOLLY']?(this['_dollyInternal'](a4*a1*Fs,a2,a3),this[kf(0x833)]=!0x0):(this['_zoomInternal'](a4*a1*Fs,a2,a3),this[kf(0xa9e)]=!0x0);}if((this['_state']&Q[kf(0x65)])===Q['TOUCH_DOLLY']||(this[kf(0x42f)]&Q['TOUCH_ZOOM'])===Q[kf(0x532)]||(this['_state']&Q[kf(0x8ee)])===Q['TOUCH_DOLLY_TRUCK']||(this['_state']&Q['TOUCH_ZOOM_TRUCK'])===Q['TOUCH_ZOOM_TRUCK']||(this['_state']&Q[kf(0x2df)])===Q[kf(0x2df)]||(this[kf(0x42f)]&Q[kf(0x96e)])===Q['TOUCH_ZOOM_SCREEN_PAN']||(this['_state']&Q['TOUCH_DOLLY_OFFSET'])===Q['TOUCH_DOLLY_OFFSET']||(this['_state']&Q[kf(0x8b3)])===Q[kf(0x8b3)]||(this['_state']&Q[kf(0x70e)])===Q['TOUCH_DOLLY_ROTATE']||(this[kf(0x42f)]&Q['TOUCH_ZOOM_ROTATE'])===Q['TOUCH_ZOOM_ROTATE']){const a5=_e['x']-this['_activePointers'][0x1]['clientX'],a6=_e['y']-this['_activePointers'][0x1][kf(0x5ab)],a7=Math['sqrt'](a5*a5+a6*a6),a8=t['y']-a7;t['set'](0x0,a7);const a9=this['dollyToCursor']?(m['x']-this['_elementRect']['x'])/this[kf(0x8e0)][kf(0xb1f)]*0x2-0x1:0x0,ab=this['dollyToCursor']?(m['y']-this[kf(0x8e0)]['y'])/this['_elementRect'][kf(0x19e)]*-0x2+0x1:0x0;(this[kf(0x42f)]&Q['TOUCH_DOLLY'])===Q[kf(0x65)]||(this['_state']&Q[kf(0x70e)])===Q[kf(0x70e)]||(this['_state']&Q[kf(0x8ee)])===Q[kf(0x8ee)]||(this['_state']&Q['TOUCH_DOLLY_SCREEN_PAN'])===Q[kf(0x2df)]||(this[kf(0x42f)]&Q[kf(0x91d)])===Q['TOUCH_DOLLY_OFFSET']?(this[kf(0xa80)](a8*Fs,a9,ab),this[kf(0x833)]=!0x0):(this['_zoomInternal'](a8*Fs,a9,ab),this['_isUserControllingZoom']=!0x0);}((this[kf(0x42f)]&Q['TRUCK'])===Q[kf(0x8a5)]||(this[kf(0x42f)]&Q[kf(0x792)])===Q[kf(0x792)]||(this['_state']&Q[kf(0x8ee)])===Q['TOUCH_DOLLY_TRUCK']||(this['_state']&Q[kf(0x35c)])===Q[kf(0x35c)])&&(this[kf(0x1a0)](a0,a1,!0x1,!0x1),this['_isUserControllingTruck']=!0x0),((this[kf(0x42f)]&Q['SCREEN_PAN'])===Q[kf(0x6d9)]||(this[kf(0x42f)]&Q[kf(0x330)])===Q['TOUCH_SCREEN_PAN']||(this[kf(0x42f)]&Q['TOUCH_DOLLY_SCREEN_PAN'])===Q[kf(0x2df)]||(this['_state']&Q['TOUCH_ZOOM_SCREEN_PAN'])===Q[kf(0x96e)])&&(this[kf(0x1a0)](a0,a1,!0x1,!0x0),this['_isUserControllingTruck']=!0x0),((this[kf(0x42f)]&Q[kf(0x5b4)])===Q[kf(0x5b4)]||(this[kf(0x42f)]&Q['TOUCH_OFFSET'])===Q['TOUCH_OFFSET']||(this[kf(0x42f)]&Q['TOUCH_DOLLY_OFFSET'])===Q['TOUCH_DOLLY_OFFSET']||(this['_state']&Q[kf(0x8b3)])===Q['TOUCH_ZOOM_OFFSET'])&&(this[kf(0x1a0)](a0,a1,!0x0,!0x1),this[kf(0x250)]=!0x0),this['dispatchEvent']({'type':'control'});},L=()=>{const ki=k0;Vn(this['_activePointers'],_e),m['copy'](_e),this[ki(0x3ff)]=!0x1,(this['_activePointers'][ki(0x3ea)]===0x0||this[ki(0x56a)]['length']===0x1&&this['_activePointers'][0x0]===this['_lockedPointer'])&&(this['_isDragging']=!0x1),this[ki(0x56a)][ki(0x3ea)]===0x0&&this['_domElement']&&(this[ki(0x8ce)]['ownerDocument'][ki(0xcf)](ki(0xacd),w,{'passive':!0x1}),this['_domElement']['ownerDocument'][ki(0xcf)](ki(0x767),x),this['dispatchEvent']({'type':'controlend'}));};this[k0(0x3b5)]=()=>{const kj=k0;!this['_enabled']||!this[kj(0x8ce)]||(this[kj(0x6c7)](),this[kj(0x1c9)]={'pointerId':-0x1,'clientX':0x0,'clientY':0x0,'deltaX':0x0,'deltaY':0x0,'mouseButton':null},this[kj(0x56a)]['push'](this['_lockedPointer']),this[kj(0x8ce)]['ownerDocument'][kj(0xcf)](kj(0xacd),w,{'passive':!0x1}),this['_domElement'][kj(0x234)][kj(0xcf)](kj(0x767),x),this['_domElement'][kj(0x294)](),this['_domElement'][kj(0x234)][kj(0x696)]('pointerlockchange',N),this['_domElement'][kj(0x234)]['addEventListener'](kj(0x508),R),this[kj(0x8ce)][kj(0x234)][kj(0x696)](kj(0xacd),w,{'passive':!0x1}),this['_domElement']['ownerDocument']['addEventListener'](kj(0x767),x),F());},this[k0(0x117)]=()=>{const kk=k0;this['_lockedPointer']!==null&&(this['_disposePointer'](this[kk(0x1c9)]),this['_lockedPointer']=null),this[kk(0x8ce)]?.['ownerDocument'][kk(0x967)](),this[kk(0x8ce)]?.[kk(0x234)]['removeEventListener']('pointerlockchange',N),this[kk(0x8ce)]?.[kk(0x234)]['removeEventListener']('pointerlockerror',R),this[kk(0x6c7)]();};const N=()=>{const km=k0;this[km(0x8ce)]&&this['_domElement'][km(0x234)]['pointerLockElement']===this['_domElement']||this[km(0x117)]();},R=()=>{this['unlockPointer']();};this[k0(0x37c)]=S=>{const kp=k0;this[kp(0x8ce)]=S,this[kp(0x8ce)][kp(0xa1a)]['touchAction']='none',this[kp(0x8ce)]['style'][kp(0x9db)]='none',this['_domElement'][kp(0xa1a)][kp(0x49f)]=kp(0x4b9),this['_domElement']['addEventListener'](kp(0x2c0),v),this[kp(0x8ce)][kp(0x696)]('pointercancel',x),this['_domElement']['addEventListener'](kp(0x6cd),z,{'passive':!0x1}),this['_domElement'][kp(0x696)](kp(0xe0),B);},this[k0(0x11e)]=()=>{const kq=k0;this[kq(0x8ce)]&&(this[kq(0x8ce)][kq(0xa1a)][kq(0x35b)]='',this[kq(0x8ce)][kq(0xa1a)]['userSelect']='',this['_domElement']['style']['webkitUserSelect']='',this['_domElement'][kq(0xcf)]('pointerdown',v),this['_domElement']['removeEventListener'](kq(0x179),x),this[kq(0x8ce)][kq(0xcf)](kq(0x6cd),z,{'passive':!0x1}),this[kq(0x8ce)][kq(0xcf)]('contextmenu',B),this[kq(0x8ce)]['ownerDocument'][kq(0xcf)]('pointermove',w,{'passive':!0x1}),this['_domElement']['ownerDocument']['removeEventListener'](kq(0x767),x),this['_domElement']['ownerDocument']['removeEventListener'](kq(0x9b5),N),this['_domElement'][kq(0x234)]['removeEventListener'](kq(0x508),R));},this['cancel']=()=>{const kv=k0;this['_state']!==Q['NONE']&&(this[kv(0x42f)]=Q['NONE'],this[kv(0x56a)][kv(0x3ea)]=0x0,L());},j&&this[k0(0xcd)](j),this[k0(0x79c)](0x0);}static['install'](b){const kw=a0bL;G=b['THREE'],qo=Object[kw(0x5cf)](new G['Vector3'](0x0,0x0,0x0)),Os=Object['freeze'](new G['Vector3'](0x0,0x1,0x0)),Yn=Object['freeze'](new G['Vector3'](0x0,0x0,0x1)),_e=new G[(kw(0x996))](),q=new G[(kw(0xa5f))](),Y=new G[(kw(0xa5f))](),ri=new G['Vector3'](),Wi=new G[(kw(0xa5f))](),st=new G['Vector3'](),nt=new G[(kw(0xa5f))](),Ft=new G['Vector3'](),Vo=new G['Vector3'](),jo=new G[(kw(0xa5f))](),Re=new G['Spherical'](),Ji=new G[(kw(0x52a))](),oi=new G[(kw(0x10a))](),Yo=new G['Box3'](),Kn=new G['Sphere'](),Ko=new G['Quaternion'](),Wn=new G[(kw(0x6c2))](),Jn=new G[(kw(0x114))](),Ns=new G['Raycaster']();}static get[a0bL(0x458)](){return Q;}get[a0bL(0x710)](){return this['_camera'];}set['camera'](b){const kx=a0bL;this['_camera']=b,this['updateCameraUp'](),this['_camera']['updateProjectionMatrix'](),this[kx(0x66f)](),this[kx(0x7a2)]=!0x0;}get[a0bL(0x2d3)](){const ky=a0bL;return this[ky(0x54e)];}set[a0bL(0x2d3)](b){const kz=a0bL;this[kz(0x54e)]=b,this[kz(0x8ce)]&&(b?(this[kz(0x8ce)]['style']['touchAction']='none',this['_domElement']['style']['userSelect']=kz(0x4b9),this[kz(0x8ce)]['style'][kz(0x49f)]=kz(0x4b9)):(this['cancel'](),this[kz(0x8ce)][kz(0xa1a)]['touchAction']='',this['_domElement'][kz(0xa1a)]['userSelect']='',this[kz(0x8ce)][kz(0xa1a)][kz(0x49f)]=''));}get[a0bL(0x35a)](){return!this['_hasRested'];}get[a0bL(0x87d)](){const kB=a0bL;return this[kB(0x42f)];}get['distance'](){const kC=a0bL;return this[kC(0x870)][kC(0x3eb)];}set['distance'](b){const kD=a0bL;this['_spherical'][kD(0x3eb)]===b&&this['_sphericalEnd'][kD(0x3eb)]===b||(this[kD(0x870)][kD(0x3eb)]=b,this[kD(0x6e0)]['radius']=b,this[kD(0x7a2)]=!0x0);}get[a0bL(0x3f9)](){const kE=a0bL;return this[kE(0x870)]['theta'];}set[a0bL(0x3f9)](b){const kF=a0bL;this['_spherical'][kF(0x29c)]===b&&this[kF(0x6e0)][kF(0x29c)]===b||(this[kF(0x870)][kF(0x29c)]=b,this[kF(0x6e0)]['theta']=b,this['_needsUpdate']=!0x0);}get[a0bL(0x949)](){const kG=a0bL;return this[kG(0x870)]['phi'];}set[a0bL(0x949)](b){const kH=a0bL;this['_spherical']['phi']===b&&this['_sphericalEnd'][kH(0x665)]===b||(this['_spherical'][kH(0x665)]=b,this['_sphericalEnd']['phi']=b,this['_needsUpdate']=!0x0);}get['boundaryEnclosesCamera'](){return this['_boundaryEnclosesCamera'];}set['boundaryEnclosesCamera'](b){const kI=a0bL;this['_boundaryEnclosesCamera']=b,this[kI(0x7a2)]=!0x0;}set[a0bL(0x768)](b){const kJ=a0bL;this[kJ(0x156)]['width']=We(b[kJ(0xb1f)],0x0,0x1),this['_interactiveArea'][kJ(0x19e)]=We(b['height'],0x0,0x1),this['_interactiveArea']['x']=We(b['x'],0x0,0x1-this['_interactiveArea'][kJ(0xb1f)]),this[kJ(0x156)]['y']=We(b['y'],0x0,0x1-this[kJ(0x156)]['height']);}['addEventListener'](b,c){const kK=a0bL;super[kK(0x696)](b,c);}[a0bL(0xcf)](b,c){const kL=a0bL;super[kL(0xcf)](b,c);}[a0bL(0x13e)](b,c,d=!0x1){const kM=a0bL;return this['rotateTo'](this['_sphericalEnd'][kM(0x29c)]+b,this[kM(0x6e0)][kM(0x665)]+c,d);}[a0bL(0x71e)](b,c=!0x1){const kN=a0bL;return this['rotateTo'](b,this['_sphericalEnd'][kN(0x665)],c);}['rotatePolarTo'](b,c=!0x1){const kO=a0bL;return this[kO(0x49e)](this['_sphericalEnd']['theta'],b,c);}['rotateTo'](b,d,f=!0x1){const kP=a0bL;this[kP(0x5a5)]=!0x1;const g=We(b,this['minAzimuthAngle'],this['maxAzimuthAngle']),h=We(d,this['minPolarAngle'],this['maxPolarAngle']);this[kP(0x6e0)]['theta']=g,this['_sphericalEnd']['phi']=h,this['_sphericalEnd'][kP(0x3b4)](),this['_needsUpdate']=!0x0,f||(this[kP(0x870)][kP(0x29c)]=this[kP(0x6e0)]['theta'],this[kP(0x870)][kP(0x665)]=this[kP(0x6e0)][kP(0x665)]);const i=!f||K(this[kP(0x870)][kP(0x29c)],this[kP(0x6e0)]['theta'],this[kP(0x4ca)])&&K(this[kP(0x870)]['phi'],this['_sphericalEnd'][kP(0x665)],this['restThreshold']);return this[kP(0x692)](i);}['dolly'](b,c=!0x1){const kQ=a0bL;return this[kQ(0x828)](this[kQ(0x6e0)]['radius']-b,c);}[a0bL(0x828)](b,c=!0x1){const kR=a0bL;return this[kR(0x833)]=!0x1,this['_lastDollyDirection']=si[kR(0x896)],this['_changedDolly']=0x0,this['_dollyToNoClamp'](We(b,this['minDistance'],this['maxDistance']),c);}['_dollyToNoClamp'](b,d=!0x1){const kS=a0bL,f=this['_sphericalEnd'][kS(0x3eb)];if(this[kS(0x6dd)]['length']>=0x1){const h=this[kS(0x2d1)](),i=K(h,this[kS(0x870)][kS(0x3eb)]);if(!(f>b)&&i)return Promise[kS(0x1e6)]();this[kS(0x6e0)]['radius']=Math['min'](b,h);}else this[kS(0x6e0)][kS(0x3eb)]=b;this['_needsUpdate']=!0x0,d||(this[kS(0x870)][kS(0x3eb)]=this[kS(0x6e0)][kS(0x3eb)]);const g=!d||K(this[kS(0x870)][kS(0x3eb)],this['_sphericalEnd'][kS(0x3eb)],this[kS(0x4ca)]);return this[kS(0x692)](g);}['dollyInFixed'](b,c=!0x1){const kT=a0bL;this['_targetEnd'][kT(0x577)](this['_getCameraDirection'](Wi)[kT(0x433)](b)),c||this['_target'][kT(0x3fe)](this[kT(0x87c)]);const d=!c||K(this['_target']['x'],this[kT(0x87c)]['x'],this[kT(0x4ca)])&&K(this['_target']['y'],this[kT(0x87c)]['y'],this[kT(0x4ca)])&&K(this['_target']['z'],this[kT(0x87c)]['z'],this['restThreshold']);return this['_createOnRestPromise'](d);}['zoom'](b,c=!0x1){const kU=a0bL;return this[kU(0x815)](this['_zoomEnd']+b,c);}[a0bL(0x815)](b,c=!0x1){const kV=a0bL;this['_isUserControllingZoom']=!0x1,this['_zoomEnd']=We(b,this[kV(0x100)],this[kV(0x758)]),this[kV(0x7a2)]=!0x0,c||(this['_zoom']=this['_zoomEnd']);const d=!c||K(this[kV(0x19d)],this[kV(0xb21)],this['restThreshold']);return this['_changedZoom']=0x0,this['_createOnRestPromise'](d);}[a0bL(0x2e1)](b,c,d=!0x1){const kW=a0bL;return console[kW(0x5fb)]('`pan`\x20has\x20been\x20renamed\x20to\x20`truck`'),this[kW(0x7c)](b,c,d);}['truck'](b,c,d=!0x1){const kX=a0bL;this['_camera'][kX(0x78)](),st[kX(0xaf7)](this[kX(0x1f6)]['matrix'],0x0),nt['setFromMatrixColumn'](this['_camera'][kX(0x87e)],0x1),st[kX(0x433)](b),nt['multiplyScalar'](-c);const f=q['copy'](st)[kX(0x577)](nt),g=Y[kX(0x3fe)](this[kX(0x87c)])[kX(0x577)](f);return this['moveTo'](g['x'],g['y'],g['z'],d);}['forward'](b,c=!0x1){const kY=a0bL;q['setFromMatrixColumn'](this[kY(0x1f6)]['matrix'],0x0),q['crossVectors'](this[kY(0x1f6)]['up'],q),q[kY(0x433)](b);const d=Y['copy'](this[kY(0x87c)])[kY(0x577)](q);return this['moveTo'](d['x'],d['y'],d['z'],c);}[a0bL(0xa67)](b,c=!0x1){const kZ=a0bL;return q['copy'](this[kZ(0x1f6)]['up'])['multiplyScalar'](b),this[kZ(0x93a)](this['_targetEnd']['x']+q['x'],this[kZ(0x87c)]['y']+q['y'],this[kZ(0x87c)]['z']+q['z'],c);}[a0bL(0x93a)](b,d,f,g=!0x1){const l0=a0bL;this[l0(0x31f)]=!0x1;const h=q[l0(0x9fd)](b,d,f)['sub'](this[l0(0x87c)]);this[l0(0x840)](this['_targetEnd'],h,this['boundaryFriction']),this['_needsUpdate']=!0x0,g||this[l0(0x623)]['copy'](this['_targetEnd']);const i=!g||K(this[l0(0x623)]['x'],this['_targetEnd']['x'],this[l0(0x4ca)])&&K(this[l0(0x623)]['y'],this[l0(0x87c)]['y'],this[l0(0x4ca)])&&K(this[l0(0x623)]['z'],this[l0(0x87c)]['z'],this['restThreshold']);return this['_createOnRestPromise'](i);}['lookInDirectionOf'](b,c,d,f=!0x1){const l1=a0bL,g=q['set'](b,c,d)[l1(0x38c)](this[l1(0x87c)])[l1(0x6ff)]()['multiplyScalar'](-this[l1(0x6e0)]['radius'])[l1(0x577)](this[l1(0x87c)]);return this['setPosition'](g['x'],g['y'],g['z'],f);}['fitToBox'](i,j,{cover:k=!0x1,paddingLeft:t=0x0,paddingRight:v=0x0,paddingBottom:z=0x0,paddingTop:F=0x0}={}){const l2=a0bL,H=[],L=i['isBox3']?oi['copy'](i):oi['setFromObject'](i);L[l2(0x207)]()&&(console['warn'](l2(0x9be)),Promise[l2(0x1e6)]());const N=zo(this['_sphericalEnd']['theta'],Go),R=zo(this[l2(0x6e0)]['phi'],Go);H['push'](this[l2(0x49e)](N,R,j));const S=q['setFromSpherical'](this['_sphericalEnd'])['normalize'](),T=Ko[l2(0x296)](S,Yn),U=K(Math['abs'](S['y']),0x1);U&&T['multiply'](Wn[l2(0x59e)](Os,N)),T[l2(0x26b)](this['_yAxisUpSpaceInverse']);const a0=Yo['makeEmpty']();Y['copy'](L['min'])[l2(0x224)](T),a0[l2(0xa91)](Y),Y['copy'](L['min'])['setX'](L[l2(0x36b)]['x'])['applyQuaternion'](T),a0['expandByPoint'](Y),Y[l2(0x3fe)](L[l2(0x5d2)])[l2(0x4d1)](L['max']['y'])[l2(0x224)](T),a0[l2(0xa91)](Y),Y[l2(0x3fe)](L[l2(0x36b)])['setZ'](L['min']['z'])[l2(0x224)](T),a0['expandByPoint'](Y),Y['copy'](L[l2(0x5d2)])[l2(0x8c5)](L[l2(0x36b)]['z'])['applyQuaternion'](T),a0['expandByPoint'](Y),Y[l2(0x3fe)](L[l2(0x36b)])[l2(0x4d1)](L[l2(0x5d2)]['y'])['applyQuaternion'](T),a0['expandByPoint'](Y),Y['copy'](L[l2(0x36b)])['setX'](L[l2(0x5d2)]['x'])['applyQuaternion'](T),a0[l2(0xa91)](Y),Y[l2(0x3fe)](L[l2(0x36b)])['applyQuaternion'](T),a0[l2(0xa91)](Y),a0['min']['x']-=t,a0['min']['y']-=z,a0[l2(0x36b)]['x']+=v,a0['max']['y']+=F,T[l2(0x296)](Yn,S),U&&T['premultiply'](Wn[l2(0x1bf)]()),T['premultiply'](this['_yAxisUpSpace']);const a1=a0[l2(0x7af)](q),a2=a0[l2(0x248)](Y)['applyQuaternion'](T);if(kt(this[l2(0x1f6)])){const a3=this[l2(0x7c0)](a1['x'],a1['y'],a1['z'],k);H[l2(0x4f5)](this['moveTo'](a2['x'],a2['y'],a2['z'],j)),H[l2(0x4f5)](this[l2(0x828)](a3,j)),H[l2(0x4f5)](this[l2(0x149)](0x0,0x0,0x0,j));}else{if(_t(this[l2(0x1f6)])){const a4=this[l2(0x1f6)],a5=a4['right']-a4[l2(0x5df)],a6=a4['top']-a4[l2(0x342)],a7=k?Math['max'](a5/a1['x'],a6/a1['y']):Math[l2(0x5d2)](a5/a1['x'],a6/a1['y']);H[l2(0x4f5)](this[l2(0x93a)](a2['x'],a2['y'],a2['z'],j)),H[l2(0x4f5)](this[l2(0x815)](a7,j)),H['push'](this['setFocalOffset'](0x0,0x0,0x0,j));}}return Promise[l2(0x90)](H);}['fitToSphere'](b,d){const l3=a0bL,f=[],g='isObject3D'in b?Te[l3(0x444)](b,Kn):Kn[l3(0x3fe)](b);if(f[l3(0x4f5)](this[l3(0x93a)](g['center']['x'],g[l3(0xabb)]['y'],g[l3(0xabb)]['z'],d)),kt(this['_camera'])){const i=this['getDistanceToFitSphere'](g[l3(0x3eb)]);f['push'](this[l3(0x828)](i,d));}else{if(_t(this['_camera'])){const j=this[l3(0x1f6)][l3(0x9ca)]-this[l3(0x1f6)]['left'],k=this[l3(0x1f6)]['top']-this['_camera']['bottom'],m=0x2*g['radius'],p=Math['min'](j/m,k/m);f[l3(0x4f5)](this['zoomTo'](p,d));}}return f[l3(0x4f5)](this['setFocalOffset'](0x0,0x0,0x0,d)),Promise[l3(0x90)](f);}['setLookAt'](b,f,g,i,j,k,m=!0x1){const l4=a0bL;this['_isUserControllingRotate']=!0x1,this[l4(0x833)]=!0x1,this[l4(0x31f)]=!0x1,this[l4(0x602)]=si[l4(0x896)],this[l4(0x5a4)]=0x0;const p=Y['set'](i,j,k),t=q[l4(0x9fd)](b,f,g);this['_targetEnd'][l4(0x3fe)](p),this['_sphericalEnd'][l4(0xa2d)](t[l4(0x38c)](p)[l4(0x224)](this[l4(0x2de)])),this['normalizeRotations'](),this[l4(0x7a2)]=!0x0,m||(this['_target']['copy'](this[l4(0x87c)]),this['_spherical']['copy'](this['_sphericalEnd']));const u=!m||K(this['_target']['x'],this['_targetEnd']['x'],this['restThreshold'])&&K(this['_target']['y'],this[l4(0x87c)]['y'],this['restThreshold'])&&K(this['_target']['z'],this[l4(0x87c)]['z'],this[l4(0x4ca)])&&K(this['_spherical']['theta'],this[l4(0x6e0)]['theta'],this[l4(0x4ca)])&&K(this['_spherical']['phi'],this[l4(0x6e0)]['phi'],this['restThreshold'])&&K(this[l4(0x870)]['radius'],this['_sphericalEnd']['radius'],this['restThreshold']);return this['_createOnRestPromise'](u);}[a0bL(0x396)](i,j,k,t,z,F,H,L,N,R,S,T,U,a0=!0x1){const l5=a0bL;this[l5(0x5a5)]=!0x1,this['_isUserControllingDolly']=!0x1,this[l5(0x31f)]=!0x1,this['_lastDollyDirection']=si[l5(0x896)],this[l5(0x5a4)]=0x0;const a1=q['set'](t,z,F),a2=Y['set'](i,j,k);Re[l5(0xa2d)](a2[l5(0x38c)](a1)[l5(0x224)](this[l5(0x2de)]));const a3=ri[l5(0x9fd)](R,S,T),a4=Y['set'](H,L,N);Ji[l5(0xa2d)](a4[l5(0x38c)](a3)[l5(0x224)](this['_yAxisUpSpace'])),this[l5(0x87c)]['copy'](a1[l5(0xacf)](a3,U));const a5=Ji[l5(0x29c)]-Re['theta'],a6=Ji['phi']-Re['phi'],a7=Ji[l5(0x3eb)]-Re[l5(0x3eb)];this['_sphericalEnd']['set'](Re['radius']+a7*U,Re[l5(0x665)]+a6*U,Re[l5(0x29c)]+a5*U),this['normalizeRotations'](),this['_needsUpdate']=!0x0,a0||(this[l5(0x623)][l5(0x3fe)](this['_targetEnd']),this['_spherical'][l5(0x3fe)](this[l5(0x6e0)]));const a8=!a0||K(this['_target']['x'],this[l5(0x87c)]['x'],this['restThreshold'])&&K(this['_target']['y'],this[l5(0x87c)]['y'],this[l5(0x4ca)])&&K(this['_target']['z'],this['_targetEnd']['z'],this[l5(0x4ca)])&&K(this['_spherical']['theta'],this[l5(0x6e0)][l5(0x29c)],this[l5(0x4ca)])&&K(this[l5(0x870)][l5(0x665)],this[l5(0x6e0)]['phi'],this[l5(0x4ca)])&&K(this[l5(0x870)]['radius'],this['_sphericalEnd']['radius'],this['restThreshold']);return this['_createOnRestPromise'](a8);}['setPosition'](b,c,d,f=!0x1){const l6=a0bL;return this[l6(0x732)](b,c,d,this[l6(0x87c)]['x'],this['_targetEnd']['y'],this['_targetEnd']['z'],f);}[a0bL(0x24b)](b,d,f,g=!0x1){const l7=a0bL,h=this[l7(0xa89)](q),i=this['setLookAt'](h['x'],h['y'],h['z'],b,d,f,g);return this['_sphericalEnd'][l7(0x665)]=We(this[l7(0x6e0)]['phi'],this['minPolarAngle'],this['maxPolarAngle']),i;}['setFocalOffset'](b,c,d,f=!0x1){const l8=a0bL;this[l8(0x250)]=!0x1,this['_focalOffsetEnd'][l8(0x9fd)](b,c,d),this['_needsUpdate']=!0x0,f||this['_focalOffset'][l8(0x3fe)](this['_focalOffsetEnd']);const g=!f||K(this[l8(0x2a6)]['x'],this['_focalOffsetEnd']['x'],this['restThreshold'])&&K(this['_focalOffset']['y'],this['_focalOffsetEnd']['y'],this['restThreshold'])&&K(this['_focalOffset']['z'],this['_focalOffsetEnd']['z'],this[l8(0x4ca)]);return this['_createOnRestPromise'](g);}[a0bL(0x205)](b,d,f){const l9=a0bL;this[l9(0x1f6)][l9(0x2c7)](),st[l9(0xaf7)](this['_camera'][l9(0x9c0)],0x0),nt[l9(0xaf7)](this[l9(0x1f6)][l9(0x9c0)],0x1),Ft[l9(0xaf7)](this[l9(0x1f6)]['matrixWorldInverse'],0x2);const g=q['set'](b,d,f),h=g['distanceTo'](this['_camera'][l9(0x1b7)]),i=g['sub'](this['_camera']['position']);st[l9(0x433)](i['x']),nt['multiplyScalar'](i['y']),Ft['multiplyScalar'](i['z']),q[l9(0x3fe)](st)[l9(0x577)](nt)['add'](Ft),q['z']=q['z']+h,this[l9(0x828)](h,!0x1),this['setFocalOffset'](-q['x'],q['y'],-q['z'],!0x1),this[l9(0x93a)](b,d,f,!0x1);}[a0bL(0x61c)](b){const lb=a0bL;if(!b){this['_boundary'][lb(0x5d2)][lb(0x9fd)](-0x1/0x0,-0x1/0x0,-0x1/0x0),this[lb(0x130)]['max']['set'](0x1/0x0,0x1/0x0,0x1/0x0),this['_needsUpdate']=!0x0;return;}this[lb(0x130)]['copy'](b),this[lb(0x130)][lb(0x4f9)](this[lb(0x87c)],this[lb(0x87c)]),this[lb(0x7a2)]=!0x0;}[a0bL(0x930)](b,c,d,f){const le=a0bL;if(b===null){this['_viewport']=null;return;}this['_viewport']=this['_viewport']||new G[(le(0x7aa))](),typeof b=='number'?this['_viewport']['set'](b,c,d,f):this[le(0x15f)]['copy'](b);}['getDistanceToFitBox'](b,d,f,g=!0x1){const lj=a0bL;if(jn(this['_camera'],'getDistanceToFitBox'))return this[lj(0x870)]['radius'];const h=b/d,i=this['_camera']['getEffectiveFOV']()*ji,j=this[lj(0x1f6)]['aspect'];return((g?h>j:h<j)?d:b/j)*0.5/Math[lj(0x3ca)](i*0.5)+f*0.5;}['getDistanceToFitSphere'](b){const lk=a0bL;if(jn(this['_camera'],'getDistanceToFitSphere'))return this[lk(0x870)]['radius'];const c=this['_camera'][lk(0xa2b)]()*ji,d=Math['atan'](Math[lk(0x3ca)](c*0.5)*this[lk(0x1f6)][lk(0xb24)])*0x2,f=0x1<this[lk(0x1f6)][lk(0xb24)]?c:d;return b/Math[lk(0xa6b)](f*0.5);}[a0bL(0x67)](b,c=!0x0){const lm=a0bL;return(b&&b[lm(0x1c8)]?b:new G[(lm(0xa5f))]())['copy'](c?this['_targetEnd']:this['_target']);}['getPosition'](b,c=!0x0){const ln=a0bL;return(b&&b['isVector3']?b:new G[(ln(0xa5f))]())['setFromSpherical'](c?this['_sphericalEnd']:this[ln(0x870)])[ln(0x224)](this[ln(0x67d)])[ln(0x577)](c?this['_targetEnd']:this['_target']);}['getSpherical'](b,c=!0x0){const lp=a0bL;return(b||new G[(lp(0x52a))]())[lp(0x3fe)](c?this[lp(0x6e0)]:this['_spherical']);}[a0bL(0xb02)](b,c=!0x0){const lq=a0bL;return(b&&b[lq(0x1c8)]?b:new G['Vector3']())['copy'](c?this['_focalOffsetEnd']:this[lq(0x2a6)]);}[a0bL(0x78e)](){const lv=a0bL;this[lv(0x6e0)]['theta']=this[lv(0x6e0)][lv(0x29c)]%ni,this[lv(0x6e0)]['theta']<0x0&&(this[lv(0x6e0)]['theta']+=ni),this[lv(0x870)]['theta']+=ni*Math[lv(0x43f)]((this['_sphericalEnd']['theta']-this[lv(0x870)][lv(0x29c)])/ni);}[a0bL(0xa4a)](){const lw=a0bL;this[lw(0x2a6)]['copy'](this[lw(0x4aa)]),this['_target']['copy'](this[lw(0x87c)]),this['_spherical']['copy'](this['_sphericalEnd']),this[lw(0x19d)]=this[lw(0xb21)];}[a0bL(0x95e)](b=!0x1){const lx=a0bL;if(!K(this[lx(0x1f6)]['up']['x'],this['_cameraUp0']['x'])||!K(this['_camera']['up']['y'],this[lx(0x5a0)]['y'])||!K(this['_camera']['up']['z'],this['_cameraUp0']['z'])){this[lx(0x1f6)]['up'][lx(0x3fe)](this['_cameraUp0']);const d=this['getPosition'](q);this['updateCameraUp'](),this[lx(0xa84)](d['x'],d['y'],d['z']);}const c=[this[lx(0x732)](this['_position0']['x'],this['_position0']['y'],this['_position0']['z'],this['_target0']['x'],this['_target0']['y'],this['_target0']['z'],b),this[lx(0x149)](this['_focalOffset0']['x'],this['_focalOffset0']['y'],this[lx(0x699)]['z'],b),this[lx(0x815)](this[lx(0xb20)],b)];return Promise[lx(0x90)](c);}[a0bL(0x51d)](){const ly=a0bL;this['_cameraUp0'][ly(0x3fe)](this[ly(0x1f6)]['up']),this[ly(0x67)](this[ly(0x69d)]),this['getPosition'](this['_position0']),this['_zoom0']=this[ly(0x19d)],this['_focalOffset0']['copy'](this['_focalOffset']);}['updateCameraUp'](){const lz=a0bL;this[lz(0x2de)]['setFromUnitVectors'](this['_camera']['up'],Os),this['_yAxisUpSpaceInverse'][lz(0x3fe)](this[lz(0x2de)])[lz(0x1bf)]();}[a0bL(0x9ba)](){const lB=a0bL,b=q['subVectors'](this['_target'],this[lB(0x1f6)]['position'])['normalize'](),c=Y['crossVectors'](b,this['_camera']['up']);this[lB(0x1f6)]['up']['crossVectors'](c,b)[lB(0x6ff)](),this['_camera']['updateMatrixWorld']();const d=this[lB(0xa89)](q);this[lB(0x5db)](),this[lB(0xa84)](d['x'],d['y'],d['z']);}[a0bL(0x79c)](i){const lC=a0bL,j=this[lC(0x6e0)]['theta']-this['_spherical']['theta'],k=this['_sphericalEnd']['phi']-this[lC(0x870)][lC(0x665)],t=this[lC(0x6e0)][lC(0x3eb)]-this['_spherical']['radius'],z=Vo['subVectors'](this['_targetEnd'],this[lC(0x623)]),A=jo['subVectors'](this['_focalOffsetEnd'],this[lC(0x2a6)]),F=this[lC(0xb21)]-this['_zoom'];if(X(j))this['_thetaVelocity']['value']=0x0,this[lC(0x870)][lC(0x29c)]=this[lC(0x6e0)][lC(0x29c)];else{const N=this[lC(0x5a5)]?this[lC(0x4ad)]:this[lC(0x63e)];this['_spherical']['theta']=ks(this['_spherical']['theta'],this[lC(0x6e0)]['theta'],this[lC(0x2a4)],N,0x1/0x0,i),this['_needsUpdate']=!0x0;}if(X(k))this[lC(0x80)][lC(0xaa2)]=0x0,this[lC(0x870)]['phi']=this[lC(0x6e0)][lC(0x665)];else{const R=this[lC(0x5a5)]?this[lC(0x4ad)]:this[lC(0x63e)];this[lC(0x870)]['phi']=ks(this[lC(0x870)]['phi'],this[lC(0x6e0)][lC(0x665)],this[lC(0x80)],R,0x1/0x0,i),this['_needsUpdate']=!0x0;}if(X(t))this['_radiusVelocity'][lC(0xaa2)]=0x0,this['_spherical'][lC(0x3eb)]=this['_sphericalEnd'][lC(0x3eb)];else{const S=this[lC(0x833)]?this[lC(0x4ad)]:this[lC(0x63e)];this[lC(0x870)]['radius']=ks(this[lC(0x870)]['radius'],this[lC(0x6e0)]['radius'],this['_radiusVelocity'],S,this['maxSpeed'],i),this['_needsUpdate']=!0x0;}if(X(z['x'])&&X(z['y'])&&X(z['z']))this[lC(0x183)][lC(0x9fd)](0x0,0x0,0x0),this['_target'][lC(0x3fe)](this['_targetEnd']);else{const U=this[lC(0x31f)]?this[lC(0x4ad)]:this['smoothTime'];Ho(this[lC(0x623)],this['_targetEnd'],this[lC(0x183)],U,this[lC(0x8ac)],i,this[lC(0x623)]),this[lC(0x7a2)]=!0x0;}if(X(A['x'])&&X(A['y'])&&X(A['z']))this['_focalOffsetVelocity']['set'](0x0,0x0,0x0),this[lC(0x2a6)]['copy'](this[lC(0x4aa)]);else{const a0=this[lC(0x250)]?this[lC(0x4ad)]:this[lC(0x63e)];Ho(this[lC(0x2a6)],this[lC(0x4aa)],this[lC(0x680)],a0,this[lC(0x8ac)],i,this[lC(0x2a6)]),this['_needsUpdate']=!0x0;}if(X(F))this['_zoomVelocity']['value']=0x0,this[lC(0x19d)]=this['_zoomEnd'];else{const a1=this['_isUserControllingZoom']?this['draggingSmoothTime']:this['smoothTime'];this['_zoom']=ks(this['_zoom'],this[lC(0xb21)],this['_zoomVelocity'],a1,0x1/0x0,i);}if(this['dollyToCursor']){if(kt(this['_camera'])&&this[lC(0x5a4)]!==0x0){const a2=this['_spherical'][lC(0x3eb)]-this['_lastDistance'],a3=this[lC(0x1f6)],a4=this[lC(0x37f)](Wi),a5=q['copy'](a4)[lC(0xa94)](a3['up'])[lC(0x6ff)]();a5['lengthSq']()===0x0&&(a5['x']=0x1);const a6=Y[lC(0x9f3)](a5,a4),a7=this['_sphericalEnd'][lC(0x3eb)]*Math[lC(0x3ca)](a3['getEffectiveFOV']()*ji*0.5),a8=(this[lC(0x6e0)]['radius']-a2-this['_sphericalEnd'][lC(0x3eb)])/this[lC(0x6e0)][lC(0x3eb)],a9=ri[lC(0x3fe)](this[lC(0x87c)])['add'](a5[lC(0x433)](this['_dollyControlCoord']['x']*a7*a3['aspect']))[lC(0x577)](a6['multiplyScalar'](this['_dollyControlCoord']['y']*a7)),ab=q['copy'](this[lC(0x87c)])['lerp'](a9,a8),aj=this[lC(0x602)]===si['IN']&&this['_spherical']['radius']<=this[lC(0x6e4)],ak=this['_lastDollyDirection']===si['OUT']&&this[lC(0x952)]<=this['_spherical'][lC(0x3eb)];if(this['infinityDolly']&&(aj||ak)){this['_sphericalEnd']['radius']-=a2,this[lC(0x870)][lC(0x3eb)]-=a2;const an=Y[lC(0x3fe)](a4)['multiplyScalar'](-a2);ab[lC(0x577)](an);}this['_boundary'][lC(0x4f9)](ab,ab);const am=Y['subVectors'](ab,this[lC(0x87c)]);this['_targetEnd'][lC(0x3fe)](ab),this['_target'][lC(0x577)](am),this['_changedDolly']-=a2,X(this['_changedDolly'])&&(this[lC(0x5a4)]=0x0);}else{if(_t(this['_camera'])&&this['_changedZoom']!==0x0){const ap=this[lC(0x19d)]-this['_lastZoom'],aq=this[lC(0x1f6)],av=q['set'](this[lC(0xac0)]['x'],this[lC(0xac0)]['y'],(aq['near']+aq['far'])/(aq['near']-aq[lC(0x445)]))['unproject'](aq),aw=Y[lC(0x9fd)](0x0,0x0,-0x1)['applyQuaternion'](aq['quaternion']),ax=ri[lC(0x3fe)](av)[lC(0x577)](aw[lC(0x433)](-av[lC(0x7c9)](aq['up']))),ay=-(this[lC(0x19d)]-ap-this['_zoom'])/this[lC(0x19d)],az=this['_getCameraDirection'](Wi),aB=this['_targetEnd']['dot'](az),aC=q['copy'](this['_targetEnd'])[lC(0xacf)](ax,ay),aD=aC['dot'](az),aE=az[lC(0x433)](aD-aB);aC[lC(0x38c)](aE),this[lC(0x130)]['clampPoint'](aC,aC);const aF=Y[lC(0x642)](aC,this[lC(0x87c)]);this[lC(0x87c)]['copy'](aC),this['_target']['add'](aF),this['_changedZoom']-=ap,X(this[lC(0x388)])&&(this['_changedZoom']=0x0);}}}this['_camera'][lC(0x28f)]!==this['_zoom']&&(this[lC(0x1f6)]['zoom']=this['_zoom'],this[lC(0x1f6)]['updateProjectionMatrix'](),this['_updateNearPlaneCorners'](),this[lC(0x7a2)]=!0x0),this[lC(0x3ff)]=!0x0;const H=this['_collisionTest']();this['_spherical']['radius']=Math[lC(0x5d2)](this['_spherical'][lC(0x3eb)],H),this['_spherical']['makeSafe'](),this['_camera']['position']['setFromSpherical'](this['_spherical'])['applyQuaternion'](this[lC(0x67d)])[lC(0x577)](this[lC(0x623)]),this[lC(0x1f6)][lC(0x93c)](this['_target']),(!X(this['_focalOffset']['x'])||!X(this[lC(0x2a6)]['y'])||!X(this[lC(0x2a6)]['z']))&&(st[lC(0xaf7)](this['_camera'][lC(0x87e)],0x0),nt[lC(0xaf7)](this['_camera']['matrix'],0x1),Ft[lC(0xaf7)](this[lC(0x1f6)]['matrix'],0x2),st['multiplyScalar'](this[lC(0x2a6)]['x']),nt[lC(0x433)](-this[lC(0x2a6)]['y']),Ft[lC(0x433)](this[lC(0x2a6)]['z']),q[lC(0x3fe)](st)[lC(0x577)](nt)['add'](Ft),this[lC(0x1f6)][lC(0x1b7)]['add'](q),this[lC(0x1f6)][lC(0x2c7)]()),this[lC(0x29f)]&&this['_encloseToBoundary'](this[lC(0x1f6)][lC(0x1b7)][lC(0x3fe)](this['_target']),q['setFromSpherical'](this[lC(0x870)])[lC(0x224)](this['_yAxisUpSpaceInverse']),0x1);const L=this[lC(0x7a2)];return L&&!this['_updatedLastTime']?(this[lC(0x86d)]=!0x1,this[lC(0x769)]({'type':lC(0x567)}),this[lC(0x769)]({'type':lC(0x79c)})):L?(this['dispatchEvent']({'type':lC(0x79c)}),X(j,this['restThreshold'])&&X(k,this['restThreshold'])&&X(t,this[lC(0x4ca)])&&X(z['x'],this[lC(0x4ca)])&&X(z['y'],this['restThreshold'])&&X(z['z'],this[lC(0x4ca)])&&X(A['x'],this[lC(0x4ca)])&&X(A['y'],this[lC(0x4ca)])&&X(A['z'],this['restThreshold'])&&X(F,this['restThreshold'])&&!this['_hasRested']&&(this[lC(0x86d)]=!0x0,this['dispatchEvent']({'type':lC(0x480)}))):!L&&this[lC(0x565)]&&this[lC(0x769)]({'type':'sleep'}),this['_lastDistance']=this[lC(0x870)]['radius'],this['_lastZoom']=this['_zoom'],this['_updatedLastTime']=L,this[lC(0x7a2)]=!0x1,L;}[a0bL(0x1f7)](){const lD=a0bL;return JSON[lD(0x473)]({'enabled':this[lD(0x54e)],'minDistance':this[lD(0x6e4)],'maxDistance':Yi(this[lD(0x952)]),'minZoom':this['minZoom'],'maxZoom':Yi(this[lD(0x758)]),'minPolarAngle':this['minPolarAngle'],'maxPolarAngle':Yi(this['maxPolarAngle']),'minAzimuthAngle':Yi(this[lD(0x8bf)]),'maxAzimuthAngle':Yi(this['maxAzimuthAngle']),'smoothTime':this['smoothTime'],'draggingSmoothTime':this[lD(0x4ad)],'dollySpeed':this['dollySpeed'],'truckSpeed':this['truckSpeed'],'dollyToCursor':this['dollyToCursor'],'target':this['_targetEnd']['toArray'](),'position':q['setFromSpherical'](this[lD(0x6e0)])['add'](this['_targetEnd'])[lD(0x4bd)](),'zoom':this['_zoomEnd'],'focalOffset':this['_focalOffsetEnd']['toArray'](),'target0':this['_target0'][lD(0x4bd)](),'position0':this['_position0'][lD(0x4bd)](),'zoom0':this['_zoom0'],'focalOffset0':this[lD(0x699)]['toArray']()});}['fromJSON'](b,c=!0x1){const lE=a0bL,d=JSON['parse'](b);this['enabled']=d[lE(0x2d3)],this['minDistance']=d[lE(0x6e4)],this['maxDistance']=Ki(d[lE(0x952)]),this['minZoom']=d[lE(0x100)],this[lE(0x758)]=Ki(d[lE(0x758)]),this['minPolarAngle']=d[lE(0x64e)],this[lE(0x6c6)]=Ki(d['maxPolarAngle']),this['minAzimuthAngle']=Ki(d[lE(0x8bf)]),this['maxAzimuthAngle']=Ki(d[lE(0x964)]),this[lE(0x63e)]=d['smoothTime'],this[lE(0x4ad)]=d[lE(0x4ad)],this['dollySpeed']=d['dollySpeed'],this['truckSpeed']=d['truckSpeed'],this['dollyToCursor']=d[lE(0x483)],this['_target0'][lE(0xff)](d['target0']),this['_position0']['fromArray'](d['position0']),this[lE(0xb20)]=d['zoom0'],this[lE(0x699)][lE(0xff)](d[lE(0x6ac)]),this[lE(0x93a)](d[lE(0x4b7)][0x0],d['target'][0x1],d['target'][0x2],c),Re['setFromVector3'](q['fromArray'](d[lE(0x1b7)])['sub'](this[lE(0x87c)])['applyQuaternion'](this['_yAxisUpSpace'])),this['rotateTo'](Re['theta'],Re[lE(0x665)],c),this['dollyTo'](Re['radius'],c),this[lE(0x815)](d['zoom'],c),this['setFocalOffset'](d[lE(0x999)][0x0],d[lE(0x999)][0x1],d[lE(0x999)][0x2],c),this['_needsUpdate']=!0x0;}[a0bL(0xcd)](b){const lF=a0bL;if(this['_domElement']){console[lF(0x5fb)](lF(0xa85));return;}b['setAttribute'](lF(0x914),Bd),this[lF(0x37c)](b),this[lF(0x667)](this[lF(0x8e0)]);}[a0bL(0x558)](){const lG=a0bL;this['cancel'](),this[lG(0x11e)](),this['_domElement']&&(this['_domElement'][lG(0x22b)]('data-camera-controls-version'),this[lG(0x8ce)]=void 0x0);}[a0bL(0x1a5)](){const lH=a0bL;this['removeAllEventListeners'](),this[lH(0x558)]();}['_getTargetDirection'](b){const lI=a0bL;return b['setFromSpherical'](this['_spherical'])[lI(0x331)](this['_spherical']['radius'])['applyQuaternion'](this[lI(0x67d)]);}[a0bL(0x37f)](b){const lJ=a0bL;return this['_getTargetDirection'](b)[lJ(0x1cf)]();}[a0bL(0x783)](b){return this['_activePointers']['find'](c=>c['pointerId']===b);}[a0bL(0x4d7)](b){const lK=a0bL;return this[lK(0x56a)][lK(0x5b5)](c=>c[lK(0x74f)]===b);}[a0bL(0xac6)](b){const lL=a0bL;this[lL(0x56a)]['splice'](this['_activePointers']['indexOf'](b),0x1);}[a0bL(0x840)](b,c,d){const lM=a0bL,f=c[lM(0x5e9)]();if(f===0x0)return b;const g=Y['copy'](c)['add'](b),i=this['_boundary'][lM(0x4f9)](g,ri)['sub'](g),j=i[lM(0x5e9)]();if(j===0x0)return b[lM(0x577)](c);if(j===f)return b;if(d===0x0)return b[lM(0x577)](c)[lM(0x577)](i);{const k=0x1+d*j/c[lM(0x7c9)](i);return b[lM(0x577)](Y[lM(0x3fe)](c)[lM(0x433)](k))[lM(0x577)](i[lM(0x433)](0x1-d));}}[a0bL(0x66f)](){const lN=a0bL;if(kt(this['_camera'])){const b=this[lN(0x1f6)],d=b[lN(0x3ad)],f=b[lN(0xa2b)]()*ji,g=Math['tan'](f*0.5)*d,h=g*b['aspect'];this['_nearPlaneCorners'][0x0]['set'](-h,-g,0x0),this['_nearPlaneCorners'][0x1][lN(0x9fd)](h,-g,0x0),this['_nearPlaneCorners'][0x2]['set'](h,g,0x0),this['_nearPlaneCorners'][0x3][lN(0x9fd)](-h,g,0x0);}else{if(_t(this[lN(0x1f6)])){const i=this['_camera'],j=0x1/ i['zoom'],k=i['left']*j,l=i['right']*j,m=i['top']*j,p=i[lN(0x342)]*j;this[lN(0x638)][0x0][lN(0x9fd)](k,m,0x0),this[lN(0x638)][0x1]['set'](l,m,0x0),this['_nearPlaneCorners'][0x2][lN(0x9fd)](l,p,0x0),this[lN(0x638)][0x3][lN(0x9fd)](k,p,0x0);}}}[a0bL(0x2d1)](){const lO=a0bL;let b=0x1/0x0;if(!(this[lO(0x6dd)]['length']>=0x1)||jn(this['_camera'],'_collisionTest'))return b;const d=this[lO(0x4cb)](Wi);Jn['lookAt'](qo,d,this['_camera']['up']);for(let f=0x0;f<0x4;f++){const g=Y[lO(0x3fe)](this[lO(0x638)][f]);g['applyMatrix4'](Jn);const h=ri['addVectors'](this['_target'],g);Ns[lO(0x9fd)](h,d),Ns['far']=this[lO(0x870)][lO(0x3eb)]+0x1;const i=Ns[lO(0x7ec)](this['colliderMeshes']);i['length']!==0x0&&i[0x0]['distance']<b&&(b=i[0x0]['distance']);}return b;}['_getClientRect'](b){const lP=a0bL;if(!this['_domElement'])return;const c=this[lP(0x8ce)][lP(0x38d)]();return b['x']=c['left'],b['y']=c['top'],this[lP(0x15f)]?(b['x']+=this['_viewport']['x'],b['y']+=c['height']-this['_viewport']['w']-this['_viewport']['y'],b['width']=this[lP(0x15f)]['z'],b['height']=this[lP(0x15f)]['w']):(b['width']=c[lP(0xb1f)],b[lP(0x19e)]=c[lP(0x19e)]),b;}['_createOnRestPromise'](b){const lQ=a0bL;return b?Promise[lQ(0x1e6)]():(this[lQ(0x86d)]=!0x1,this[lQ(0x769)]({'type':'transitionstart'}),new Promise(c=>{const d=()=>{const lR=a0b;this[lR(0xcf)](lR(0x480),d),c();};this['addEventListener']('rest',d);}));}[a0bL(0x37c)](b){}['_removeAllEventListeners'](){}get['dampingFactor'](){return console['warn']('.dampingFactor\x20has\x20been\x20deprecated.\x20use\x20smoothTime\x20(in\x20seconds)\x20instead.'),0x0;}set['dampingFactor'](b){const lS=a0bL;console[lS(0x5fb)](lS(0xe8));}get['draggingDampingFactor'](){const lT=a0bL;return console['warn'](lT(0x539)),0x0;}set['draggingDampingFactor'](b){const lU=a0bL;console[lU(0x5fb)](lU(0x539));}static['createBoundingSphere'](b,c=new G['Sphere']()){const lW=a0bL,d=c,f=d['center'];oi['makeEmpty'](),b['traverseVisible'](h=>{const lV=a0b;h['isMesh']&&oi[lV(0x853)](h);}),oi['getCenter'](f);let g=0x0;return b[lW(0x43c)](i=>{const lX=lW;if(!i[lX(0x356)])return;const j=i;if(!j[lX(0x813)])return;const k=j['geometry']['clone']();k[lX(0x53d)](j[lX(0x14e)]);const m=k[lX(0x4e1)][lX(0x1b7)];for(let p=0x0,t=m['count'];p<t;p++)q['fromBufferAttribute'](m,p),g=Math['max'](g,f['distanceToSquared'](q));}),d['radius']=Math[lW(0x691)](g),d;}}Te[a0bL(0x590)]({'THREE':{'Vector2':a0l,'Vector3':a0c,'Vector4':a0y,'Quaternion':a0au,'Matrix4':a0m,'Spherical':a0aK,'Box3':a0h,'Sphere':a0t,'Raycaster':a0aJ}});class vd{constructor(b){const lY=a0bL;C(this,'perspectiveCamera'),C(this,'orthographicCamera'),C(this,'perspectiveControls'),C(this,lY(0x9f9)),C(this,'currentCamera'),C(this,lY(0x8af)),C(this,'el'),C(this,lY(0x15b)),C(this,lY(0x9b)),C(this,'boxCenter',new a0c(0x0,0x0,0x0)),C(this,lY(0x661),new a0c(0xa,0xa,0xa)),(this['el']=b['el'],this[lY(0x15b)]=b[lY(0x15b)],this[lY(0x9b)]=b[lY(0x9b)],this[lY(0x582)]());}['initCameraControls'](){const lZ=a0bL,b=this['el']['clientWidth']/this['el'][lZ(0x771)];this[lZ(0xa63)]=new a0aL(this['options']['camera']['fov'],b,0.1,0x7d0),this['perspectiveCamera']['position']['set'](0x0,0x0,0x14),this['perspectiveControls']=new Te(this['perspectiveCamera'],this['renderer'][lZ(0x9da)]),this[lZ(0x352)](this['perspectiveControls']);const c=0xa;this['orthographicCamera']=new a0n(-0xa*b/0x2,c*b/0x2,c/0x2,-0xa/0x2,0.01,0x7d0),this[lZ(0x246)][lZ(0x1b7)][lZ(0x9fd)](0x0,0x0,c*0x2),this[lZ(0x9f9)]=new Te(this[lZ(0x246)],this[lZ(0x9b)][lZ(0x9da)]),this['setControl'](this['orthographicControls']),this[lZ(0x215)]=this[lZ(0xa63)],this['currentControls']=this['perspectiveControls'];}['setControl'](b){const m0=a0bL;b[m0(0x63e)]=0.25;}['setBoxInfo'](b,c){this['boxCenter']=b,this['boxSize']=c;}['getCameraAspectDistance'](){const m1=a0bL,b=h=>h*(Math['PI']/0xb4),{x:d,y:f,z:g}=this['boxSize'];if(this['currentCamera']instanceof a0aL){const h=this['currentCamera'][m1(0xb24)],i=b(this['currentCamera']['fov']),j=0x2*Math['atan'](Math[m1(0x3ca)](i/0x2)*h);return Math['max'](d/(0x2*Math[m1(0x3ca)](j/0x2)),f/(0x2*Math['tan'](i/0x2)),g/0x2)*2.2;}else{const k=this['currentCamera'][m1(0x28f)];return Math['max'](d,f,g)*2.2/k;}}['cameraView'](b){const m2=a0bL,{x:d,y:f,z:g}=this[m2(0x6f4)],h=this['getCameraAspectDistance'](),i=this[m2(0x15b)][m2(0x8d0)]['enableTransition'],j={'top':[d,f+h,g],'bottom':[d,f-h,g],'front':[d,f,g+h],'back':[d,f,g-h],'left':[d-h,f,g],'right':[d+h,f,g]};this[m2(0x215)]instanceof a0aL||this['updateOrthographicCamera'](),this[m2(0x8af)]['setFocalOffset'](0x0,0x0,0x0),this['currentControls']['setLookAt'](...j[b],d,f,g,i);}[a0bL(0xa0d)](){const m3=a0bL,b=this[m3(0x215)],d=this['el'][m3(0x2c5)]/this['el'][m3(0x771)],{x:f,y:g,z:h}=this[m3(0x661)],i=Math[m3(0x36b)](f,g,h)*1.2;b['left']=-i*d/0x2,b[m3(0x9ca)]=i*d/0x2,b['top']=i/0x2,b['bottom']=-i/0x2,b['updateProjectionMatrix']();}[a0bL(0x970)](b){const m4=a0bL;return b===m4(0x3d9)?(this['currentCamera']=this[m4(0x246)],this['currentControls']=this[m4(0x9f9)]):(this[m4(0x215)]=this['perspectiveCamera'],this[m4(0x8af)]=this[m4(0x9b3)]),{'camera':this['currentCamera'],'controls':this[m4(0x8af)]};}[a0bL(0x2a9)](){return this['currentCamera'];}[a0bL(0x922)](){const m5=a0bL;return this[m5(0x8af)];}['getPerspectiveCamera'](){const m6=a0bL;return this[m6(0xa63)];}['getOrthographicCamera'](){const m7=a0bL;return this[m7(0x246)];}[a0bL(0x3ed)](){const m8=a0bL;return this[m8(0x9b3)];}[a0bL(0x29d)](){const m9=a0bL;return this[m9(0x9f9)];}['updateAspectRatio'](b,c){const mb=a0bL,d=b/c;this['perspectiveCamera'][mb(0xb24)]=d,this[mb(0xa63)][mb(0x4d4)]();const f=0xa;this[mb(0x246)][mb(0x5df)]=-0xa*d/0x2,this['orthographicCamera']['right']=f*d/0x2,this[mb(0x246)][mb(0x4d4)]();}[a0bL(0x1a5)](){}}const Ut=[{'name':a0bL(0xb10),'type':0x0,'background':{'color':'#ABDEF2','middleColor':'#EEEEEE','gradientColor':'#C5C8C8'},'sky':{'enabled':!0x1,'turbidity':0x0,'rayleigh':0.28,'mieCoefficient':0.005,'mieDirectionalG':0.7,'elevation':0x2,'azimuth':0xb4,'inclination':0.5},'ssao':{'enabled':!0x1,'intensity':0x8,'kernelRadius':0.2,'minDistance':0.0001,'maxDistance':0.15,'blurKernelSize':0x20,'bias':0x8},'edge':{'enabled':!0x0,'color':a0bL(0x53f)},'fog':{'enabled':!0x1,'color':'#DBDBDE','density':0.0015},'material':{'opacity':0x1},'axes':{'display':!0x1}},{'name':a0bL(0xa5b),'type':0x1,'background':{'color':'#87CEEB','middleColor':a0bL(0xa60),'gradientColor':a0bL(0x513)},'sky':{'enabled':!0x1,'turbidity':0x0,'rayleigh':0.28,'mieCoefficient':0.005,'mieDirectionalG':0.7,'elevation':0x2,'azimuth':0xb4,'inclination':0.5},'ssao':{'enabled':!0x0,'intensity':0x8,'kernelRadius':0.2,'minDistance':0.0001,'maxDistance':0.15,'blurKernelSize':0x20,'bias':0x8},'edge':{'enabled':!0x0,'color':a0bL(0x679)},'fog':{'enabled':!0x1,'color':a0bL(0x55f),'density':0.0015},'material':{'opacity':0x1},'axes':{'display':!0x1}},{'name':'建筑设计','type':0x2,'background':{'color':a0bL(0x917),'gradientColor':''},'sky':{'enabled':!0x1,'turbidity':0x0,'rayleigh':0.28,'mieCoefficient':0.005,'mieDirectionalG':0.7,'elevation':0x2,'azimuth':0xb4,'inclination':0.5},'ssao':{'enabled':!0x1,'intensity':0x8,'kernelRadius':0.2,'minDistance':0.0001,'maxDistance':0.15,'blurKernelSize':0x20,'bias':0x8},'edge':{'enabled':!0x0,'color':'#222222'},'fog':{'enabled':!0x1,'color':a0bL(0x55f),'density':0.0015},'material':{'opacity':0x1},'axes':{'display':!0x0}},{'name':'黑白模式','type':0x3,'background':{'color':'#FFFFFF','gradientColor':''},'sky':{'enabled':!0x1,'turbidity':0x0,'rayleigh':0.28,'mieCoefficient':0.005,'mieDirectionalG':0.7,'elevation':0x2,'azimuth':0xb4,'inclination':0.5},'ssao':{'enabled':!0x1,'intensity':0x8,'kernelRadius':0.2,'minDistance':0.0001,'maxDistance':0.15,'blurKernelSize':0x20,'bias':0x8},'edge':{'enabled':!0x0,'color':a0bL(0x53f)},'fog':{'enabled':!0x1,'color':a0bL(0x55f),'density':0.0015},'material':{'opacity':0x1},'axes':{'display':!0x1}},{'name':'透明度模式','type':0x4,'background':{'color':'#323336','gradientColor':''},'sky':{'enabled':!0x1,'turbidity':0x0,'rayleigh':0.28,'mieCoefficient':0.005,'mieDirectionalG':0.7,'elevation':0x2,'azimuth':0xb4,'inclination':0.5},'ssao':{'enabled':!0x1,'intensity':0x8,'kernelRadius':0.2,'minDistance':0.0001,'maxDistance':0.15,'blurKernelSize':0x20,'bias':0x8},'edge':{'enabled':!0x0,'color':'#FFFFFF'},'fog':{'enabled':!0x1,'color':'#DBDBDE','density':0.0015},'material':{'opacity':0.36},'axes':{'display':!0x1}}];Gr(Ut);const _d=0xffffff,Td=new a0G(0.2,0.2,0.2),Qd=0.5,Sd=0.5,Dd=a0bL(0x22c),Us=0x6,Xi={'DEFAULT':0x0,'BLACK_WHITE':0x3,'TRANSPARENCY':0x4},Md=new a0g({'color':_d});class Ld{constructor(b){const mf=a0bL;C(this,mf(0x2ee)),C(this,mf(0x653)),C(this,mf(0x7f1)),C(this,'currentStyleIndex',Xi[mf(0x121)]),C(this,mf(0x16b)),C(this,'_edgeVisible',!0x0),C(this,mf(0x99a),0x2),(this['viewer']=b,this['originalMaterials']=new Map(),this[mf(0x7f1)]=new Map(),this['edgeMeshCache']=new Map());}['changeStyle'](b=Xi['DEFAULT'],c){const mj=a0bL;this[mj(0x210)]===Xi[mj(0x2be)]&&this[mj(0xa29)](),this[mj(0x210)]=b,b===Xi['BLACK_WHITE']?this['enableBlackWhiteMode']():this[mj(0x1c1)](),b===Xi['TRANSPARENCY']&&this[mj(0x744)](),a0bq(this[mj(0x2ee)]['options'][mj(0xa1a)],Ut[b]),c&&c(this['viewer']['options'][mj(0xa1a)]),this['refreshByStyle'](this[mj(0x2ee)]['options'][mj(0xa1a)]);}['enableBlackWhiteMode'](){const mk=a0bL;this['viewer'][mk(0x440)][mk(0x268)](b=>{const mm=mk;if(b[mm(0x356)]){const c=b;this['originalMaterials'][mm(0x258)](c)||this[mm(0x653)]['set'](c,c['material']),c['material']=Md;}});}[a0bL(0x1c1)](){this['viewer']['scene']['traverse'](b=>{const mn=a0b;if(b['isMesh']){const c=b,d=this[mn(0x653)][mn(0x7d7)](c);d&&(c[mn(0x690)]=d,this['originalMaterials'][mn(0x393)](c));}});}[a0bL(0x915)](b,c=!0x1){const mp=a0bL,d=b??(this[mp(0x2ee)]['edgeMesh']?!this['_edgeVisible']:!0x0);if(this['viewer']['edgeMesh']){this[mp(0x893)](d);return;}this['viewer'][mp(0x28e)][mp(0x94d)](),this[mp(0x2ee)]['edgeMesh']?this[mp(0x893)](d):b!==void 0x0&&(this[mp(0x36c)]=b);}['_updateEdgeVisibility'](b){const mq=a0bL;this[mq(0x2ee)][mq(0x315)]&&(this['viewer'][mq(0x315)][mq(0x12e)]=b,this[mq(0x36c)]=b,this['setEdgeMesh'](this['viewer']['edgeMesh']),this['updateEdge']());}[a0bL(0x5f4)](){const mv=a0bL;if(!this['viewer']['edgeData']||!this['viewer']['edgeMesh']){this['viewer'][mv(0x315)]||console['warn']('edgeMesh\x20不存在,无法更新边线可见性');return;}const b=this['viewer']['layerManager'][mv(0x910)](),i=[...b][mv(0x3b2)]((z,B)=>z-B),j=this['djb2Hash'](i),k=this[mv(0x16b)][mv(0x7d7)](j);if(k){this[mv(0x2ee)][mv(0x315)]&&this['viewer']['scene'][mv(0x592)](this['viewer'][mv(0x315)]),this[mv(0x2ee)]['edgeMesh']=this['cloneEdgeMesh'](k),this[mv(0x2ee)][mv(0x315)]['visible']=this['_edgeVisible'],this[mv(0x2ee)]['scene'][mv(0x577)](this['viewer']['edgeMesh']);return;}const {edgeLayers:m}=this['viewer'][mv(0x7ff)],p=m[mv(0x3ea)],v=new Set(b),w=new Float32Array(p*0x2);let x=0x0;for(let z=0x0;z<p;z++){const B=m[z];let E=0x1;for(let F=0x0;F<B[mv(0x3ea)];F++)if(v[mv(0x258)](B[F])){E=0x0;break;}w[x]=E,w[x+0x1]=E,x+=0x2;}this[mv(0x2ee)][mv(0x315)]['geometry']['setAttribute'](mv(0x219),new a0F(w,0x1)),this['viewer'][mv(0x315)][mv(0x813)][mv(0x12d)]=!0x0;const y=this[mv(0x119)](this['viewer']['edgeMesh']);this[mv(0x16b)]['set'](j,y),this['cleanupCache']();}[a0bL(0x4b5)](b,d){const mw=a0bL;this[mw(0x2ee)][mw(0x315)]&&(this[mw(0x2ee)]['scene']['remove'](this[mw(0x2ee)][mw(0x315)]),this['viewer'][mw(0x315)][mw(0x813)][mw(0x1a5)](),this['viewer'][mw(0x315)]['material']&&typeof this[mw(0x2ee)]['edgeMesh'][mw(0x690)][mw(0x1a5)]=='function'&&this['viewer']['edgeMesh']['material']['dispose'](),this['viewer']['edgeMesh']=null);const f=new a0j(),g=Array['isArray'](b)&&b['length']>0x0&&b[0x0]instanceof Float32Array?new Float32Array(b[mw(0x52f)]((m,p)=>[...m,...Array[mw(0x9c4)](p)],[])):b,h=Array['isArray'](d)&&d[mw(0x3ea)]>0x0&&d[0x0]instanceof Float32Array?new Float32Array(d[mw(0x52f)]((m,p)=>[...m,...Array[mw(0x9c4)](p)],[])):d;f['setAttribute']('position',new a0F(g,0x3)),f[mw(0xe4)]('visibility',new a0F(h,0x1));const i=Array['from']({'length':Us},()=>new a0y(0x0,0x0,0x0,0x0)),j=new a0u({'uniforms':{'color':{'value':Td['clone']()},'cps':{'value':i}},'vertexShader':this['_getVertexShader'](),'fragmentShader':this[mw(0x8e7)](),'clipping':!0x0}),k=new a0k(f,j);k['name']=Dd,k[mw(0x12e)]=this['_edgeVisible'],this['viewer']['edgeMesh']=k,this['viewer']['scene'][mw(0x577)](k);}[a0bL(0xb2)](){const mx=a0bL;return mx(0x591)+Us+'];\x0a\x20\x20\x20\x20\x20\x20varying\x20vec3\x20vWorldPosition;\x0a\x20\x20\x20\x20\x20\x20attribute\x20float\x20visibility;\x0a\x20\x20\x20\x20\x20\x20varying\x20float\x20vVisibility;\x0a\x0a\x20\x20\x20\x20\x20\x20void\x20main()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20vVisibility\x20=\x20visibility;\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20worldPosition\x20=\x20modelMatrix\x20*\x20vec4(position,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vWorldPosition\x20=\x20worldPosition.xyz;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20projectionMatrix\x20*\x20viewMatrix\x20*\x20worldPosition;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20';}['_getFragmentShader'](){const my=a0bL;return my(0x85f)+Us+'];\x0a\x20\x20\x20\x20\x20\x20varying\x20vec3\x20vWorldPosition;\x0a\x20\x20\x20\x20\x20\x20varying\x20float\x20vVisibility;\x0a\x0a\x20\x20\x20\x20\x20\x20void\x20main()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(vVisibility\x20<\x20'+Sd+')\x20discard;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20for\x20(int\x20i\x20=\x200;\x20i\x20<\x20'+Us+';\x20i++)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(cps[i]\x20!=\x20vec4(0.0))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20distance\x20=\x20dot(vWorldPosition,\x20cps[i].xyz)\x20+\x20cps[i].w;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(distance\x20<=\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20discard;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(color,\x201.0);\x20\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20';}[a0bL(0x7b4)](b){const mz=a0bL;let c=0x1505;for(let d=0x0;d<b['length'];d++)c=(c<<0x5)+c+b[d];return c[mz(0x2d7)]();}get[a0bL(0x26f)](){const mB=a0bL;return this[mB(0x2ee)]['edgeMesh']?this['viewer']['edgeMesh'][mB(0x12e)]:this[mB(0x36c)];}[a0bL(0x9dc)](){return this['edgeVisible'];}[a0bL(0x5d0)](b,c=!0x1){const mC=a0bL;this[mC(0x915)](b,c);}[a0bL(0x5ef)](b=!0x1){const mD=a0bL;this[mD(0x915)](!0x0,b);}[a0bL(0x27d)](b=!0x1){this['setEdgeVisible'](!0x1,b);}[a0bL(0x92)](b){const mE=a0bL,c=typeof b==mE(0x45f)?{'color':b}:b;if(!c||!c['color']){console[mE(0x5fb)](mE(0xa8a));return;}const {color:d,middleColor:f=d,gradientColor:g=d,direction:h='vertical'}=c;d!==g||d!==f?Ka(this['viewer']['scene'],[{'position':0x0,'color':d},{'position':0.5,'color':f},{'position':0x1,'color':g}],h):this['viewer']['scene'][mE(0x836)]=new a0G(d);}['setEdgeColor'](b){const mF=a0bL;if(this['viewer']['edgeMesh']&&this[mF(0x2ee)]['edgeMesh'][mF(0x690)]instanceof a0u){const c=this['viewer']['edgeMesh']['material'];c[mF(0x526)]?.[mF(0x66e)]&&(c['uniforms']['color'][mF(0xaa2)]=new a0G(b));}}['setEdgeMesh'](b){const mG=a0bL;this[mG(0x2ee)][mG(0x315)]=b;}['cloneEdgeMesh'](b){const mH=a0bL;if(!b)throw new Error(mH(0x332));const c=b[mH(0x813)]['clone'](),d=b['material']['clone'](),f=new a0k(c,d);return f[mH(0x74)]=b['name'],f[mH(0x12e)]=b[mH(0x12e)],f;}['cleanupCache'](){const mI=a0bL;if(this['edgeMeshCache'][mI(0x410)]<=this[mI(0x99a)])return;const b=this[mI(0x16b)][mI(0x410)]-this[mI(0x99a)],c=Array['from'](this[mI(0x16b)]['keys']());for(let d=0x0;d<b;d++){const f=c[d],g=this['edgeMeshCache'][mI(0x7d7)](f);g&&(g['geometry'][mI(0x1a5)](),g[mI(0x690)]&&typeof g[mI(0x690)][mI(0x1a5)]=='function'&&g['material'][mI(0x1a5)]()),this[mI(0x16b)][mI(0x393)](f);}}[a0bL(0x614)](){const mJ=a0bL;return this[mJ(0x210)];}['refreshByStyle'](b=this['viewer']['options']['style'],c){const mK=a0bL,{background:d,ssao:f,edge:g,axes:h}=b;this[mK(0x92)](d),g?.[mK(0x66e)]&&this['setEdgeColor'](g['color']),c?.[mK(0xa31)]&&c[mK(0xa31)](h?.[mK(0x46e)]||!0x1),c?.['toggleEffect']&&c[mK(0xc4)](mK(0x529),f?.['enabled']||!0x1,f);}['setTransparencyMode'](){const mL=a0bL;this['viewer'][mL(0x440)]['traverse'](b=>{const mM=mL;if(b[mM(0x356)]){const c=b;(Array[mM(0x335)](c[mM(0x690)])?c[mM(0x690)]:[c[mM(0x690)]])['forEach'](d=>{const mN=mM;d&&(this[mN(0x7f1)]['has'](d)||this[mN(0x7f1)]['set'](d,{'opacity':d['opacity'],'transparent':d[mN(0xa5c)]}),d['transparent']=!0x0,d['opacity']=Qd,d[mN(0x12d)]=!0x0);});}});}['restoreOriginalTransparencies'](){const mO=a0bL;this[mO(0x7f1)][mO(0xb8)]((b,c)=>{const mP=mO;c[mP(0x6fb)]=b[mP(0x6fb)],c['transparent']=b[mP(0xa5c)],c[mP(0x12d)]=!0x0;}),this[mO(0x7f1)]['clear']();}['dispose'](){const mQ=a0bL;this['originalMaterials']['clear'](),this[mQ(0x7f1)]['clear'](),this['edgeMeshCache']['clear']();}}var Rd=(function(){const mR=a0bL;var i='b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:P8Yqdbk;3sezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfgocl4cifcd4hxdndndndnaoc9WGgmTmbcbhPcehsawcjdfhzalhHinaraH9Rax6midnaraHaxfgl9RcK6mbczhoinawcj;cbfaogifgoc9WfhOdndndndndnaHaic9WfgAco4fRbbaAci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOalRblalRbbgAco4gCaCciSgCE86bbaocGfalclfaCfgORbbaAcl4ciGgCaCciSgCE86bbaocVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbaoc7faOaCfgORbbaAciGgAaAciSgAE86bbaoctfaOaAfgARbbalRbegOco4gCaCciSgCE86bbaoc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc93faAaCfgARbbaOciGgOaOciSgOE86bbaoc94faAaOfgARbbalRbdgOco4gCaCciSgCE86bbaoc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc97faAaCfgARbbaOciGgOaOciSgOE86bbaoc98faAaOfgORbbalRbiglco4gAaAciSgAE86bbaoc99faOaAfgORbbalcl4ciGgAaAciSgAE86bbaoc9:faOaAfgORbbalcd4ciGgAaAciSgAE86bbaocufaOaAfgoRbbalciGglalciSglE86bbaoalfhlxdkaOalRbwalRbbgAcl4gCaCcsSgCE86bbaocGfalcwfaCfgORbbaAcsGgAaAcsSgAE86bbaocVfaOaAfgORbbalRbegAcl4gCaCcsSgCE86bbaoc7faOaCfgORbbaAcsGgAaAcsSgAE86bbaoctfaOaAfgORbbalRbdgAcl4gCaCcsSgCE86bbaoc91faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc4faOaAfgORbbalRbigAcl4gCaCcsSgCE86bbaoc93faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc94faOaAfgORbbalRblgAcl4gCaCcsSgCE86bbaoc95faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc96faOaAfgORbbalRbvgAcl4gCaCcsSgCE86bbaoc97faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc98faOaAfgORbbalRbogAcl4gCaCcsSgCE86bbaoc99faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc9:faOaAfgORbbalRbrglcl4gAaAcsSgAE86bbaocufaOaAfgoRbbalcsGglalcsSglE86bbaoalfhlxekaOal8Pbb83bbaOcwfalcwf8Pbb83bbalczfhlkdnaiam9pmbaiczfhoaral9RcL0mekkaiam6mialTmidnakTmbawaPfRbbhOcbhoazhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkkazcefhzaPcefgPad6hsalhHaPad9hmexvkkcbhlasceGmdxikalaxad2fhCdnakTmbcbhHcehsawcjdfhminaral9Rax6mialTmdalaxfhlawaHfRbbhOcbhoamhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkamcefhmaHcefgHad6hsaHad9hmbkaChlxikcbhocehsinaral9Rax6mdalTmealaxfhlaocefgoad6hsadao9hmbkaChlxdkcbhlasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqalmbkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;yzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2geTmbinababydbgdcwtcw91:Yadce91cjjj;8ifcjjj98G::NUdbabclfhbaecufgembkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfhiaeczfheadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb',j='b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;t9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;h8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgohAaoclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;uzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:EPliuo97eue978Jjjjjbca9Rhidndnadcl9hmbdnaec98GglTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaiaeciGgvcdtgdVcbczad9R;8kbaiabalcdtfglad;8qbbdnavTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkalaiad;8qbbskdnaec98GgxTmbcbhvabhdinadczfglalpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgvax6mbkkaxae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabaxcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbhdabheinaeaepbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbaeczfheadclfgdav6mbkkdnaval9pmbaialciGgdcdtgeVcbc;abae9R;8kbaiabavcdtfgvae;8qbbdnadTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiae;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb',k=new Uint8Array([0x0,0x61,0x73,0x6d,0x1,0x0,0x0,0x0,0x1,0x4,0x1,0x60,0x0,0x0,0x3,0x3,0x2,0x0,0x0,0x5,0x3,0x1,0x0,0x1,0xc,0x1,0x0,0xa,0x16,0x2,0xc,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0xfc,0xa,0x0,0x0,0xb,0x7,0x0,0x41,0x0,0xfd,0xf,0x1a,0xb]),m=new Uint8Array([0x20,0x0,0x41,0x2,0x1,0x6a,0x22,0x21,0x3,0x80,0xb,0x4,0xd,0x40,0x6,0xfd,0xa,0x7,0xf,0x74,0x7f,0x5,0x8,0xc,0x28,0x10,0x13,0x36,0x14,0x9,0x1b,0xff,0x71,0x11,0x2a,0x43,0x18,0x17,0x92,0x94,0x12,0xe,0x16,0x2d,0x46,0x45,0x38,0x72,0x65,0x15,0x19,0x3f,0x4b,0x88,0x6c,0x1c,0x76,0x1d,0x49,0x73]);if(typeof WebAssembly!=mR(0x3e3))return{'supported':!0x1};var v=WebAssembly['validate'](k)?j:i,w,x=WebAssembly[mR(0x1e3)](y(v),{})[mR(0x82c)](function(T){const mS=mR;w=T['instance'],w['exports'][mS(0x60e)]();});function y(T){const mT=mR;for(var U=new Uint8Array(T['length']),a0=0x0;a0<T[mT(0x3ea)];++a0){var a1=T[mT(0x5c0)](a0);U[a0]=a1>0x60?a1-0x61:a1>0x40?a1-0x27:a1+0x4;}for(var a2=0x0,a0=0x0;a0<T['length'];++a0)U[a2++]=U[a0]<0x3c?m[U[a0]]:(U[a0]-0x3c)*0x40+U[++a0];return U[mT(0x186)]['slice'](0x0,a2);}function z(U,a0,a1,a2,a3,a4){const mU=mR;var a5=w[mU(0xa48)]['sbrk'],a6=a1+0x3&-0x4,a7=a5(a6*a2),a8=a5(a3[mU(0x3ea)]),a9=new Uint8Array(w['exports']['memory'][mU(0x186)]);a9['set'](a3,a8);var ab=U(a7,a1,a2,a8,a3['length']);if(ab==0x0&&a4&&a4(a7,a6,a2),a0['set'](a9[mU(0x654)](a7,a7+a1*a2)),a5(a7-a5(0x0)),ab!=0x0)throw new Error(mU(0x2c2)+ab);}var B={'NONE':'','OCTAHEDRAL':'meshopt_decodeFilterOct','QUATERNION':mR(0x1bc),'EXPONENTIAL':mR(0x4d3)},E={'ATTRIBUTES':mR(0x84c),'TRIANGLES':'meshopt_decodeIndexBuffer','INDICES':'meshopt_decodeIndexSequence'},F=[],H=0x0;function L(T){const mV=mR;var U={'object':new Worker(T),'pending':0x0,'requests':{}};return U[mV(0x3e3)][mV(0xa76)]=function(a0){const mW=mV;var a1=a0['data'];U['pending']-=a1['count'],U[mW(0xa56)][a1['id']][a1['action']](a1[mW(0xaa2)]),delete U['requests'][a1['id']];},U;}function N(T){const mX=mR;for(var U=mX(0x6a6)+new Uint8Array(y(v))+']),\x20{}).then(function(result)\x20{\x20instance\x20=\x20result.instance;\x20instance.exports.__wasm_call_ctors();\x20});self.onmessage\x20=\x20workerProcess;'+z[mX(0x2d7)]()+S[mX(0x2d7)](),a0=new Blob([U],{'type':mX(0xb0e)}),a1=URL['createObjectURL'](a0),a2=0x0;a2<T;++a2)F[a2]=L(a1);URL[mX(0x492)](a1);}function R(T,U,a0,a1,a2){const mY=mR;for(var a3=F[0x0],a4=0x1;a4<F[mY(0x3ea)];++a4)F[a4][mY(0x85c)]<a3['pending']&&(a3=F[a4]);return new Promise(function(a5,a6){const mZ=mY;var a7=new Uint8Array(a0),a8=H++;a3[mZ(0x85c)]+=T,a3[mZ(0xa56)][a8]={'resolve':a5,'reject':a6},a3[mZ(0x3e3)][mZ(0xb9)]({'id':a8,'count':T,'size':U,'source':a7,'mode':a1,'filter':a2},[a7['buffer']]);});}function S(T){const n0=mR;x[n0(0x82c)](function(){const n1=n0;var U=T['data'];try{var a0=new Uint8Array(U[n1(0x675)]*U[n1(0x410)]);z(w[n1(0xa48)][U[n1(0x63f)]],a0,U[n1(0x675)],U['size'],U['source'],w[n1(0xa48)][U['filter']]),self[n1(0xb9)]({'id':U['id'],'count':U[n1(0x675)],'action':'resolve','value':a0},[a0['buffer']]);}catch(a1){self['postMessage']({'id':U['id'],'count':U[n1(0x675)],'action':n1(0x737),'value':a1});}});}return{'ready':x,'supported':!0x0,'useWorkers':function(T){N(T);},'decodeVertexBuffer':function(T,U,a0,a1,a2){const n2=mR;z(w[n2(0xa48)]['meshopt_decodeVertexBuffer'],T,U,a0,a1,w[n2(0xa48)][B[a2]]);},'decodeIndexBuffer':function(T,U,a0,a1){const n3=mR;z(w[n3(0xa48)]['meshopt_decodeIndexBuffer'],T,U,a0,a1);},'decodeIndexSequence':function(T,U,a0,a1){z(w['exports']['meshopt_decodeIndexSequence'],T,U,a0,a1);},'decodeGltfBuffer':function(T,U,a0,a1,a2,a3){z(w['exports'][E[a2]],T,U,a0,a1,w['exports'][B[a3]]);},'decodeGltfBufferAsync':function(T,U,a0,a1,a2){const n4=mR;return F[n4(0x3ea)]>0x0?R(T,U,a0,E[a1],B[a2]):x[n4(0x82c)](function(){const n5=n4;var a3=new Uint8Array(T*U);return z(w[n5(0xa48)][E[a1]],a3,T,U,a0,w['exports'][B[a2]]),a3;});}};}());function Wo(b,d){const n6=a0bL;if(d===a0aM)return console['warn']('THREE.BufferGeometryUtils.toTrianglesDrawMode():\x20Geometry\x20already\x20defined\x20as\x20triangles.'),b;if(d===a0aN||d===a0aO){let f=b[n6(0x232)]();if(f===null){const j=[],k=b[n6(0x7bc)](n6(0x1b7));if(k!==void 0x0){for(let m=0x0;m<k[n6(0x675)];m++)j[n6(0x4f5)](m);b[n6(0x512)](j),f=b['getIndex']();}else return console['error'](n6(0x162)),b;}const g=f[n6(0x675)]-0x2,h=[];if(d===a0aN){for(let p=0x1;p<=g;p++)h['push'](f['getX'](0x0)),h[n6(0x4f5)](f['getX'](p)),h['push'](f[n6(0xa7f)](p+0x1));}else{for(let u=0x0;u<g;u++)u%0x2===0x0?(h['push'](f['getX'](u)),h[n6(0x4f5)](f[n6(0xa7f)](u+0x1)),h[n6(0x4f5)](f['getX'](u+0x2))):(h[n6(0x4f5)](f[n6(0xa7f)](u+0x2)),h[n6(0x4f5)](f[n6(0xa7f)](u+0x1)),h['push'](f[n6(0xa7f)](u)));}h[n6(0x3ea)]/0x3!==g&&console['error'](n6(0x606));const i=b['clone']();return i[n6(0x512)](h),i[n6(0x69c)](),i;}else return console[n6(0x644)](n6(0x562),d),b;}function Pd(){const n7=a0bL;if(typeof navigator>'u'||typeof window>'u')return!0x1;const b=/Android|iPhone|iPod|Mobile/i[n7(0x2b6)](navigator['userAgent']),c=window['screen'][n7(0xb1f)]<=0x3e8,d='ontouchstart'in window||navigator['maxTouchPoints']>0x0;return b&&(c||d);}class kd extends a0B{constructor(b){const n8=a0bL;super(b),this['dracoLoader']=null,this[n8(0x64c)]=null,this[n8(0x830)]=null,this[n8(0x5bf)]=[],this['register'](function(c){return new Gd(c);}),this['register'](function(c){return new zd(c);}),this['register'](function(c){return new Xd(c);}),this[n8(0xd3)](function(c){return new $d(c);}),this[n8(0xd3)](function(c){return new Zd(c);}),this['register'](function(c){return new qd(c);}),this[n8(0xd3)](function(c){return new Vd(c);}),this['register'](function(c){return new jd(c);}),this['register'](function(c){return new Yd(c);}),this['register'](function(c){return new Ud(c);}),this['register'](function(c){return new Kd(c);}),this['register'](function(c){return new Hd(c);}),this['register'](function(c){return new Jd(c);}),this[n8(0xd3)](function(c){return new Wd(c);}),this[n8(0xd3)](function(c){return new Od(c);}),this[n8(0xd3)](function(c){return new eu(c);}),this['register'](function(c){return new tu(c);});}['load'](b,d,f,g){const n9=a0bL,i=this;let j;if(this['resourcePath']!=='')j=this[n9(0x67a)];else{if(this['path']!==''){const p=a0aP['extractUrlBase'](b);j=a0aP['resolveURL'](p,this[n9(0x887)]);}else j=a0aP['extractUrlBase'](b);}this[n9(0x17e)][n9(0x608)](b);const k=function(u){const nb=n9;g?g(u):console['error'](u),i[nb(0x17e)]['itemError'](b),i[nb(0x17e)]['itemEnd'](b);},m=new a0C(this['manager']);m['setPath'](this['path']),m['setResponseType'](n9(0xb04)),m['setRequestHeader'](this[n9(0x7e1)]),m[n9(0x4b4)](this[n9(0x30d)]),m[n9(0xb08)](b,function(u){try{i['parse'](u,j,function(v){d(v),i['manager']['itemEnd'](b);},k);}catch(v){k(v);}},f,k);}['setDRACOLoader'](b){const nj=a0bL;return this[nj(0x45b)]=b,this;}['setKTX2Loader'](b){const nk=a0bL;return this[nk(0x64c)]=b,this;}[a0bL(0x2b8)](b){return this['meshoptDecoder']=b,this;}['register'](b){const nm=a0bL;return this['pluginCallbacks']['indexOf'](b)===-0x1&&this['pluginCallbacks'][nm(0x4f5)](b),this;}[a0bL(0x123)](b){return this['pluginCallbacks']['indexOf'](b)!==-0x1&&this['pluginCallbacks']['splice'](this['pluginCallbacks']['indexOf'](b),0x1),this;}[a0bL(0x54a)](b,f,g,i){const np=a0bL;let j;const k={},m={},p=new TextDecoder();if(typeof b==np(0x45f))j=JSON['parse'](b);else{if(b instanceof ArrayBuffer){if(p[np(0x439)](new Uint8Array(b,0x0,0x4))===Ec){try{k[V[np(0x7de)]]=new iu(b);}catch(w){i&&i(w);return;}j=JSON[np(0x54a)](k[V[np(0x7de)]][np(0x838)]);}else j=JSON[np(0x54a)](p[np(0x439)](b));}else j=b;}if(j[np(0x49c)]===void 0x0||j[np(0x49c)]['version'][0x0]<0x2){i&&i(new Error(np(0x91b)));return;}const v=new fu(j,{'path':f||this[np(0x67a)]||'','crossOrigin':this['crossOrigin'],'requestHeader':this[np(0x7e1)],'manager':this['manager'],'ktx2Loader':this[np(0x64c)],'meshoptDecoder':this['meshoptDecoder']});v[np(0x808)][np(0x88a)](this[np(0x7e1)]);for(let x=0x0;x<this['pluginCallbacks'][np(0x3ea)];x++){const y=this['pluginCallbacks'][x](v);y[np(0x74)]||console[np(0x644)]('THREE.GLTFLoader:\x20Invalid\x20plugin\x20found:\x20missing\x20name'),m[y['name']]=y,k[y['name']]=!0x0;}if(j['extensionsUsed'])for(let z=0x0;z<j['extensionsUsed'][np(0x3ea)];++z){const B=j[np(0x79d)][z],E=j['extensionsRequired']||[];switch(B){case V[np(0x27e)]:k[B]=new Nd();break;case V[np(0x33e)]:k[B]=new su(j,this[np(0x45b)]);break;case V[np(0x182)]:k[B]=new nu();break;case V[np(0x939)]:k[B]=new ru();break;default:E['indexOf'](B)>=0x0&&m[B]===void 0x0&&console['warn'](np(0xac)+B+'\x22.');}}v['setExtensions'](k),v['setPlugins'](m),v[np(0x54a)](g,i);}['parseAsync'](b,c){const d=this;return new Promise(function(f,g){const nq=a0b;d[nq(0x54a)](b,c,f,g);});}}function Fd(){let b={};return{'get':function(c){return b[c];},'add':function(c,d){b[c]=d;},'remove':function(c){delete b[c];},'removeAll':function(){b={};}};}const V={'KHR_BINARY_GLTF':'KHR_binary_glTF','KHR_DRACO_MESH_COMPRESSION':a0bL(0x3a0),'KHR_LIGHTS_PUNCTUAL':a0bL(0xa70),'KHR_MATERIALS_CLEARCOAT':'KHR_materials_clearcoat','KHR_MATERIALS_DISPERSION':'KHR_materials_dispersion','KHR_MATERIALS_IOR':'KHR_materials_ior','KHR_MATERIALS_SHEEN':'KHR_materials_sheen','KHR_MATERIALS_SPECULAR':'KHR_materials_specular','KHR_MATERIALS_TRANSMISSION':'KHR_materials_transmission','KHR_MATERIALS_IRIDESCENCE':a0bL(0xd8),'KHR_MATERIALS_ANISOTROPY':a0bL(0x2fd),'KHR_MATERIALS_UNLIT':a0bL(0x3c0),'KHR_MATERIALS_VOLUME':a0bL(0x214),'KHR_TEXTURE_BASISU':'KHR_texture_basisu','KHR_TEXTURE_TRANSFORM':a0bL(0x46c),'KHR_MESH_QUANTIZATION':'KHR_mesh_quantization','KHR_MATERIALS_EMISSIVE_STRENGTH':'KHR_materials_emissive_strength','EXT_MATERIALS_BUMP':'EXT_materials_bump','EXT_TEXTURE_WEBP':a0bL(0x142),'EXT_TEXTURE_AVIF':a0bL(0x904),'EXT_MESHOPT_COMPRESSION':a0bL(0x3a1),'EXT_MESH_GPU_INSTANCING':a0bL(0x69e)};class Od{constructor(b){this['parser']=b,this['name']=V['KHR_LIGHTS_PUNCTUAL'],this['cache']={'refs':{},'uses':{}};}[a0bL(0x7cc)](){const nv=a0bL,b=this['parser'],c=this[nv(0x359)][nv(0x286)]['nodes']||[];for(let d=0x0,f=c[nv(0x3ea)];d<f;d++){const g=c[d];g['extensions']&&g['extensions'][this[nv(0x74)]]&&g[nv(0xb0f)][this[nv(0x74)]]['light']!==void 0x0&&b['_addNodeRef'](this['cache'],g[nv(0xb0f)][this[nv(0x74)]]['light']);}}['_loadLight'](b){const nw=a0bL,c=this['parser'],f=nw(0x5ca)+b;let g=c[nw(0x6fd)]['get'](f);if(g)return g;const i=c[nw(0x286)],j=((i['extensions']&&i['extensions'][this['name']]||{})[nw(0x216)]||[])[b];let k;const m=new a0G(0xffffff);j[nw(0x66e)]!==void 0x0&&m[nw(0xa9c)](j[nw(0x66e)][0x0],j['color'][0x1],j['color'][0x2],a0E);const o=j['range']!==void 0x0?j['range']:0x0;switch(j[nw(0x736)]){case'directional':k=new a0aS(m),k[nw(0x4b7)][nw(0x1b7)]['set'](0x0,0x0,-0x1),k[nw(0x577)](k['target']);break;case'point':k=new a0aR(m),k['distance']=o;break;case nw(0x81e):k=new a0aQ(m),k[nw(0x488)]=o,j['spot']=j[nw(0x81e)]||{},j[nw(0x81e)][nw(0x2f6)]=j[nw(0x81e)][nw(0x2f6)]!==void 0x0?j['spot'][nw(0x2f6)]:0x0,j[nw(0x81e)][nw(0x62f)]=j[nw(0x81e)][nw(0x62f)]!==void 0x0?j['spot'][nw(0x62f)]:Math['PI']/0x4,k[nw(0x3c9)]=j['spot']['outerConeAngle'],k['penumbra']=0x1-j[nw(0x81e)]['innerConeAngle']/j['spot'][nw(0x62f)],k['target']['position'][nw(0x9fd)](0x0,0x0,-0x1),k['add'](k['target']);break;default:throw new Error('THREE.GLTFLoader:\x20Unexpected\x20light\x20type:\x20'+j['type']);}return k['position']['set'](0x0,0x0,0x0),k['decay']=0x2,mt(k,j),j['intensity']!==void 0x0&&(k['intensity']=j[nw(0x364)]),k['name']=c[nw(0x997)](j[nw(0x74)]||nw(0x7b9)+b),g=Promise[nw(0x1e6)](k),c['cache'][nw(0x577)](f,g),g;}[a0bL(0x426)](b,c){const nx=a0bL;if(b==='light')return this[nx(0x14c)](c);}['createNodeAttachment'](b){const ny=a0bL,d=this,f=this['parser'],g=f[ny(0x286)]['nodes'][b],h=(g['extensions']&&g[ny(0xb0f)][this[ny(0x74)]]||{})['light'];return h===void 0x0?null:this[ny(0x14c)](h)[ny(0x82c)](function(i){const nz=ny;return f[nz(0x895)](d[nz(0x6fd)],h,i);});}}class Nd{constructor(){const nB=a0bL;this[nB(0x74)]=V['KHR_MATERIALS_UNLIT'];}['getMaterialType'](){return a0g;}[a0bL(0x609)](b,c,d){const nC=a0bL,f=[];b['color']=new a0G(0x1,0x1,0x1),b[nC(0x6fb)]=0x1;const g=c[nC(0x571)];if(g){if(Array['isArray'](g['baseColorFactor'])){const h=g['baseColorFactor'];b['color']['setRGB'](h[0x0],h[0x1],h[0x2],a0E),b['opacity']=h[0x3];}g[nC(0x4f3)]!==void 0x0&&f['push'](d['assignTexture'](b,'map',g[nC(0x4f3)],a0D));}return Promise[nC(0x90)](f);}}class Ud{constructor(b){const nD=a0bL;this[nD(0x359)]=b,this[nD(0x74)]=V[nD(0x6a3)];}[a0bL(0x906)](b,c){const nE=a0bL,d=this[nE(0x359)][nE(0x286)]['materials'][b];if(!d['extensions']||!d['extensions'][this[nE(0x74)]])return Promise['resolve']();const f=d['extensions'][this[nE(0x74)]][nE(0x8e)];return f!==void 0x0&&(c[nE(0xbb)]=f),Promise[nE(0x1e6)]();}}class Gd{constructor(b){const nF=a0bL;this[nF(0x359)]=b,this[nF(0x74)]=V[nF(0x2f8)];}['getMaterialType'](b){const nG=a0bL,c=this['parser']['json'][nG(0x495)][b];return!c['extensions']||!c['extensions'][this['name']]?null:a0aH;}[a0bL(0x906)](b,d){const nH=a0bL,f=this['parser'],g=f['json'][nH(0x495)][b];if(!g['extensions']||!g['extensions'][this[nH(0x74)]])return Promise['resolve']();const h=[],i=g[nH(0xb0f)][this[nH(0x74)]];if(i[nH(0xadc)]!==void 0x0&&(d[nH(0x977)]=i[nH(0xadc)]),i[nH(0x950)]!==void 0x0&&h[nH(0x4f5)](f['assignTexture'](d,nH(0x141),i[nH(0x950)])),i[nH(0x2f1)]!==void 0x0&&(d['clearcoatRoughness']=i['clearcoatRoughnessFactor']),i[nH(0x23e)]!==void 0x0&&h['push'](f[nH(0x4e3)](d,nH(0x228),i['clearcoatRoughnessTexture'])),i['clearcoatNormalTexture']!==void 0x0&&(h[nH(0x4f5)](f['assignTexture'](d,nH(0x76a),i[nH(0xab8)])),i['clearcoatNormalTexture'][nH(0x61e)]!==void 0x0)){const j=i['clearcoatNormalTexture'][nH(0x61e)];d['clearcoatNormalScale']=new a0l(j,j);}return Promise[nH(0x90)](h);}}class zd{constructor(b){const nI=a0bL;this['parser']=b,this[nI(0x74)]=V[nI(0x4a5)];}['getMaterialType'](b){const nJ=a0bL,c=this['parser']['json']['materials'][b];return!c[nJ(0xb0f)]||!c['extensions'][this[nJ(0x74)]]?null:a0aH;}['extendMaterialParams'](b,c){const nK=a0bL,d=this[nK(0x359)][nK(0x286)]['materials'][b];if(!d['extensions']||!d['extensions'][this['name']])return Promise['resolve']();const f=d[nK(0xb0f)][this[nK(0x74)]];return c['dispersion']=f['dispersion']!==void 0x0?f[nK(0x62c)]:0x0,Promise['resolve']();}}class Hd{constructor(b){const nL=a0bL;this[nL(0x359)]=b,this[nL(0x74)]=V['KHR_MATERIALS_IRIDESCENCE'];}[a0bL(0x61a)](b){const nM=a0bL,c=this['parser'][nM(0x286)]['materials'][b];return!c['extensions']||!c['extensions'][this[nM(0x74)]]?null:a0aH;}[a0bL(0x906)](b,c){const nN=a0bL,d=this[nN(0x359)],f=d[nN(0x286)]['materials'][b];if(!f['extensions']||!f['extensions'][this[nN(0x74)]])return Promise['resolve']();const g=[],h=f[nN(0xb0f)][this['name']];return h['iridescenceFactor']!==void 0x0&&(c[nN(0x575)]=h[nN(0x636)]),h[nN(0x58b)]!==void 0x0&&g['push'](d[nN(0x4e3)](c,nN(0x9de),h['iridescenceTexture'])),h['iridescenceIor']!==void 0x0&&(c['iridescenceIOR']=h['iridescenceIor']),c[nN(0x795)]===void 0x0&&(c[nN(0x795)]=[0x64,0x190]),h[nN(0x3ce)]!==void 0x0&&(c[nN(0x795)][0x0]=h[nN(0x3ce)]),h['iridescenceThicknessMaximum']!==void 0x0&&(c['iridescenceThicknessRange'][0x1]=h[nN(0x834)]),h[nN(0x983)]!==void 0x0&&g['push'](d['assignTexture'](c,'iridescenceThicknessMap',h['iridescenceThicknessTexture'])),Promise['all'](g);}}class qd{constructor(b){const nO=a0bL;this[nO(0x359)]=b,this[nO(0x74)]=V[nO(0x233)];}['getMaterialType'](b){const nP=a0bL,c=this[nP(0x359)][nP(0x286)][nP(0x495)][b];return!c['extensions']||!c[nP(0xb0f)][this['name']]?null:a0aH;}['extendMaterialParams'](b,d){const nQ=a0bL,f=this['parser'],g=f[nQ(0x286)][nQ(0x495)][b];if(!g[nQ(0xb0f)]||!g['extensions'][this[nQ(0x74)]])return Promise['resolve']();const h=[];d['sheenColor']=new a0G(0x0,0x0,0x0),d[nQ(0x506)]=0x0,d['sheen']=0x1;const i=g['extensions'][this['name']];if(i[nQ(0x759)]!==void 0x0){const j=i[nQ(0x759)];d[nQ(0x605)][nQ(0xa9c)](j[0x0],j[0x1],j[0x2],a0E);}return i[nQ(0x67e)]!==void 0x0&&(d['sheenRoughness']=i['sheenRoughnessFactor']),i[nQ(0x51c)]!==void 0x0&&h['push'](f[nQ(0x4e3)](d,'sheenColorMap',i['sheenColorTexture'],a0D)),i[nQ(0xa0c)]!==void 0x0&&h['push'](f['assignTexture'](d,nQ(0x311),i['sheenRoughnessTexture'])),Promise['all'](h);}}class Vd{constructor(b){const nR=a0bL;this['parser']=b,this['name']=V[nR(0x8fd)];}[a0bL(0x61a)](b){const nS=a0bL,c=this['parser']['json']['materials'][b];return!c['extensions']||!c['extensions'][this[nS(0x74)]]?null:a0aH;}['extendMaterialParams'](b,c){const nT=a0bL,d=this[nT(0x359)],f=d['json']['materials'][b];if(!f['extensions']||!f['extensions'][this['name']])return Promise[nT(0x1e6)]();const g=[],h=f['extensions'][this[nT(0x74)]];return h[nT(0x490)]!==void 0x0&&(c[nT(0x791)]=h[nT(0x490)]),h[nT(0xa17)]!==void 0x0&&g[nT(0x4f5)](d['assignTexture'](c,'transmissionMap',h['transmissionTexture'])),Promise[nT(0x90)](g);}}class jd{constructor(b){const nU=a0bL;this[nU(0x359)]=b,this[nU(0x74)]=V['KHR_MATERIALS_VOLUME'];}[a0bL(0x61a)](b){const nV=a0bL,c=this[nV(0x359)][nV(0x286)][nV(0x495)][b];return!c['extensions']||!c['extensions'][this['name']]?null:a0aH;}[a0bL(0x906)](b,d){const nW=a0bL,f=this['parser'],g=f['json'][nW(0x495)][b];if(!g[nW(0xb0f)]||!g['extensions'][this['name']])return Promise['resolve']();const h=[],i=g[nW(0xb0f)][this[nW(0x74)]];d['thickness']=i[nW(0x581)]!==void 0x0?i[nW(0x581)]:0x0,i[nW(0x8dd)]!==void 0x0&&h['push'](f['assignTexture'](d,'thicknessMap',i[nW(0x8dd)])),d[nW(0x38a)]=i['attenuationDistance']||0x1/0x0;const j=i['attenuationColor']||[0x1,0x1,0x1];return d[nW(0x167)]=new a0G()['setRGB'](j[0x0],j[0x1],j[0x2],a0E),Promise[nW(0x90)](h);}}class Yd{constructor(b){const nX=a0bL;this[nX(0x359)]=b,this['name']=V['KHR_MATERIALS_IOR'];}[a0bL(0x61a)](b){const nY=a0bL,c=this['parser'][nY(0x286)]['materials'][b];return!c['extensions']||!c['extensions'][this['name']]?null:a0aH;}['extendMaterialParams'](b,c){const nZ=a0bL,d=this['parser']['json'][nZ(0x495)][b];if(!d[nZ(0xb0f)]||!d[nZ(0xb0f)][this['name']])return Promise['resolve']();const f=d[nZ(0xb0f)][this[nZ(0x74)]];return c[nZ(0x8e5)]=f['ior']!==void 0x0?f[nZ(0x8e5)]:1.5,Promise[nZ(0x1e6)]();}}class Kd{constructor(b){const o0=a0bL;this[o0(0x359)]=b,this[o0(0x74)]=V['KHR_MATERIALS_SPECULAR'];}['getMaterialType'](b){const o1=a0bL,c=this['parser'][o1(0x286)]['materials'][b];return!c[o1(0xb0f)]||!c[o1(0xb0f)][this[o1(0x74)]]?null:a0aH;}['extendMaterialParams'](b,d){const o2=a0bL,f=this['parser'],g=f[o2(0x286)]['materials'][b];if(!g[o2(0xb0f)]||!g[o2(0xb0f)][this[o2(0x74)]])return Promise['resolve']();const h=[],i=g['extensions'][this['name']];d[o2(0x7ac)]=i['specularFactor']!==void 0x0?i[o2(0x13f)]:0x1,i['specularTexture']!==void 0x0&&h['push'](f[o2(0x4e3)](d,o2(0x3c8),i[o2(0x556)]));const j=i[o2(0x87)]||[0x1,0x1,0x1];return d['specularColor']=new a0G()[o2(0xa9c)](j[0x0],j[0x1],j[0x2],a0E),i[o2(0x437)]!==void 0x0&&h[o2(0x4f5)](f['assignTexture'](d,o2(0x1c7),i[o2(0x437)],a0D)),Promise['all'](h);}}class Wd{constructor(b){const o3=a0bL;this[o3(0x359)]=b,this[o3(0x74)]=V['EXT_MATERIALS_BUMP'];}[a0bL(0x61a)](b){const o4=a0bL,c=this['parser']['json']['materials'][b];return!c[o4(0xb0f)]||!c[o4(0xb0f)][this['name']]?null:a0aH;}['extendMaterialParams'](b,c){const o5=a0bL,d=this[o5(0x359)],f=d['json'][o5(0x495)][b];if(!f[o5(0xb0f)]||!f[o5(0xb0f)][this['name']])return Promise[o5(0x1e6)]();const g=[],h=f['extensions'][this['name']];return c[o5(0x3f4)]=h[o5(0x7a7)]!==void 0x0?h['bumpFactor']:0x1,h[o5(0x75a)]!==void 0x0&&g['push'](d['assignTexture'](c,o5(0x145),h[o5(0x75a)])),Promise['all'](g);}}class Jd{constructor(b){this['parser']=b,this['name']=V['KHR_MATERIALS_ANISOTROPY'];}[a0bL(0x61a)](b){const o6=a0bL,c=this[o6(0x359)]['json'][o6(0x495)][b];return!c[o6(0xb0f)]||!c['extensions'][this['name']]?null:a0aH;}['extendMaterialParams'](b,c){const o7=a0bL,d=this['parser'],f=d['json'][o7(0x495)][b];if(!f['extensions']||!f['extensions'][this['name']])return Promise[o7(0x1e6)]();const g=[],h=f[o7(0xb0f)][this[o7(0x74)]];return h[o7(0x859)]!==void 0x0&&(c['anisotropy']=h[o7(0x859)]),h[o7(0x65a)]!==void 0x0&&(c[o7(0x65a)]=h[o7(0x65a)]),h['anisotropyTexture']!==void 0x0&&g[o7(0x4f5)](d['assignTexture'](c,o7(0x48d),h['anisotropyTexture'])),Promise['all'](g);}}class Xd{constructor(b){const o8=a0bL;this['parser']=b,this['name']=V[o8(0x49d)];}[a0bL(0x481)](b){const o9=a0bL,c=this[o9(0x359)],d=c[o9(0x286)],f=d[o9(0x375)][b];if(!f['extensions']||!f[o9(0xb0f)][this['name']])return null;const g=f[o9(0xb0f)][this[o9(0x74)]],h=c['options']['ktx2Loader'];if(!h){if(d['extensionsRequired']&&d['extensionsRequired'][o9(0x3ae)](this[o9(0x74)])>=0x0)throw new Error('THREE.GLTFLoader:\x20setKTX2Loader\x20must\x20be\x20called\x20before\x20loading\x20KTX2\x20textures');return null;}return c['loadTextureImage'](b,g['source'],h);}}class $d{constructor(b){const ob=a0bL;this['parser']=b,this[ob(0x74)]=V['EXT_TEXTURE_WEBP'],this['isSupported']=null;}['loadTexture'](b){const oj=a0bL,d=this[oj(0x74)],f=this[oj(0x359)],g=f['json'],i=g[oj(0x375)][b];if(!i['extensions']||!i[oj(0xb0f)][d])return null;const j=i[oj(0xb0f)][d],k=g['images'][j['source']];let m=f[oj(0xa54)];if(k['uri']){const p=f[oj(0x15b)][oj(0x17e)]['getHandler'](k['uri']);p!==null&&(m=p);}return this[oj(0x115)]()['then'](function(u){const ok=oj;if(u)return f['loadTextureImage'](b,j['source'],m);if(g[ok(0x1d9)]&&g[ok(0x1d9)][ok(0x3ae)](d)>=0x0)throw new Error(ok(0x3cf));return f['loadTexture'](b);});}['detectSupport'](){const om=a0bL;return this[om(0x275)]||(this[om(0x275)]=new Promise(function(b){const op=om,c=new Image();c[op(0x6c9)]=op(0x7b1),c['onload']=c[op(0x9d0)]=function(){b(c['height']===0x1);};})),this[om(0x275)];}}class Zd{constructor(b){const oq=a0bL;this[oq(0x359)]=b,this['name']=V[oq(0xaee)],this['isSupported']=null;}['loadTexture'](b){const ov=a0bL,d=this[ov(0x74)],f=this['parser'],g=f[ov(0x286)],i=g[ov(0x375)][b];if(!i[ov(0xb0f)]||!i[ov(0xb0f)][d])return null;const j=i['extensions'][d],k=g['images'][j['source']];let m=f[ov(0xa54)];if(k['uri']){const p=f[ov(0x15b)]['manager'][ov(0xaea)](k['uri']);p!==null&&(m=p);}return this[ov(0x115)]()['then'](function(u){const ow=ov;if(u)return f['loadTextureImage'](b,j[ow(0x1f0)],m);if(g[ow(0x1d9)]&&g[ow(0x1d9)][ow(0x3ae)](d)>=0x0)throw new Error('THREE.GLTFLoader:\x20AVIF\x20required\x20by\x20asset\x20but\x20unsupported.');return f[ow(0x481)](b);});}[a0bL(0x115)](){const ox=a0bL;return this[ox(0x275)]||(this['isSupported']=new Promise(function(b){const oy=ox,c=new Image();c['src']=oy(0xa01),c[oy(0x2f2)]=c[oy(0x9d0)]=function(){const oz=oy;b(c[oz(0x19e)]===0x1);};})),this[ox(0x275)];}}class eu{constructor(b){const oB=a0bL;this['name']=V[oB(0x44a)],this[oB(0x359)]=b;}['loadBufferView'](b){const oC=a0bL,c=this[oC(0x359)]['json'],d=c[oC(0x2f9)][b];if(d[oC(0xb0f)]&&d[oC(0xb0f)][this[oC(0x74)]]){const f=d[oC(0xb0f)][this[oC(0x74)]],g=this['parser']['getDependency'](oC(0x186),f[oC(0x186)]),h=this[oC(0x359)]['options'][oC(0x830)];if(!h||!h[oC(0x1ab)]){if(c[oC(0x1d9)]&&c[oC(0x1d9)][oC(0x3ae)](this['name'])>=0x0)throw new Error('THREE.GLTFLoader:\x20setMeshoptDecoder\x20must\x20be\x20called\x20before\x20loading\x20compressed\x20files');return null;}return g[oC(0x82c)](function(i){const oD=oC,j=f[oD(0xa4f)]||0x0,k=f[oD(0x175)]||0x0,m=f['count'],p=f[oD(0x27b)],v=new Uint8Array(i,j,k);return h[oD(0x68f)]?h['decodeGltfBufferAsync'](m,p,v,f[oD(0x63f)],f[oD(0x2e7)])[oD(0x82c)](function(w){const oE=oD;return w[oE(0x186)];}):h[oD(0x9b9)][oD(0x82c)](function(){const oF=oD,w=new ArrayBuffer(m*p);return h[oF(0xb1c)](new Uint8Array(w),m,p,v,f[oF(0x63f)],f[oF(0x2e7)]),w;});});}else return null;}}class tu{constructor(b){this['name']=V['EXT_MESH_GPU_INSTANCING'],this['parser']=b;}[a0bL(0x82d)](b){const oG=a0bL,d=this[oG(0x359)][oG(0x286)],f=d[oG(0x5cd)][b];if(!f[oG(0xb0f)]||!f['extensions'][this[oG(0x74)]]||f[oG(0x5c1)]===void 0x0)return null;const g=d['meshes'][f[oG(0x5c1)]];for(const m of g[oG(0x339)])if(m['mode']!==ke[oG(0x63a)]&&m[oG(0x63f)]!==ke[oG(0x76d)]&&m[oG(0x63f)]!==ke[oG(0x931)]&&m['mode']!==void 0x0)return null;const i=f['extensions'][this[oG(0x74)]]['attributes'],j=[],k={};for(const p in i)j[oG(0x4f5)](this['parser']['getDependency']('accessor',i[p])[oG(0x82c)](r=>(k[p]=r,k[p])));return j['length']<0x1?null:(j['push'](this[oG(0x359)]['createNodeMesh'](b)),Promise[oG(0x90)](j)['then'](r=>{const oH=oG,v=r['pop'](),x=v[oH(0x881)]?v['children']:[v],z=r[0x0][oH(0x675)],F=[];for(const H of x){const L=new a0m(),N=new a0c(),R=new a0au(),S=new a0c(0x1,0x1,0x1),T=new a0aw(H[oH(0x813)],H['material'],z);for(let U=0x0;U<z;U++)k['TRANSLATION']&&N['fromBufferAttribute'](k[oH(0x611)],U),k['ROTATION']&&R['fromBufferAttribute'](k[oH(0x9e1)],U),k[oH(0x304)]&&S[oH(0x6be)](k['SCALE'],U),T['setMatrixAt'](U,L['compose'](N,R,S));for(const a0 in k)if(a0===oH(0xafe)){const a1=k[a0];T[oH(0xa23)]=new a0aT(a1['array'],a1['itemSize'],a1[oH(0xa36)]);}else a0!=='TRANSLATION'&&a0!==oH(0x9e1)&&a0!==oH(0x304)&&H['geometry'][oH(0xe4)](a0,k[a0]);a0d[oH(0x9e4)][oH(0x3fe)][oH(0x6a7)](T,H),this['parser']['assignFinalMaterial'](T),F[oH(0x4f5)](T);}return v['isGroup']?(v['clear'](),v[oH(0x577)](...F),v):F[0x0];}));}}const Ec='glTF',$i=0xc,Jo={'JSON':0x4e4f534a,'BIN':0x4e4942};class iu{constructor(b){const oI=a0bL;this[oI(0x74)]=V['KHR_BINARY_GLTF'],this[oI(0x838)]=null,this['body']=null;const d=new DataView(b,0x0,$i),f=new TextDecoder();if(this['header']={'magic':f[oI(0x439)](new Uint8Array(b['slice'](0x0,0x4))),'version':d[oI(0x398)](0x4,!0x0),'length':d['getUint32'](0x8,!0x0)},this['header'][oI(0x25d)]!==Ec)throw new Error('THREE.GLTFLoader:\x20Unsupported\x20glTF-Binary\x20header.');if(this['header']['version']<0x2)throw new Error(oI(0x225));const g=this[oI(0x2ce)][oI(0x3ea)]-$i,i=new DataView(b,$i);let j=0x0;for(;j<g;){const k=i[oI(0x398)](j,!0x0);j+=0x4;const m=i[oI(0x398)](j,!0x0);if(j+=0x4,m===Jo[oI(0xa75)]){const p=new Uint8Array(b,$i+j,k);this['content']=f[oI(0x439)](p);}else{if(m===Jo['BIN']){const u=$i+j;this['body']=b[oI(0x504)](u,u+k);}}j+=k;}if(this[oI(0x838)]===null)throw new Error('THREE.GLTFLoader:\x20JSON\x20content\x20not\x20found.');}}class su{constructor(b,c){const oJ=a0bL;if(!c)throw new Error(oJ(0x71d));this['name']=V[oJ(0x33e)],this[oJ(0x286)]=b,this['dracoLoader']=c,this[oJ(0x45b)][oJ(0x639)]();}[a0bL(0x6f1)](b,f){const oK=a0bL,i=this['json'],j=this[oK(0x45b)],k=b[oK(0xb0f)][this['name']][oK(0x69b)],m=b['extensions'][this['name']][oK(0x4e1)],p={},v={},w={};for(const x in m){const y=Sr[x]||x[oK(0x80b)]();p[y]=m[x];}for(const z in b[oK(0x4e1)]){const B=Sr[z]||z[oK(0x80b)]();if(m[z]!==void 0x0){const E=i['accessors'][b[oK(0x4e1)][z]],F=Ci[E['componentType']];w[B]=F['name'],v[B]=E['normalized']===!0x0;}}return f[oK(0x426)](oK(0x69b),k)['then'](function(H){return new Promise(function(L,N){j['decodeDracoFile'](H,function(R){const oL=a0b;for(const S in R['attributes']){const T=R[oL(0x4e1)][S],U=v[S];U!==void 0x0&&(T['normalized']=U);}L(R);},p,w,a0E,N);});});}}class nu{constructor(){const oM=a0bL;this['name']=V[oM(0x182)];}[a0bL(0x8d2)](b,c){const oN=a0bL;return(c['texCoord']===void 0x0||c['texCoord']===b[oN(0x34a)])&&c[oN(0x3fb)]===void 0x0&&c['rotation']===void 0x0&&c['scale']===void 0x0||(b=b['clone'](),c[oN(0x2d8)]!==void 0x0&&(b['channel']=c['texCoord']),c['offset']!==void 0x0&&b[oN(0x3fb)]['fromArray'](c['offset']),c['rotation']!==void 0x0&&(b[oN(0x46b)]=c['rotation']),c[oN(0x61e)]!==void 0x0&&b['repeat']['fromArray'](c['scale']),b[oN(0x12d)]=!0x0),b;}}class ru{constructor(){const oO=a0bL;this[oO(0x74)]=V['KHR_MESH_QUANTIZATION'];}}class Cc extends a0bi{constructor(b,c,d,f){super(b,c,d,f);}['copySampleValue_'](b){const oP=a0bL,c=this[oP(0x772)],d=this[oP(0xae0)],f=this['valueSize'],g=b*f*0x3+f;for(let h=0x0;h!==f;h++)c[h]=d[g+h];return c;}[a0bL(0x544)](i,j,k,z){const oQ=a0bL,F=this[oQ(0x772)],H=this['sampleValues'],L=this['valueSize'],N=L*0x2,R=L*0x3,S=z-j,T=(k-j)/S,U=T*T,a0=U*T,a1=i*R,a2=a1-R,a3=-0x2*a0+0x3*U,a4=a0-U,a5=0x1-a3,a6=a4-U+T;for(let a7=0x0;a7!==L;a7++){const a8=H[a2+a7+L],a9=H[a2+a7+N]*S,ab=H[a1+a7+L],aj=H[a1+a7]*S;F[a7]=a5*a8+a6*a9+a3*ab+a4*aj;}return F;}}const ou=new a0au();class au extends Cc{['interpolate_'](b,c,d,f){const oR=a0bL,g=super[oR(0x544)](b,c,d,f);return ou['fromArray'](g)['normalize']()['toArray'](g),g;}}const ke={'POINTS':0x0,'LINES':0x1,'LINE_LOOP':0x2,'LINE_STRIP':0x3,'TRIANGLES':0x4,'TRIANGLE_STRIP':0x5,'TRIANGLE_FAN':0x6},Ci={0x1400:Int8Array,0x1401:Uint8Array,0x1402:Int16Array,0x1403:Uint16Array,0x1405:Uint32Array,0x1406:Float32Array},Xo={0x2600:a0ad,0x2601:a0L,0x2700:a0aZ,0x2701:a0aY,0x2702:a0aX,0x2703:a0M},$o={0x812f:a0b1,0x8370:a0b0,0x2901:a0ak},Xn={'SCALAR':0x1,'VEC2':0x2,'VEC3':0x3,'VEC4':0x4,'MAT2':0x4,'MAT3':0x9,'MAT4':0x10},Sr={'POSITION':a0bL(0x1b7),'NORMAL':'normal','TANGENT':'tangent','TEXCOORD_0':'uv','TEXCOORD_1':a0bL(0xe5),'TEXCOORD_2':a0bL(0x6ad),'TEXCOORD_3':a0bL(0x799),'COLOR_0':a0bL(0x66e),'WEIGHTS_0':a0bL(0x586),'JOINTS_0':a0bL(0x714)},xt={'scale':a0bL(0x61e),'translation':a0bL(0x1b7),'rotation':a0bL(0x122),'weights':'morphTargetInfluences'},cu={'CUBICSPLINE':void 0x0,'LINEAR':a0bd,'STEP':a0bc},$n={'OPAQUE':a0bL(0x8ad),'MASK':a0bL(0x419),'BLEND':a0bL(0x6cb)};function lu(b){const oS=a0bL;return b[oS(0xc2)]===void 0x0&&(b[oS(0xc2)]=new a0aG({'color':0xffffff,'side':a0at})),b[oS(0xc2)];}function Ot(b,c,d){const oT=a0bL;for(const f in d[oT(0xb0f)])b[f]===void 0x0&&(c[oT(0x6f)]['gltfExtensions']=c[oT(0x6f)]['gltfExtensions']||{},c['userData']['gltfExtensions'][f]=d['extensions'][f]);}function mt(b,c){const oU=a0bL;c['extras']!==void 0x0&&(typeof c['extras']==oU(0x3e3)?Object[oU(0x4e5)](b[oU(0x6f)],c[oU(0x4be)]):console['warn'](oU(0x2d4)+c[oU(0x4be)]));}function hu(b,f,g){const oV=a0bL;let i=!0x1,j=!0x1,k=!0x1;for(let w=0x0,x=f['length'];w<x;w++){const y=f[w];if(y['POSITION']!==void 0x0&&(i=!0x0),y['NORMAL']!==void 0x0&&(j=!0x0),y[oV(0x327)]!==void 0x0&&(k=!0x0),i&&j&&k)break;}if(!i&&!j&&!k)return Promise[oV(0x1e6)](b);const m=[],p=[],v=[];for(let z=0x0,B=f[oV(0x3ea)];z<B;z++){const E=f[z];if(i){const F=E[oV(0xa88)]!==void 0x0?g['getDependency']('accessor',E[oV(0xa88)]):b[oV(0x4e1)][oV(0x1b7)];m['push'](F);}if(j){const H=E['NORMAL']!==void 0x0?g['getDependency']('accessor',E[oV(0x65c)]):b['attributes'][oV(0x83)];p[oV(0x4f5)](H);}if(k){const L=E['COLOR_0']!==void 0x0?g['getDependency']('accessor',E['COLOR_0']):b[oV(0x4e1)][oV(0x66e)];v[oV(0x4f5)](L);}}return Promise['all']([Promise['all'](m),Promise[oV(0x90)](p),Promise[oV(0x90)](v)])[oV(0x82c)](function(N){const oW=oV,R=N[0x0],S=N[0x1],T=N[0x2];return i&&(b[oW(0x407)][oW(0x1b7)]=R),j&&(b['morphAttributes'][oW(0x83)]=S),k&&(b[oW(0x407)][oW(0x66e)]=T),b['morphTargetsRelative']=!0x0,b;});}function Au(b,c){const oX=a0bL;if(b['updateMorphTargets'](),c['weights']!==void 0x0){for(let d=0x0,f=c['weights'][oX(0x3ea)];d<f;d++)b['morphTargetInfluences'][d]=c['weights'][d];}if(c[oX(0x4be)]&&Array['isArray'](c[oX(0x4be)]['targetNames'])){const g=c['extras'][oX(0x754)];if(b[oX(0x59c)]['length']===g['length']){b['morphTargetDictionary']={};for(let h=0x0,i=g[oX(0x3ea)];h<i;h++)b[oX(0x7f7)][g[h]]=h;}else console[oX(0x5fb)]('THREE.GLTFLoader:\x20Invalid\x20extras.targetNames\x20length.\x20Ignoring\x20names.');}}function du(b){const oY=a0bL;let c;const d=b[oY(0xb0f)]&&b[oY(0xb0f)][V[oY(0x33e)]];if(d?c='draco:'+d[oY(0x69b)]+':'+d[oY(0x11c)]+':'+Zn(d[oY(0x4e1)]):c=b[oY(0x11c)]+':'+Zn(b['attributes'])+':'+b[oY(0x63f)],b[oY(0x726)]!==void 0x0){for(let f=0x0,g=b[oY(0x726)]['length'];f<g;f++)c+=':'+Zn(b['targets'][f]);}return c;}function Zn(b){const oZ=a0bL;let c='';const d=Object['keys'](b)[oZ(0x3b2)]();for(let f=0x0,g=d[oZ(0x3ea)];f<g;f++)c+=d[f]+':'+b[d[f]]+';';return c;}function Dr(b){switch(b){case Int8Array:return 0x1/0x7f;case Uint8Array:return 0x1/0xff;case Int16Array:return 0x1/0x7fff;case Uint16Array:return 0x1/0xffff;default:throw new Error('THREE.GLTFLoader:\x20Unsupported\x20normalized\x20accessor\x20component\x20type.');}}function uu(b){const p0=a0bL;return b[p0(0x4d0)](/\.jpe?g($|\?)/i)>0x0||b['search'](/^data\:image\/jpeg/)===0x0?p0(0x9ec):b[p0(0x4d0)](/\.webp($|\?)/i)>0x0||b[p0(0x4d0)](/^data\:image\/webp/)===0x0?p0(0x727):b['search'](/\.ktx2($|\?)/i)>0x0||b[p0(0x4d0)](/^data\:image\/ktx2/)===0x0?'image/ktx2':'image/png';}const gu=new a0m();class fu{constructor(b={},d={}){const p1=a0bL;this[p1(0x286)]=b,this['extensions']={},this['plugins']={},this[p1(0x15b)]=d,this['cache']=new Fd(),this[p1(0x98c)]=new Map(),this['primitiveCache']={},this['nodeCache']={},this['meshCache']={'refs':{},'uses':{}},this[p1(0x3da)]={'refs':{},'uses':{}},this['lightCache']={'refs':{},'uses':{}},this[p1(0x497)]={},this[p1(0x4fa)]={},this[p1(0x5ad)]={},this['isMobile']=Pd();let f=!0x1,g=-0x1,h=!0x1,i=-0x1;if(typeof navigator<'u'){const j=navigator['userAgent'];f=/^((?!chrome|android).)*safari/i['test'](j)===!0x0;const k=j[p1(0x694)](/Version\/(\d+)/);g=f&&k?parseInt(k[0x1],0xa):-0x1,h=j['indexOf']('Firefox')>-0x1,i=h?j['match'](/Firefox\/([0-9]+)\./)[0x1]:-0x1;}typeof createImageBitmap>'u'||f&&g<0x11||h&&i<0x62?this['textureLoader']=new a0aU(this[p1(0x15b)]['manager']):this[p1(0xa54)]=new a0aV(this[p1(0x15b)][p1(0x17e)]),this[p1(0xa54)]['setCrossOrigin'](this['options'][p1(0x47b)]),this[p1(0xa54)][p1(0x88a)](this['options']['requestHeader']),this['fileLoader']=new a0C(this['options']['manager']),this['fileLoader']['setResponseType'](p1(0xb04)),this[p1(0x15b)][p1(0x47b)]==='use-credentials'&&this['fileLoader'][p1(0x4b4)](!0x0);}[a0bL(0x780)](b){this['extensions']=b;}['setPlugins'](b){const p2=a0bL;this[p2(0x626)]=b;}[a0bL(0x54a)](b,c){const p3=a0bL,d=this,f=this[p3(0x286)],g=this['extensions'];this['cache']['removeAll'](),this[p3(0x425)]={},this[p3(0x43d)](function(h){const p4=p3;return h[p4(0x7cc)]&&h[p4(0x7cc)]();}),Promise['all'](this[p3(0x43d)](function(h){const p5=p3;return h[p5(0xafa)]&&h[p5(0xafa)]();}))[p3(0x82c)](function(){const p6=p3;return Promise[p6(0x90)]([d['getDependencies'](p6(0x440)),d[p6(0x20d)](p6(0x7da)),d[p6(0x20d)]('camera')]);})[p3(0x82c)](function(h){const p7=p3,i={'scene':h[0x0][f[p7(0x440)]||0x0],'scenes':h[0x0],'animations':h[0x1],'cameras':h[0x2],'asset':f[p7(0x49c)],'parser':d,'userData':{}};return Ot(g,i,f),mt(i,f),Promise[p7(0x90)](d['_invokeAll'](function(j){const p8=p7;return j['afterRoot']&&j[p8(0x3fc)](i);}))[p7(0x82c)](function(){const p9=p7;for(const j of i['scenes'])j[p9(0x2c7)]();b(i);});})['catch'](c);}[a0bL(0x7cc)](){const pb=a0bL,b=this[pb(0x286)][pb(0x5cd)]||[],d=this['json'][pb(0x474)]||[],f=this[pb(0x286)]['meshes']||[];for(let g=0x0,h=d[pb(0x3ea)];g<h;g++){const i=d[g][pb(0x82f)];for(let j=0x0,k=i['length'];j<k;j++)b[i[j]]['isBone']=!0x0;}for(let m=0x0,p=b['length'];m<p;m++){const u=b[m];u[pb(0x5c1)]!==void 0x0&&(this[pb(0x53a)](this[pb(0x4e6)],u['mesh']),u[pb(0x20e)]!==void 0x0&&(f[u['mesh']]['isSkinnedMesh']=!0x0)),u[pb(0x710)]!==void 0x0&&this['_addNodeRef'](this[pb(0x3da)],u['camera']);}}[a0bL(0x53a)](b,c){const pf=a0bL;c!==void 0x0&&(b['refs'][c]===void 0x0&&(b[pf(0xfd)][c]=b['uses'][c]=0x0),b['refs'][c]++);}[a0bL(0x895)](b,c,d){const pk=a0bL;if(b['refs'][c]<=0x1)return d;const f=d['clone'](),g=(i,j)=>{const pj=a0b,k=this[pj(0x98c)]['get'](i);k!=null&&this['associations'][pj(0x9fd)](j,k);for(const [m,p]of i[pj(0x56d)][pj(0x875)]())g(p,j['children'][m]);};return g(d,f),f['name']+='_instance_'+b[pk(0x4a4)][c]++,f;}['_invokeOne'](b){const pm=a0bL,c=Object[pm(0xb09)](this['plugins']);c['push'](this);for(let d=0x0;d<c['length'];d++){const f=b(c[d]);if(f)return f;}return null;}['_invokeAll'](b){const pn=a0bL,c=Object[pn(0xb09)](this[pn(0x626)]);c[pn(0x84b)](this);const d=[];for(let f=0x0;f<c[pn(0x3ea)];f++){const g=b(c[f]);g&&d[pn(0x4f5)](g);}return d;}['getDependency'](b,c){const pp=a0bL,d=b+':'+c;let f=this[pp(0x6fd)]['get'](d);if(!f){switch(b){case'scene':f=this[pp(0xf5)](c);break;case pp(0x2f7):f=this['_invokeOne'](function(g){const pq=pp;return g['loadNode']&&g[pq(0x14b)](c);});break;case pp(0x5c1):f=this[pp(0x543)](function(g){const pv=pp;return g[pv(0x6bc)]&&g['loadMesh'](c);});break;case'accessor':f=this['loadAccessor'](c);break;case pp(0x69b):f=this['_invokeOne'](function(g){const pw=pp;return g['loadBufferView']&&g[pw(0x69)](c);});break;case'buffer':f=this['loadBuffer'](c);break;case'material':f=this[pp(0x543)](function(g){const px=pp;return g[px(0x730)]&&g[px(0x730)](c);});break;case pp(0x2b5):f=this[pp(0x543)](function(g){return g['loadTexture']&&g['loadTexture'](c);});break;case pp(0x20e):f=this['loadSkin'](c);break;case pp(0x7da):f=this[pp(0x543)](function(g){const py=pp;return g[py(0x166)]&&g['loadAnimation'](c);});break;case pp(0x710):f=this['loadCamera'](c);break;default:if(f=this['_invokeOne'](function(g){const pz=pp;return g!=this&&g[pz(0x426)]&&g[pz(0x426)](b,c);}),!f)throw new Error('Unknown\x20type:\x20'+b);break;}this[pp(0x6fd)][pp(0x577)](d,f);}return f;}['getDependencies'](b){const pB=a0bL;let c=this['cache'][pB(0x7d7)](b);if(!c){const d=this,f=this[pB(0x286)][b+(b==='mesh'?'es':'s')]||[];c=Promise['all'](f['map'](function(g,h){return d['getDependency'](b,h);})),this[pB(0x6fd)]['add'](b,c);}return c;}[a0bL(0x718)](b){const pC=a0bL,c=this['json']['buffers'][b],d=this[pC(0x808)];if(c[pC(0x736)]&&c[pC(0x736)]!==pC(0xb04))throw new Error('THREE.GLTFLoader:\x20'+c['type']+'\x20buffer\x20type\x20is\x20not\x20supported.');if(c['uri']===void 0x0&&b===0x0)return Promise['resolve'](this[pC(0xb0f)][V[pC(0x7de)]]['body']);const f=this[pC(0x15b)];return new Promise(function(g,h){const pD=pC;d[pD(0xb08)](a0aP[pD(0x2c8)](c['uri'],f['path']),g,void 0x0,function(){const pE=pD;h(new Error(pE(0x8f1)+c[pE(0xa97)]+'\x22.'));});});}['loadBufferView'](b){const c=this['json']['bufferViews'][b];return this['getDependency']('buffer',c['buffer'])['then'](function(d){const pF=a0b,f=c[pF(0x175)]||0x0,g=c['byteOffset']||0x0;return d[pF(0x504)](g,g+f);});}[a0bL(0x6a)](b){const pG=a0bL,d=this,f=this[pG(0x286)],g=this['json']['accessors'][b];if(g['bufferView']===void 0x0&&g[pG(0x819)]===void 0x0){const j=Xn[g['type']],k=Ci[g['componentType']],m=g[pG(0xa36)]===!0x0,p=new k(g['count']*j);return Promise[pG(0x1e6)](new a0F(p,j,m));}const i=[];return g['bufferView']!==void 0x0?i[pG(0x4f5)](this['getDependency']('bufferView',g['bufferView'])):i['push'](null),g['sparse']!==void 0x0&&(i['push'](this[pG(0x426)]('bufferView',g[pG(0x819)][pG(0x11c)]['bufferView'])),i[pG(0x4f5)](this['getDependency'](pG(0x69b),g[pG(0x819)]['values'][pG(0x69b)]))),Promise[pG(0x90)](i)['then'](function(z){const pH=pG,F=z[0x0],H=Xn[g[pH(0x736)]],L=Ci[g['componentType']],N=L['BYTES_PER_ELEMENT'],R=N*H,S=g[pH(0xa4f)]||0x0,U=g['bufferView']!==void 0x0?f['bufferViews'][g[pH(0x69b)]][pH(0x27b)]:void 0x0,a0=g['normalized']===!0x0;let a1,a2;if(U&&U!==R){const a3=Math['floor'](S/U),a4='InterleavedBuffer:'+g[pH(0x69b)]+':'+g[pH(0x316)]+':'+a3+':'+g['count'];let a5=d[pH(0x6fd)][pH(0x7d7)](a4);a5||(a1=new L(F,a3*U,g['count']*U/N),a5=new a0aW(a1,U/N),d[pH(0x6fd)]['add'](a4,a5)),a2=new a0r(a5,H,S%U/N,a0);}else F===null?a1=new L(g[pH(0x675)]*H):a1=new L(F,S,g[pH(0x675)]*H),a2=new a0F(a1,H,a0);if(g['sparse']!==void 0x0){const a6=Xn[pH(0xa62)],a7=Ci[g['sparse'][pH(0x11c)]['componentType']],a8=g[pH(0x819)]['indices'][pH(0xa4f)]||0x0,a9=g[pH(0x819)][pH(0xb09)]['byteOffset']||0x0,ab=new a7(z[0x1],a8,g['sparse'][pH(0x675)]*a6),aj=new L(z[0x2],a9,g['sparse'][pH(0x675)]*H);F!==null&&(a2=new a0F(a2[pH(0x443)]['slice'](),a2['itemSize'],a2[pH(0xa36)])),a2[pH(0xa36)]=!0x1;for(let ak=0x0,am=ab['length'];ak<am;ak++){const an=ab[ak];if(a2[pH(0x4b2)](an,aj[ak*H]),H>=0x2&&a2['setY'](an,aj[ak*H+0x1]),H>=0x3&&a2[pH(0x8c5)](an,aj[ak*H+0x2]),H>=0x4&&a2[pH(0x790)](an,aj[ak*H+0x3]),H>=0x5)throw new Error('THREE.GLTFLoader:\x20Unsupported\x20itemSize\x20in\x20sparse\x20BufferAttribute.');}a2[pH(0xa36)]=a0;}return a2;});}['loadTexture'](b){const pI=a0bL,d=this[pI(0x286)],f=this['options'],g=d['textures'][b]['source'],h=d[pI(0x9f1)][g];let i=this[pI(0xa54)];if(h[pI(0xa97)]){const j=f[pI(0x17e)]['getHandler'](h['uri']);j!==null&&(i=j);}return this['loadTextureImage'](b,g,i);}[a0bL(0x672)](b,d,f){const pJ=a0bL,g=this,i=this['json'],j=i['textures'][b],k=i['images'][d],m=(k[pJ(0xa97)]||k['bufferView'])+':'+j[pJ(0x793)];if(this['textureCache'][m])return this[pJ(0x4fa)][m];const p=this['loadImageSource'](d,f)[pJ(0x82c)](function(v){const pK=pJ;v[pK(0xaf4)]=!0x1,v[pK(0x74)]=j['name']||k['name']||'',v['name']===''&&typeof k['uri']==pK(0x45f)&&k[pK(0xa97)][pK(0x9ff)](pK(0x1e1))===!0x1&&(v[pK(0x74)]=k['uri']);const w=(i['samplers']||{})[j['sampler']]||{};return v['magFilter']=Xo[w[pK(0x3b3)]]||a0L,v[pK(0x292)]=Xo[w['minFilter']]||a0M,v['wrapS']=$o[w[pK(0x2b2)]]||a0ak,v['wrapT']=$o[w[pK(0x43a)]]||a0ak,v['generateMipmaps']=!v[pK(0x7f0)]&&v[pK(0x292)]!==a0ad&&v[pK(0x292)]!==a0L,g[pK(0x6ef)]&&(v[pK(0x845)]=Math['min'](v[pK(0x845)]||0x1,0x2)),g['associations'][pK(0x9fd)](v,{'textures':b}),v;})['catch'](function(){return null;});return this[pJ(0x4fa)][m]=p,p;}[a0bL(0xeb)](b,d){const pL=a0bL,f=this,g=this['json'],i=this['options'];if(this[pL(0x497)][b]!==void 0x0)return this['sourceCache'][b]['then'](v=>v['clone']());const j=g['images'][b],k=self['URL']||self[pL(0x918)];let m=j[pL(0xa97)]||'',p=!0x1;if(j[pL(0x69b)]!==void 0x0)m=f['getDependency']('bufferView',j['bufferView'])[pL(0x82c)](function(v){const pM=pL;p=!0x0;const w=new Blob([v],{'type':j[pM(0x77e)]});return m=k[pM(0x9c)](w),m;});else{if(j[pL(0xa97)]===void 0x0)throw new Error('THREE.GLTFLoader:\x20Image\x20'+b+pL(0x6b2));}const u=Promise['resolve'](m)[pL(0x82c)](function(v){return new Promise(function(w,x){const pQ=a0b;let y=w;d['isImageBitmapLoader']===!0x0?y=function(z){const pN=a0b,E=new a0be(z);if(E[pN(0x12d)]=!0x0,f['isMobile']&&z){let F=z[pN(0xb1f)]||0x0,H=z[pN(0x19e)]||0x0;if(F>0x400||H>0x400){const L=Math['min'](0x400/F,0x400/H),N=Math['floor'](F*L),R=Math[pN(0xb11)](H*L);createImageBitmap(z,{'resizeWidth':N,'resizeHeight':R,'resizeQuality':pN(0x3db)})['then'](function(S){const pO=pN;E['image']=S,E[pO(0x12d)]=!0x0,w(E);})[pN(0x217)](function(){w(E);});return;}}w(E);}:y=function(z){const pP=a0b,F=new a0be(z);if(F['needsUpdate']=!0x0,f['isMobile']&&z){let H=z['width']||z[pP(0xa6d)]||0x0,L=z[pP(0x19e)]||z['naturalHeight']||0x0;if(H>0x0&&L>0x0&&(H>0x400||L>0x400)){const N=Math['min'](0x400/H,0x400/L),R=Math[pP(0xb11)](H*N),S=Math['floor'](L*N);try{const T=document[pP(0x86)]('canvas');T[pP(0xb1f)]=R,T[pP(0x19e)]=S;const U=T['getContext']('2d');U&&(U['drawImage'](z,0x0,0x0,R,S),F[pP(0x21d)]=T,F[pP(0x12d)]=!0x0);}catch(a0){console[pP(0x5fb)](pP(0x9cc),a0);}}}w(F);},d['load'](a0aP['resolveURL'](v,i[pQ(0x887)]),y,void 0x0,x);});})['then'](function(v){const pR=pL;return p===!0x0&&k[pR(0x492)](m),mt(v,j),v[pR(0x6f)]['mimeType']=j[pR(0x77e)]||uu(j[pR(0xa97)]),v;})['catch'](function(v){const pS=pL;throw console['error'](pS(0xd7),m),v;});return this[pL(0x497)][b]=u,u;}['assignTexture'](b,c,d,f){const pT=a0bL,g=this;return this['getDependency'](pT(0x2b5),d['index'])[pT(0x82c)](function(h){const pU=pT;if(!h)return null;if(d[pU(0x2d8)]!==void 0x0&&d[pU(0x2d8)]>0x0&&(h=h['clone'](),h[pU(0x34a)]=d['texCoord']),g[pU(0xb0f)][V['KHR_TEXTURE_TRANSFORM']]){const i=d['extensions']!==void 0x0?d[pU(0xb0f)][V[pU(0x182)]]:void 0x0;if(i){const j=g['associations'][pU(0x7d7)](h);h=g['extensions'][V[pU(0x182)]]['extendTexture'](h,i),g[pU(0x98c)]['set'](h,j);}}return f!==void 0x0&&(h['colorSpace']=f),b[c]=h,h;});}['assignFinalMaterial'](b){const pV=a0bL,d=b['geometry'];let f=b['material'];const g=d[pV(0x4e1)]['tangent']===void 0x0,h=d['attributes']['color']!==void 0x0,i=d['attributes']['normal']===void 0x0;if(b[pV(0x44e)]){const j='PointsMaterial:'+f[pV(0x4c6)];let k=this[pV(0x6fd)]['get'](j);k||(k=new a0b2(),a0b3['prototype']['copy'][pV(0x6a7)](k,f),k['color'][pV(0x3fe)](f[pV(0x66e)]),k[pV(0x428)]=f[pV(0x428)],k['sizeAttenuation']=!0x1,this['cache']['add'](j,k)),f=k;}else{if(b[pV(0x4de)]){const m='LineBasicMaterial:'+f[pV(0x4c6)];let p=this['cache'][pV(0x7d7)](m);p||(p=new a0i(),a0b3[pV(0x9e4)][pV(0x3fe)][pV(0x6a7)](p,f),p[pV(0x66e)][pV(0x3fe)](f[pV(0x66e)]),p[pV(0x428)]=f[pV(0x428)],this['cache']['add'](m,p)),f=p;}}if(g||h||i){let u=pV(0x632)+f[pV(0x4c6)]+':';g&&(u+='derivative-tangents:'),h&&(u+='vertex-colors:'),i&&(u+='flat-shading:');let v=this[pV(0x6fd)][pV(0x7d7)](u);v||(v=f['clone'](),h&&(v[pV(0x181)]=!0x0),i&&(v[pV(0xadf)]=!0x0),g&&(v['normalScale']&&(v['normalScale']['y']*=-0x1),v['clearcoatNormalScale']&&(v[pV(0x189)]['y']*=-0x1)),this[pV(0x6fd)]['add'](u,v),this[pV(0x98c)]['set'](v,this['associations']['get'](f))),f=v;}b['material']=f;}[a0bL(0x61a)](){return a0b4;}['loadMaterial'](b){const pW=a0bL,f=this,g=this[pW(0x286)],i=this['extensions'],j=g['materials'][b];let k;const m={},p=j[pW(0xb0f)]||{},v=[];if(p[V['KHR_MATERIALS_UNLIT']]){const x=i[V[pW(0x27e)]];k=x[pW(0x61a)](),v['push'](x['extendParams'](m,j,f));}else{const y=j[pW(0x571)]||{};if(m[pW(0x66e)]=new a0G(0x1,0x1,0x1),m['opacity']=0x1,Array[pW(0x335)](y[pW(0x725)])){const z=y['baseColorFactor'];m[pW(0x66e)][pW(0xa9c)](z[0x0],z[0x1],z[0x2],pW(0x2e3)),m[pW(0x6fb)]=z[0x3];}y[pW(0x4f3)]!==void 0x0&&v[pW(0x4f5)](f['assignTexture'](m,'map',y['baseColorTexture'],a0D)),m[pW(0x1b9)]=y['metallicFactor']!==void 0x0?y[pW(0x503)]:0x1,m['roughness']=y['roughnessFactor']!==void 0x0?y['roughnessFactor']:0x1,!f[pW(0x6ef)]&&y['metallicRoughnessTexture']!==void 0x0&&(v['push'](f['assignTexture'](m,pW(0x24a),y[pW(0x431)])),v[pW(0x4f5)](f['assignTexture'](m,pW(0x716),y['metallicRoughnessTexture']))),k=this[pW(0x543)](function(B){return B['getMaterialType']&&B['getMaterialType'](b);}),v[pW(0x4f5)](Promise['all'](this['_invokeAll'](function(B){const pX=pW;return B[pX(0x906)]&&B['extendMaterialParams'](b,m);})));}j[pW(0x1c5)]===!0x0&&(m['side']=a0at);const w=j['alphaMode']||$n[pW(0x8ad)];if(w===$n['BLEND']?(m['transparent']=!0x0,m['depthWrite']=!0x1):(m['transparent']=!0x1,w===$n[pW(0x419)]&&(m['alphaTest']=j[pW(0xa0)]!==void 0x0?j[pW(0xa0)]:0.5)),!f[pW(0x6ef)]){if(j['normalTexture']!==void 0x0&&k!==a0g&&(v[pW(0x4f5)](f[pW(0x4e3)](m,'normalMap',j['normalTexture'])),m[pW(0x126)]=new a0l(0x1,0x1),j[pW(0xfb)][pW(0x61e)]!==void 0x0)){const B=j['normalTexture']['scale'];m['normalScale']['set'](B,B);}j[pW(0x689)]!==void 0x0&&k!==a0g&&(v['push'](f[pW(0x4e3)](m,'aoMap',j['occlusionTexture'])),j[pW(0x689)]['strength']!==void 0x0&&(m['aoMapIntensity']=j[pW(0x689)]['strength']));}if(j[pW(0x8c3)]!==void 0x0&&k!==a0g){const E=j['emissiveFactor'];m['emissive']=new a0G()[pW(0xa9c)](E[0x0],E[0x1],E[0x2],a0E);}return j['emissiveTexture']!==void 0x0&&k!==a0g&&v[pW(0x4f5)](f['assignTexture'](m,'emissiveMap',j['emissiveTexture'],a0D)),Promise['all'](v)[pW(0x82c)](function(){const pY=pW;m['hasOwnProperty'](pY(0x46d))&&delete m['roughness'],m['hasOwnProperty'](pY(0x1b9))&&delete m[pY(0x1b9)];const F=new k(m);Object['keys'](m)['some'](H=>H[pY(0xa1c)]('map')&&m[H]!==void 0x0)&&F[pY(0x66e)]['set'](0xeeeeee);for(const H in F){const L=F[H];L&&L[pY(0x2c4)]&&(L['colorSpace']='srgb');}return f['isMobile']&&(F['envMapIntensity']!==void 0x0&&(F['envMapIntensity']=(F['envMapIntensity']||0x1)*0.5),F[pY(0x17b)]||F[pY(0x6a8)]),j[pY(0x74)]&&(F[pY(0x74)]=j['name']),mt(F,j),f['associations']['set'](F,{'materials':b}),j[pY(0xb0f)]&&Ot(i,F,j),F;});}['createUniqueName'](b){const pZ=a0bL,c=a0b5['sanitizeNodeName'](b||'');return c in this['nodeNamesUsed']?c+'_'+ ++this['nodeNamesUsed'][c]:(this[pZ(0x5ad)][c]=0x0,c);}['loadGeometries'](b){const q1=a0bL,f=this,g=this['extensions'],i=this['primitiveCache'];function j(m){const q0=a0b;return g[V['KHR_DRACO_MESH_COMPRESSION']][q0(0x6f1)](m,f)['then'](function(p){return Zo(p,m,f);});}const k=[];for(let m=0x0,p=b['length'];m<p;m++){const v=b[m],w=du(v),x=i[w];if(x)k[q1(0x4f5)](x['promise']);else{let y;v[q1(0xb0f)]&&v['extensions'][V[q1(0x33e)]]?y=j(v):y=Zo(new a0j(),v,f),i[w]={'primitive':v,'promise':y},k[q1(0x4f5)](y);}}return Promise[q1(0x90)](k);}['loadMesh'](b){const q2=a0bL,d=this,f=this['json'],g=this[q2(0xb0f)],i=f[q2(0x199)][b],j=i[q2(0x339)],k=[];for(let m=0x0,p=j['length'];m<p;m++){const u=j[m][q2(0x690)]===void 0x0?lu(this['cache']):this['getDependency'](q2(0x690),j[m]['material']);k[q2(0x4f5)](u);}return k[q2(0x4f5)](d['loadGeometries'](j)),Promise[q2(0x90)](k)[q2(0x82c)](function(v){const q3=q2,w=v['slice'](0x0,v[q3(0x3ea)]-0x1),x=v[v['length']-0x1],y=[];for(let B=0x0,F=x['length'];B<F;B++){const H=x[B],L=j[B];let N;const R=w[B];if(L[q3(0x63f)]===ke['TRIANGLES']||L[q3(0x63f)]===ke[q3(0x76d)]||L[q3(0x63f)]===ke['TRIANGLE_FAN']||L['mode']===void 0x0)N=i['isSkinnedMesh']===!0x0?new a0b6(H,R):new a0e(H,R),N['isSkinnedMesh']===!0x0&&N['normalizeSkinWeights'](),L['mode']===ke['TRIANGLE_STRIP']?N['geometry']=Wo(N['geometry'],a0aO):L[q3(0x63f)]===ke['TRIANGLE_FAN']&&(N['geometry']=Wo(N['geometry'],a0aN));else{if(L[q3(0x63f)]===ke['LINES'])N=new a0k(H,R);else{if(L['mode']===ke[q3(0x4e8)])N=new a0ao(H,R);else{if(L['mode']===ke[q3(0x541)])N=new a0b7(H,R);else{if(L[q3(0x63f)]===ke['POINTS'])N=new a0b8(H,R);else throw new Error(q3(0x395)+L['mode']);}}}}Object['keys'](N[q3(0x813)]['morphAttributes'])['length']>0x0&&Au(N,i),N[q3(0x74)]=d['createUniqueName'](i[q3(0x74)]||q3(0xa07)+b),mt(N,i),L['extensions']&&Ot(g,N,L),d[q3(0xaaf)](N),y[q3(0x4f5)](N);}for(let S=0x0,T=y['length'];S<T;S++)d[q3(0x98c)]['set'](y[S],{'meshes':b,'primitives':S});if(y['length']===0x1)return i['extensions']&&Ot(g,y[0x0],i),y[0x0];const z=new a0ay();i['extensions']&&Ot(g,z,i),d['associations'][q3(0x9fd)](z,{'meshes':b});for(let U=0x0,a0=y[q3(0x3ea)];U<a0;U++)z['add'](y[U]);return z;});}['loadCamera'](b){const q4=a0bL;let c;const d=this['json'][q4(0x51a)][b],f=d[d['type']];if(!f){console[q4(0x5fb)](q4(0x18e));return;}return d['type']===q4(0x91)?c=new a0aL(a0A['radToDeg'](f['yfov']),f['aspectRatio']||0x1,f['znear']||0x1,f[q4(0x8aa)]||0x1e8480):d[q4(0x736)]===q4(0x3d9)&&(c=new a0n(-f[q4(0x965)],f['xmag'],f[q4(0x2ca)],-f[q4(0x2ca)],f['znear'],f['zfar'])),d[q4(0x74)]&&(c['name']=this['createUniqueName'](d['name'])),mt(c,d),Promise['resolve'](c);}['loadSkin'](b){const q5=a0bL,c=this[q5(0x286)][q5(0x474)][b],d=[];for(let f=0x0,g=c['joints'][q5(0x3ea)];f<g;f++)d['push'](this[q5(0x33b)](c[q5(0x82f)][f]));return c['inverseBindMatrices']!==void 0x0?d[q5(0x4f5)](this[q5(0x426)]('accessor',c['inverseBindMatrices'])):d['push'](null),Promise[q5(0x90)](d)[q5(0x82c)](function(i){const q6=q5,j=i['pop'](),k=i,m=[],p=[];for(let v=0x0,w=k['length'];v<w;v++){const x=k[v];if(x){m['push'](x);const y=new a0m();j!==null&&y['fromArray'](j['array'],v*0x10),p['push'](y);}else console['warn']('THREE.GLTFLoader:\x20Joint\x20\x22%s\x22\x20could\x20not\x20be\x20found.',c[q6(0x82f)][v]);}return new a0b9(m,p);});}[a0bL(0x166)](i){const q7=a0bL,j=this['json'],k=this,v=j[q7(0x630)][i],w=v['name']?v[q7(0x74)]:'animation_'+i,x=[],y=[],z=[],B=[],F=[];for(let H=0x0,L=v[q7(0x6b3)][q7(0x3ea)];H<L;H++){const N=v['channels'][H],R=v['samplers'][N['sampler']],S=N[q7(0x4b7)],T=S[q7(0x2f7)],U=v[q7(0xa69)]!==void 0x0?v['parameters'][R['input']]:R['input'],a0=v['parameters']!==void 0x0?v[q7(0xa69)][R['output']]:R[q7(0x550)];S[q7(0x2f7)]!==void 0x0&&(x[q7(0x4f5)](this[q7(0x426)](q7(0x2f7),T)),y['push'](this[q7(0x426)]('accessor',U)),z[q7(0x4f5)](this[q7(0x426)](q7(0x62a),a0)),B['push'](R),F['push'](S));}return Promise[q7(0x90)]([Promise[q7(0x90)](x),Promise['all'](y),Promise[q7(0x90)](z),Promise['all'](B),Promise[q7(0x90)](F)])['then'](function(a1){const q8=q7,a2=a1[0x0],a3=a1[0x1],a4=a1[0x2],a5=a1[0x3],a6=a1[0x4],a7=[];for(let a8=0x0,a9=a2['length'];a8<a9;a8++){const ab=a2[a8],aj=a3[a8],ak=a4[a8],am=a5[a8],an=a6[a8];if(ab===void 0x0)continue;ab['updateMatrix']&&ab[q8(0x78)]();const ap=k[q8(0x18d)](ab,aj,ak,am,an);if(ap){for(let aq=0x0;aq<ap[q8(0x3ea)];aq++)a7['push'](ap[aq]);}}return new a0ba(w,void 0x0,a7);});}['createNodeMesh'](b){const q9=a0bL,c=this[q9(0x286)],d=this,f=c[q9(0x5cd)][b];return f['mesh']===void 0x0?null:d['getDependency']('mesh',f['mesh'])[q9(0x82c)](function(g){const qb=q9,h=d[qb(0x895)](d['meshCache'],f['mesh'],g);return f['weights']!==void 0x0&&h['traverse'](function(i){const qe=qb;if(i[qe(0x356)]){for(let j=0x0,k=f[qe(0x7e4)][qe(0x3ea)];j<k;j++)i['morphTargetInfluences'][j]=f['weights'][j];}}),h;});}[a0bL(0x14b)](b){const qf=a0bL,d=this[qf(0x286)],f=this,g=d[qf(0x5cd)][b],i=f[qf(0x33b)](b),j=[],k=g[qf(0x56d)]||[];for(let p=0x0,u=k[qf(0x3ea)];p<u;p++)j[qf(0x4f5)](f['getDependency']('node',k[p]));const m=g['skin']===void 0x0?Promise[qf(0x1e6)](null):f[qf(0x426)](qf(0x20e),g['skin']);return Promise['all']([i,Promise['all'](j),m])[qf(0x82c)](function(v){const w=v[0x0],x=v[0x1],y=v[0x2];y!==null&&w['traverse'](function(z){const qj=a0b;z[qj(0x560)]&&z['bind'](y,gu);});for(let z=0x0,B=x['length'];z<B;z++)w['add'](x[z]);return w;});}[a0bL(0x33b)](b){const qk=a0bL,d=this[qk(0x286)],f=this[qk(0xb0f)],g=this;if(this[qk(0x425)][b]!==void 0x0)return this[qk(0x425)][b];const h=d['nodes'][b],i=h['name']?g[qk(0x997)](h['name']):'',j=[],k=g[qk(0x543)](function(m){return m['createNodeMesh']&&m['createNodeMesh'](b);});return k&&j['push'](k),h[qk(0x710)]!==void 0x0&&j[qk(0x4f5)](g['getDependency'](qk(0x710),h['camera'])['then'](function(m){const qm=qk;return g[qm(0x895)](g['cameraCache'],h['camera'],m);})),g[qk(0x43d)](function(m){const qp=qk;return m[qp(0x66d)]&&m[qp(0x66d)](b);})[qk(0xb8)](function(m){const qq=qk;j[qq(0x4f5)](m);}),this['nodeCache'][b]=Promise['all'](j)[qk(0x82c)](function(m){const qv=qk;let p;if(h[qv(0x600)]===!0x0?p=new a0bb():m['length']>0x1?p=new a0ay():m['length']===0x1?p=m[0x0]:p=new a0d(),p!==m[0x0]){for(let v=0x0,w=m['length'];v<w;v++)p['add'](m[v]);}if(h['name']&&(p['userData'][qv(0x74)]=h['name'],p[qv(0x74)]=i),mt(p,h),h['extensions']&&Ot(f,p,h),h['matrix']!==void 0x0){const x=new a0m();x['fromArray'](h[qv(0x87e)]),p[qv(0x53d)](x);}else h[qv(0x411)]!==void 0x0&&p[qv(0x1b7)][qv(0xff)](h['translation']),h[qv(0x46b)]!==void 0x0&&p[qv(0x122)]['fromArray'](h['rotation']),h['scale']!==void 0x0&&p[qv(0x61e)]['fromArray'](h[qv(0x61e)]);return g['associations']['has'](p)||g[qv(0x98c)][qv(0x9fd)](p,{}),g[qv(0x98c)]['get'](p)[qv(0x5cd)]=b,p;}),this[qk(0x425)][b];}[a0bL(0xf5)](b){const qw=a0bL,d=this['extensions'],f=this[qw(0x286)]['scenes'][b],g=this,i=new a0ay();f['name']&&(i[qw(0x74)]=g['createUniqueName'](f['name'])),mt(i,f),f[qw(0xb0f)]&&Ot(d,i,f);const j=f['nodes']||[],k=[];for(let m=0x0,p=j['length'];m<p;m++)k['push'](g['getDependency'](qw(0x2f7),j[m]));return Promise[qw(0x90)](k)['then'](function(u){const qx=qw;for(let w=0x0,x=u[qx(0x3ea)];w<x;w++)i[qx(0x577)](u[w]);const v=y=>{const qy=qx,z=new Map();for(const [B,E]of g['associations'])(B instanceof a0b3||B instanceof a0be)&&z[qy(0x9fd)](B,E);return y['traverse'](F=>{const qz=qy,H=g[qz(0x98c)][qz(0x7d7)](F);H!=null&&z['set'](F,H);}),z;};return g['associations']=v(i),i;});}[a0bL(0x18d)](b,i,j,k,m){const qC=a0bL,p=[],v=b['name']?b['name']:b['uuid'],w=[];xt[m['path']]===xt['weights']?b['traverse'](function(B){const qB=a0b;B[qB(0x59c)]&&w[qB(0x4f5)](B['name']?B[qB(0x74)]:B[qB(0x4c6)]);}):w[qC(0x4f5)](v);let x;switch(xt[m['path']]){case xt[qC(0x7e4)]:x=a0bg;break;case xt['rotation']:x=a0bh;break;case xt[qC(0x1b7)]:case xt['scale']:x=a0bf;break;default:switch(j[qC(0x574)]){case 0x1:x=a0bg;break;case 0x2:case 0x3:default:x=a0bf;break;}break;}const y=k['interpolation']!==void 0x0?cu[k['interpolation']]:a0bd,z=this['_getArrayFromAccessor'](j);for(let B=0x0,E=w['length'];B<E;B++){const F=new x(w[B]+'.'+xt[m[qC(0x887)]],i['array'],z,y);k[qC(0x831)]===qC(0x663)&&this['_createCubicSplineTrackInterpolant'](F),p['push'](F);}return p;}[a0bL(0x7f6)](b){const qD=a0bL;let c=b[qD(0x443)];if(b['normalized']){const d=Dr(c[qD(0x470)]),f=new Float32Array(c[qD(0x3ea)]);for(let g=0x0,h=c[qD(0x3ea)];g<h;g++)f[g]=c[g]*d;c=f;}return c;}['_createCubicSplineTrackInterpolant'](b){const qE=a0bL;b[qE(0x5a1)]=function(c){const d=this instanceof a0bh?au:Cc;return new d(this['times'],this['values'],this['getValueSize']()/0x3,c);},b['createInterpolant']['isInterpolantFactoryMethodGLTFCubicSpline']=!0x0;}}function pu(b,i,j){const qF=a0bL,k=i['attributes'],m=new a0h();if(k[qF(0xa88)]!==void 0x0){const x=j['json'][qF(0x873)][k['POSITION']],y=x[qF(0x5d2)],z=x['max'];if(y!==void 0x0&&z!==void 0x0){if(m['set'](new a0c(y[0x0],y[0x1],y[0x2]),new a0c(z[0x0],z[0x1],z[0x2])),x[qF(0xa36)]){const B=Dr(Ci[x['componentType']]);m['min']['multiplyScalar'](B),m['max'][qF(0x433)](B);}}else{console['warn'](qF(0x666));return;}}else return;const v=i['targets'];if(v!==void 0x0){const E=new a0c(),F=new a0c();for(let H=0x0,L=v['length'];H<L;H++){const N=v[H];if(N[qF(0xa88)]!==void 0x0){const R=j['json'][qF(0x873)][N[qF(0xa88)]],S=R[qF(0x5d2)],T=R['max'];if(S!==void 0x0&&T!==void 0x0){if(F['setX'](Math[qF(0x36b)](Math['abs'](S[0x0]),Math['abs'](T[0x0]))),F[qF(0x4d1)](Math['max'](Math['abs'](S[0x1]),Math['abs'](T[0x1]))),F['setZ'](Math[qF(0x36b)](Math['abs'](S[0x2]),Math[qF(0x855)](T[0x2]))),R['normalized']){const U=Dr(Ci[R['componentType']]);F['multiplyScalar'](U);}E['max'](F);}else console[qF(0x5fb)](qF(0x666));}}m['expandByVector'](E);}b['boundingBox']=m;const w=new a0t();m['getCenter'](w['center']),w['radius']=m['min']['distanceTo'](m['max'])/0x2,b['boundingSphere']=w;}function Zo(b,d,f){const qH=a0bL,g=d['attributes'],h=[];function i(j,k){const qG=a0b;return f['getDependency'](qG(0x62a),j)[qG(0x82c)](function(m){b['setAttribute'](k,m);});}for(const j in g){const k=Sr[j]||j['toLowerCase']();k in b['attributes']||h['push'](i(g[j],k));}if(d[qH(0x11c)]!==void 0x0&&!b[qH(0x9ee)]){const l=f['getDependency'](qH(0x62a),d[qH(0x11c)])[qH(0x82c)](function(m){const qI=qH;b[qI(0x512)](m);});h['push'](l);}return a0H[qH(0x587)]!==a0E&&qH(0x327)in g&&console[qH(0x5fb)]('THREE.GLTFLoader:\x20Converting\x20vertex\x20colors\x20from\x20\x22srgb-linear\x22\x20to\x20\x22'+a0H['workingColorSpace']+'\x22\x20not\x20supported.'),mt(b,d),pu(b,d,f),Promise[qH(0x90)](h)['then'](function(){const qJ=qH;return d[qJ(0x726)]!==void 0x0?hu(b,d['targets'],f):b;});}var Ie=Uint8Array,gi=Uint16Array,mu=Int32Array,yc=new Ie([0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x1,0x1,0x2,0x2,0x2,0x2,0x3,0x3,0x3,0x3,0x4,0x4,0x4,0x4,0x5,0x5,0x5,0x5,0x0,0x0,0x0,0x0]),wc=new Ie([0x0,0x0,0x0,0x0,0x1,0x1,0x2,0x2,0x3,0x3,0x4,0x4,0x5,0x5,0x6,0x6,0x7,0x7,0x8,0x8,0x9,0x9,0xa,0xa,0xb,0xb,0xc,0xc,0xd,0xd,0x0,0x0]),bu=new Ie([0x10,0x11,0x12,0x0,0x8,0x7,0x9,0x6,0xa,0x5,0xb,0x4,0xc,0x3,0xd,0x2,0xe,0x1,0xf]),Ic=function(b,c){for(var d=new gi(0x1f),f=0x0;f<0x1f;++f)d[f]=c+=0x1<<b[f-0x1];for(var g=new mu(d[0x1e]),f=0x1;f<0x1e;++f)for(var h=d[f];h<d[f+0x1];++h)g[h]=h-d[f]<<0x5|f;return{'b':d,'r':g};},Bc=Ic(yc,0x2),xc=Bc['b'],Eu=Bc['r'];xc[0x1c]=0x102,Eu[0x102]=0x1c;var Cu=Ic(wc,0x0),yu=Cu['b'],Mr=new gi(0x8000);for(var ee=0x0;ee<0x8000;++ee){var vt=(ee&0xaaaa)>>0x1|(ee&0x5555)<<0x1;vt=(vt&0xcccc)>>0x2|(vt&0x3333)<<0x2,vt=(vt&0xf0f0)>>0x4|(vt&0xf0f)<<0x4,Mr[ee]=((vt&0xff00)>>0x8|(vt&0xff)<<0x8)>>0x1;}var as=function(b,f,g){const qK=a0bL;for(var i=b[qK(0x3ea)],j=0x0,k=new gi(f);j<i;++j)b[j]&&++k[b[j]-0x1];var m=new gi(f);for(j=0x1;j<f;++j)m[j]=m[j-0x1]+k[j-0x1]<<0x1;var p;if(g){p=new gi(0x1<<f);var v=0xf-f;for(j=0x0;j<i;++j)if(b[j]){for(var w=j<<0x4|b[j],x=f-b[j],y=m[b[j]-0x1]++<<x,z=y|(0x1<<x)-0x1;y<=z;++y)p[Mr[y]>>v]=w;}}else{for(p=new gi(i),j=0x0;j<i;++j)b[j]&&(p[j]=Mr[m[b[j]-0x1]++]>>0xf-b[j]);}return p;},gs=new Ie(0x120);for(var ee=0x0;ee<0x90;++ee)gs[ee]=0x8;for(var ee=0x90;ee<0x100;++ee)gs[ee]=0x9;for(var ee=0x100;ee<0x118;++ee)gs[ee]=0x7;for(var ee=0x118;ee<0x120;++ee)gs[ee]=0x8;var vc=new Ie(0x20);for(var ee=0x0;ee<0x20;++ee)vc[ee]=0x5;var wu=as(gs,0x9,0x1),Iu=as(vc,0x5,0x1),er=function(b){for(var c=b[0x0],d=0x1;d<b['length'];++d)b[d]>c&&(c=b[d]);return c;},je=function(b,c,d){var f=c/0x8|0x0;return(b[f]|b[f+0x1]<<0x8)>>(c&0x7)&d;},tr=function(b,c){var d=c/0x8|0x0;return(b[d]|b[d+0x1]<<0x8|b[d+0x2]<<0x10)>>(c&0x7);},Bu=function(b){return(b+0x7)/0x8|0x0;},cs=function(b,c,d){const qL=a0bL;return(c==null||c<0x0)&&(c=0x0),(d==null||d>b[qL(0x3ea)])&&(d=b['length']),new Ie(b[qL(0x654)](c,d));},xu=['unexpected\x20EOF',a0bL(0x415),'invalid\x20length/literal','invalid\x20distance','stream\x20finished','no\x20stream\x20handler',,a0bL(0x4bc),a0bL(0x3e0),a0bL(0x1ce),'date\x20not\x20in\x20range\x201980-2099','filename\x20too\x20long','stream\x20finishing','invalid\x20zip\x20data'],ye=function(b,c,d){const qM=a0bL;var f=new Error(c||xu[b]);if(f[qM(0xf3)]=b,Error[qM(0x42a)]&&Error[qM(0x42a)](f,ye),!d)throw f;return f;},vu=function(i,a0,a1,a2){const qN=a0bL;var a3=i[qN(0x3ea)],a4=0x0;if(!a3||a0['f']&&!a0['l'])return a1||new Ie(0x0);var a5=!a1,a6=a5||a0['i']!=0x2,a7=a0['i'];a5&&(a1=new Ie(a3*0x3));var a8=function(aZ){const qO=qN;var b0=a1['length'];if(aZ>b0){var b1=new Ie(Math[qO(0x36b)](b0*0x2,aZ));b1['set'](a1),a1=b1;}},a9=a0['f']||0x0,ab=a0['p']||0x0,aj=a0['b']||0x0,ak=a0['l'],am=a0['d'],an=a0['m'],ap=a0['n'],aq=a3*0x8;do{if(!ak){a9=je(i,ab,0x1);var av=je(i,ab+0x1,0x3);if(ab+=0x3,av){if(av==0x1)ak=wu,am=Iu,an=0x9,ap=0x5;else{if(av==0x2){var aw=je(i,ab,0x1f)+0x101,ax=je(i,ab+0xa,0xf)+0x4,ay=aw+je(i,ab+0x5,0x1f)+0x1;ab+=0xe;for(var az=new Ie(ay),aB=new Ie(0x13),aC=0x0;aC<ax;++aC)aB[bu[aC]]=je(i,ab+aC*0x3,0x7);ab+=ax*0x3;for(var aD=er(aB),aE=(0x1<<aD)-0x1,aF=as(aB,aD,0x1),aC=0x0;aC<ay;){var aG=aF[je(i,ab,aE)];ab+=aG&0xf;var aH=aG>>0x4;if(aH<0x10)az[aC++]=aH;else{var aI=0x0,aJ=0x0;for(aH==0x10?(aJ=0x3+je(i,ab,0x3),ab+=0x2,aI=az[aC-0x1]):aH==0x11?(aJ=0x3+je(i,ab,0x7),ab+=0x3):aH==0x12&&(aJ=0xb+je(i,ab,0x7f),ab+=0x7);aJ--;)az[aC++]=aI;}}var aK=az['subarray'](0x0,aw),aL=az[qN(0x654)](aw);an=er(aK),ap=er(aL),ak=as(aK,an,0x1),am=as(aL,ap,0x1);}else ye(0x1);}}else{var aH=Bu(ab)+0x4,aM=i[aH-0x4]|i[aH-0x3]<<0x8,aN=aH+aM;if(aN>a3){a7&&ye(0x0);break;}a6&&a8(aj+aM),a1[qN(0x9fd)](i[qN(0x654)](aH,aN),aj),a0['b']=aj+=aM,a0['p']=ab=aN*0x8,a0['f']=a9;continue;}if(ab>aq){a7&&ye(0x0);break;}}a6&&a8(aj+0x20000);for(var aO=(0x1<<an)-0x1,aP=(0x1<<ap)-0x1,aQ=ab;;aQ=ab){var aI=ak[tr(i,ab)&aO],aR=aI>>0x4;if(ab+=aI&0xf,ab>aq){a7&&ye(0x0);break;}if(aI||ye(0x2),aR<0x100)a1[aj++]=aR;else{if(aR==0x100){aQ=ab,ak=null;break;}else{var aS=aR-0xfe;if(aR>0x108){var aC=aR-0x101,aT=yc[aC];aS=je(i,ab,(0x1<<aT)-0x1)+xc[aC],ab+=aT;}var aU=am[tr(i,ab)&aP],aV=aU>>0x4;aU||ye(0x3),ab+=aU&0xf;var aL=yu[aV];if(aV>0x3){var aT=wc[aV];aL+=tr(i,ab)&(0x1<<aT)-0x1,ab+=aT;}if(ab>aq){a7&&ye(0x0);break;}a6&&a8(aj+0x20000);var aW=aj+aS;if(aj<aL){var aX=a4-aL,aY=Math[qN(0x5d2)](aL,aW);for(aX+aj<0x0&&ye(0x3);aj<aY;++aj)a1[aj]=a2[aX+aj];}for(;aj<aW;++aj)a1[aj]=a1[aj-aL];}}}a0['l']=ak,a0['p']=aQ,a0['b']=aj,a0['f']=a9,ak&&(a9=0x1,a0['m']=an,a0['d']=am,a0['n']=ap);}while(!a9);return aj!=a1['length']&&a5?cs(a1,0x0,aj):a1[qN(0x654)](0x0,aj);},is=new Ie(0x0),fi=function(b,c){return b[c]|b[c+0x1]<<0x8;},pi=function(b,c){return(b[c]|b[c+0x1]<<0x8|b[c+0x2]<<0x10|b[c+0x3]<<0x18)>>>0x0;},ir=function(b,c){return pi(b,c)+pi(b,c+0x4)*0x100000000;},_u=(function(){const qR=a0bL;function b(c,d){const qP=a0b;typeof c==qP(0x652)&&(d=c,c={}),this[qP(0xba)]=d;var f=c&&c['dictionary']&&c[qP(0x58a)][qP(0x654)](-0x8000);this['s']={'i':0x0,'b':f?f[qP(0x3ea)]:0x0},this['o']=new Ie(0x8000),this['p']=new Ie(0x0),f&&this['o'][qP(0x9fd)](f);}return b['prototype']['e']=function(c){const qQ=a0b;if(this[qQ(0xba)]||ye(0x5),this['d']&&ye(0x4),!this['p'][qQ(0x3ea)])this['p']=c;else{if(c[qQ(0x3ea)]){var d=new Ie(this['p'][qQ(0x3ea)]+c['length']);d['set'](this['p']),d[qQ(0x9fd)](c,this['p']['length']),this['p']=d;}}},b[qR(0x9e4)]['c']=function(c){const qS=qR;this['s']['i']=+(this['d']=c||!0x1);var d=this['s']['b'],f=vu(this['p'],this['s'],this['o']);this[qS(0xba)](cs(f,d,this['s']['b']),this['d']),this['o']=cs(f,this['s']['b']-0x8000),this['s']['b']=this['o'][qS(0x3ea)],this['p']=cs(this['p'],this['s']['p']/0x8|0x0),this['s']['p']&=0x7;},b['prototype'][qR(0x4f5)]=function(c,d){this['e'](c),this['c'](d);},b;}()),Lr=typeof TextDecoder<'u'&&new TextDecoder(),Tu=0x0;try{Lr[a0bL(0x439)](is,{'stream':!0x0}),Tu=0x1;}catch{}var Qu=function(b){const qT=a0bL;for(var c='',d=0x0;;){var f=b[d++],g=(f>0x7f)+(f>0xdf)+(f>0xef);if(d+g>b[qT(0x3ea)])return{'s':c,'r':cs(b,d-0x1)};g?g==0x3?(f=((f&0xf)<<0x12|(b[d++]&0x3f)<<0xc|(b[d++]&0x3f)<<0x6|b[d++]&0x3f)-0x10000,c+=String[qT(0x1e8)](0xd800|f>>0xa,0xdc00|f&0x3ff)):g&0x1?c+=String['fromCharCode']((f&0x1f)<<0x6|b[d++]&0x3f):c+=String[qT(0x1e8)]((f&0xf)<<0xc|(b[d++]&0x3f)<<0x6|b[d++]&0x3f):c+=String['fromCharCode'](f);}};function Su(b,c){const qU=a0bL;if(c){for(var d='',f=0x0;f<b[qU(0x3ea)];f+=0x4000)d+=String[qU(0x1e8)][qU(0x9c2)](null,b['subarray'](f,f+0x4000));return d;}else{if(Lr)return Lr[qU(0x439)](b);var g=Qu(b),h=g['s'],d=g['r'];return d[qU(0x3ea)]&&ye(0x8),h;}}var Du=function(b,c){for(;fi(b,c)!=0x1;c+=0x4+fi(b,c+0x2));return[ir(b,c+0xc),ir(b,c+0x4),ir(b,c+0x14)];},Mu=(function(){const qV=a0bL;function b(){}return b[qV(0x9e4)]['push']=function(c,d){const qW=qV;this[qW(0xba)](null,c,d);},b['compression']=0x0,b;}()),Lu=(function(){const qY=a0bL;function b(){var c=this;this['i']=new _u(function(d,f){const qX=a0b;c[qX(0xba)](null,d,f);});}return b[qY(0x9e4)]['push']=function(c,d){const qZ=qY;try{this['i'][qZ(0x4f5)](c,d);}catch(f){this['ondata'](f,null,d);}},b['compression']=0x8,b;}()),Ru=(function(){const r1=a0bL;function b(c){const r0=a0b;this[r0(0x886)]=c,this['k']=[],this['o']={0x0:Mu},this['p']=is;}return b[r1(0x9e4)][r1(0x4f5)]=function(i,j){const r2=r1;var k=this;if(this['onfile']||ye(0x5),this['p']||ye(0x4),this['c']>0x0){var m=Math['min'](this['c'],i['length']),v=i[r2(0x654)](0x0,m);if(this['c']-=m,this['d']?this['d'][r2(0x4f5)](v,!this['c']):this['k'][0x0]['push'](v),i=i['subarray'](m),i['length'])return this[r2(0x4f5)](i,j);}else{var w=0x0,x=0x0,y=void 0x0,z=void 0x0;this['p']['length']?i[r2(0x3ea)]?(z=new Ie(this['p'][r2(0x3ea)]+i[r2(0x3ea)]),z[r2(0x9fd)](this['p']),z[r2(0x9fd)](i,this['p'][r2(0x3ea)])):z=this['p']:z=i;for(var B=z[r2(0x3ea)],E=this['c'],F=E&&this['d'],H=function(){const r3=r2;var U,a0=pi(z,x);if(a0==0x4034b50){w=0x1,y=x,L['d']=null,L['c']=0x0;var a1=fi(z,x+0x6),a2=fi(z,x+0x8),a3=a1&0x800,a4=a1&0x8,a5=fi(z,x+0x1a),a6=fi(z,x+0x1c);if(B>x+0x1e+a5+a6){var a7=[];L['k']['unshift'](a7),w=0x2;var a8=pi(z,x+0x12),a9=pi(z,x+0x16),ab=Su(z[r3(0x654)](x+0x1e,x+=0x1e+a5),!a3);a8==0xffffffff?(U=a4?[-0x2]:Du(z,x),a8=U[0x0],a9=U[0x1]):a4&&(a8=-0x1),x+=a6,L['c']=a8;var aj,ak={'name':ab,'compression':a2,'start':function(){const r4=r3;if(ak[r4(0xba)]||ye(0x5),!a8)ak['ondata'](null,is,!0x0);else{var am=k['o'][a2];am||ak[r4(0xba)](ye(0xe,r4(0x96d)+a2,0x1),null,!0x1),aj=a8<0x0?new am(ab):new am(ab,a8,a9),aj['ondata']=function(av,aw,ax){const r5=r4;ak[r5(0xba)](av,aw,ax);};for(var an=0x0,ap=a7;an<ap['length'];an++){var aq=ap[an];aj['push'](aq,!0x1);}k['k'][0x0]==a7&&k['c']?k['d']=aj:aj[r4(0x4f5)](is,!0x0);}},'terminate':function(){aj&&aj['terminate']&&aj['terminate']();}};a8>=0x0&&(ak['size']=a8,ak[r3(0xaba)]=a9),L[r3(0x886)](ak);}return'break';}else{if(E){if(a0==0x8074b50)return y=x+=0xc+(E==-0x2&&0x8),w=0x3,L['c']=0x0,'break';if(a0==0x2014b50)return y=x-=0x4,w=0x3,L['c']=0x0,'break';}}},L=this;x<B-0x4;++x){var N=H();if(N===r2(0x147))break;}if(this['p']=is,E<0x0){var R=w?z[r2(0x654)](0x0,y-0xc-(E==-0x2&&0x8)-(pi(z,y-0x10)==0x8074b50&&0x4)):z[r2(0x654)](0x0,x);F?F[r2(0x4f5)](R,!!w):this['k'][+(w==0x2)]['push'](R);}if(w&0x2)return this[r2(0x4f5)](z['subarray'](x),j);this['p']=z[r2(0x654)](x);}j&&(this['c']&&ye(0xd),this['p']=null);},b['prototype']['register']=function(c){this['o'][c['compression']]=c;},b;}()),D=(b=>(b['DEBUG']=a0bL(0x25c),b[a0bL(0x9c5)]=a0bL(0xbc),b[a0bL(0x932)]=a0bL(0x5fb),b[a0bL(0xa4b)]='error',b))(D||{});const Pu={'debug':'color:\x20#64748b;\x20font-style:\x20italic;','info':a0bL(0x6bd),'warn':'color:\x20#f59e0b;\x20font-weight:\x20bold;','error':'color:\x20#ef4444;\x20font-weight:\x20bold;\x20text-decoration:\x20underline;'};function ku(b){const r6=a0bL;let c=0x0;for(let d=0x0;d<b['length'];d++)c=b[r6(0x5c0)](d)+((c<<0x5)-c);return'hsl('+Math[r6(0x855)](c%0x168)+',\x2070%,\x2050%)';}class on{constructor(b,c){const r7=a0bL;C(this,r7(0x79)),C(this,'enabled'),C(this,r7(0x92a)),C(this,'moduleColor'),(this[r7(0x79)]=b,this['enabled']=c?.[r7(0x2d3)]??!0x1,this[r7(0x92a)]=c?.[r7(0x92a)]??r7(0x25c),this[r7(0x261)]=ku(b));}[a0bL(0x25c)](b,c){const r8=a0bL;this['enabled']&&this[r8(0x1d7)](r8(0x25c))&&this['log'](r8(0x25c),b,c);}['info'](b,c){const r9=a0bL;this['enabled']&&this['shouldLog'](r9(0xbc))&&this[r9(0x15e)]('info',b,c);}['warn'](b,c){const rb=a0bL;this['enabled']&&this['shouldLog']('warn')&&this[rb(0x15e)]('warn',b,c);}['error'](b,c){const rj=a0bL;this['enabled']&&this['shouldLog']('error')&&this[rj(0x15e)](rj(0x644),b,c);}[a0bL(0x15e)](b,d,f){const rk=a0bL,g=new Date()[rk(0x740)](),h='color:\x20'+this[rk(0x261)]+';\x20font-weight:\x20bold;',i='color:\x20#94a3b8;\x20font-size:\x200.85em;',j=Pu[b],k=[rk(0x7c6)+this[rk(0x79)]+']\x20%c['+g+']\x20%c['+b['toUpperCase']()+']\x20'+d,h,i,j];switch(f&&k['push'](f),b){case rk(0x25c):console['log']['apply'](console,k);break;case'info':console[rk(0xbc)]['apply'](console,k);break;case rk(0x5fb):console[rk(0x5fb)]['apply'](console,k);break;case'error':console['error']['apply'](console,k);break;}}[a0bL(0x1d7)](b){const rm=a0bL,c=this[rm(0x4b1)](b),d=this['getLevelPriority'](this[rm(0x92a)]);return c>=d;}['getLevelPriority'](b){const rp=a0bL;switch(b){case'debug':return 0x0;case'info':return 0x1;case rp(0x5fb):return 0x2;case rp(0x644):return 0x3;default:return 0x0;}}['setEnabled'](b){const rq=a0bL;this[rq(0x2d3)]=b;}['setMinimumLevel'](b){const rv=a0bL;this[rv(0x92a)]=b;}}const Gs=new on(a0bL(0x1e2));class W extends Error{constructor(b,c,d){const rw=a0bL;super(b),this['errorType']=c,this[rw(0x668)]=d,this[rw(0x74)]='ZipDownloaderError';}}function M(b,c,d){const rx=a0bL;switch(b){case D['DEBUG']:Gs['debug'](c,d);break;case D[rx(0x9c5)]:Gs[rx(0xbc)](c,d);break;case D[rx(0x932)]:Gs['warn'](c,d);break;case D['ERROR']:Gs[rx(0x644)](c,d);break;}}class $r{constructor(){const ry=a0bL;C(this,'cacheEnabled'),C(this,'cacheName'),C(this,'cacheExpiry'),C(this,ry(0x99a)),C(this,'db',null),C(this,'target'),C(this,ry(0x4ae)),C(this,'result',{}),C(this,ry(0x6ca)),C(this,'maxRetryCount',0x3),C(this,ry(0xae2),null),C(this,ry(0xae1),0x0);}static[a0bL(0x211)](){const rz=a0bL;try{return/iPad|iPhone|iPod/['test'](navigator['userAgent'])||navigator[rz(0x239)]==='MacIntel'&&navigator['maxTouchPoints']>0x1;}catch{return!0x1;}}async[a0bL(0x962)](){const rB=a0bL;try{if(navigator['storage']&&navigator['storage'][rB(0xa66)]){const b=await navigator['storage'][rB(0xa66)](),c=b['usage']||0x0,d=b[rB(0x946)]||0x0,f=d-c;return{'usage':c,'quota':d,'available':f};}}catch(g){M(D['WARN'],'获取存储配额失败',{'error':g});}return null;}async[a0bL(0x24d)](){const rC=a0bL;return!this['db']||!this[rC(0x86f)]?0x0:new Promise(b=>{const rD=rC;try{const c=this['db']['transaction'](this['tableName'],'readonly')['objectStore'](this['tableName'])[rD(0x9e2)]();c['onsuccess']=()=>{const rE=rD,d=(c['result']||[])['reduce']((f,g)=>f+(g[rE(0x410)]||0x0),0x0);M(D['DEBUG'],'当前缓存总大小:\x20'+(d/0x400/0x400)['toFixed'](0x2)+'MB'),b(d);},c[rD(0x9d0)]=()=>{const rF=rD;M(D[rF(0x932)],rF(0xb14)),b(0x0);};}catch(d){M(D[rD(0xa4b)],'获取缓存大小异常',{'error':d}),b(0x0);}});}async[a0bL(0x58e)](b){const rG=a0bL;if(!(!this['db']||!this[rG(0x86f)]))return new Promise(c=>{const rH=rG;try{const d=this['db'][rH(0x683)](this['tableName'],rH(0x57e))['objectStore'](this['tableName']),f=d[rH(0x9e2)]();f[rH(0x381)]=()=>{const rI=rH,g=(f['result']||[])[rI(0x2e7)](m=>m[rI(0x74)]!=='__FILE_COUNT')[rI(0x3b2)]((m,o)=>m[rI(0xad)]-o['lastModified']);let i=0x0,j=0x0;const k=[];for(const m of g){if(i>=b)break;i+=m[rI(0x410)]||0x0,k['push'](m);}if(k['length']===0x0){M(D[rI(0x2f3)],rI(0x79b)),c();return;}M(D[rI(0x9c5)],'开始清理\x20'+k['length']+'\x20个旧缓存文件,预计释放\x20'+(i/0x400/0x400)['toFixed'](0x2)+'MB'),k[rI(0xb8)](o=>{const rJ=rI,p=d[rJ(0x393)](o[rJ(0x74)]);p['onsuccess']=()=>{const rK=rJ;j++,j===k[rK(0x3ea)]&&(M(D[rK(0x9c5)],'成功清理\x20'+j+rK(0x4bf)+(i/0x400/0x400)['toFixed'](0x2)+'MB\x20空间'),c());},p['onerror']=()=>{const rL=rJ;j++,j===k[rL(0x3ea)]&&c();};});},f['onerror']=()=>{const rM=rH;M(D['ERROR'],rM(0x5e2)),c();};}catch(g){M(D['ERROR'],rH(0x56b),{'error':g}),c();}});}['cancel'](){const rN=a0bL;this[rN(0xae2)]&&(this['abortController']['abort'](),M(D['INFO'],rN(0xae4))),this['closeDB']();}[a0bL(0x4f6)](){const rO=a0bL;this['db']&&(this['db'][rO(0x753)](),this['db']=null,M(D['DEBUG'],rO(0xa5)));}static[a0bL(0x3c7)](){const rP=a0bL;try{return typeof indexedDB>'u'?(M(D['WARN'],'IndexedDB不可用:浏览器不支持IndexedDB'),!0x1):!0x0;}catch(b){return M(D[rP(0x932)],rP(0x362),{'error':b}),!0x1;}}static async[a0bL(0x88e)](b){const rQ=a0bL;try{M(D['DEBUG'],'开始创建ZipDownloader实例',{'target':b[rQ(0x4b7)]});const c=new $r();c['target']=b['target'];const d=b[rQ(0x86f)]??!0x0;if(d&&!this['isIndexedDBAvailable']()?(M(D[rQ(0x932)],'设备不支持IndexedDB,自动禁用缓存功能'),c['cacheEnabled']=!0x1):c['cacheEnabled']=d,c['cacheName']=b[rQ(0x937)]??'bmv-file-cache',c[rQ(0x4ae)]=b[rQ(0x4ae)]??Qa(c['target']),c['progress']=b['progress'],c[rQ(0x898)]=b[rQ(0x898)]??0x3,c[rQ(0x707)]=b['cacheExpiry']??0x18*0x3c*0x3c*0x3e8,b['maxCacheSize']!==void 0x0?c['maxCacheSize']=b[rQ(0x99a)]:c[rQ(0x99a)]=this['isIOSDevice']()?0x14*0x400*0x400:0x32*0x400*0x400,M(D[rQ(0x2f3)],'初始化配置完成',{'target':c[rQ(0x4b7)],'cacheEnabled':c['cacheEnabled'],'cacheExpiry':c[rQ(0x707)],'maxCacheSize':(c[rQ(0x99a)]/0x400/0x400)[rQ(0xab3)](0x0)+'MB','isIOS':this['isIOSDevice'](),'indexedDBAvailable':this['isIndexedDBAvailable']()}),c['cacheEnabled']){M(D[rQ(0x2f3)],rQ(0x281));try{if(await c['initDB'](),this[rQ(0x211)]()){const f=await c['getStorageQuota']();if(f&&f[rQ(0x946)]>0x0){const g=f[rQ(0x989)]/f[rQ(0x946)]*0x64;g>0x55?(M(D[rQ(0x932)],'iOS\x20设备存储使用率过高\x20('+g[rQ(0xab3)](0x1)+rQ(0x784),{'usage':(f[rQ(0x989)]/0x400/0x400)['toFixed'](0x2)+'MB','quota':(f[rQ(0x946)]/0x400/0x400)[rQ(0xab3)](0x2)+'MB'}),c[rQ(0x86f)]=!0x1,c['closeDB']()):g>0x46&&M(D[rQ(0x932)],'iOS\x20设备存储使用率较高\x20('+g[rQ(0xab3)](0x1)+'%),建议清理缓存',{'usage':(f[rQ(0x989)]/0x400/0x400)[rQ(0xab3)](0x2)+'MB','quota':(f[rQ(0x946)]/0x400/0x400)['toFixed'](0x2)+'MB'});}}}catch(h){M(D[rQ(0x932)],'数据库初始化失败,自动禁用缓存功能',{'error':h}),c['cacheEnabled']=!0x1,c['db']=null;}}else M(D['INFO'],rQ(0x963));return M(D[rQ(0x9c5)],'ZipDownloader实例创建成功',{'cacheEnabled':c['cacheEnabled']}),c;}catch(i){throw M(D['ERROR'],rQ(0x709),{'error':i instanceof Error?i[rQ(0x193)]:String(i)}),i instanceof W?i:new W(rQ(0x7e8)+(i instanceof Error?i[rQ(0x193)]:String(i)),'UNKNOWN_ERROR',{'originalError':i});}}async['initDB'](){const rR=a0bL;if(!this['cacheEnabled']){M(D[rR(0x2f3)],rR(0x5af));return;}if(typeof indexedDB>'u'){M(D[rR(0x932)],rR(0x97a)),this['cacheEnabled']=!0x1;return;}try{const b=await this[rR(0x3b9)](),c=b+0x1;return M(D['DEBUG'],rR(0x8c)+b+',目标版本:\x20'+c),new Promise((d,f)=>{const rS=rR;try{const g=indexedDB[rS(0x253)](this['cacheName'],c);g[rS(0x60f)]=i=>{const rT=rS;try{const j=i[rT(0x4b7)][rT(0x41a)];M(D[rT(0x9c5)],rT(0x945)+j[rT(0x144)]);const k=Array[rT(0x9c4)](j['objectStoreNames'])[rT(0x2e7)](m=>m!=='_metadata');if(k['length']>0x6){const m=k[0x0];M(D['WARN'],rT(0x6e8)+m),j['deleteObjectStore'](m);}j['objectStoreNames'][rT(0x96b)](this[rT(0x4ae)])||(M(D['DEBUG'],'创建新的对象存储:\x20'+this['tableName']),j['createObjectStore'](this[rT(0x4ae)],{'keyPath':rT(0x74)}));}catch(p){M(D['ERROR'],rT(0x32d),{'error':p}),f(new W('数据库升级失败:\x20'+(p instanceof Error?p['message']:String(p)),rT(0x6e)));}},g[rS(0x381)]=h=>{const rU=rS;this['db']=h[rU(0x4b7)][rU(0x41a)],M(D['INFO'],rU(0x1dc)),d();},g['onerror']=h=>{const rV=rS,i=h['target'][rV(0x644)];if(i&&i[rV(0x74)]===rV(0x3a2)){M(D[rV(0x932)],'数据库版本冲突,尝试删除旧数据库'),indexedDB[rV(0x328)](this[rV(0x937)]),f(new W('数据库版本冲突','VERSION_CONFLICT',{'error':i}));return;}M(D['ERROR'],'初始化IndexedDB失败',{'error':i}),f(new W(rV(0x95b)+(i?.[rV(0x193)]||String(i)),'DATABASE_ERROR',{'error':i}));};}catch(h){M(D[rS(0xa4b)],'数据库初始化设置失败',{'error':h}),f(new W('数据库初始化设置失败:\x20'+(h instanceof Error?h[rS(0x193)]:String(h)),rS(0x6e)));}});}catch(d){M(D['ERROR'],'初始化数据库过程出错',{'error':d}),this[rR(0x86f)]=!0x1,M(D['WARN'],rR(0x3fd));}}async['getValue'](b){const rW=a0bL;try{if(M(D['DEBUG'],rW(0x7f9)+b),this[rW(0x41a)][b])return M(D['DEBUG'],rW(0x520)+b),this[rW(0x41a)][b];if(this['cacheEnabled'])return M(D[rW(0x2f3)],'尝试从缓存获取文件:\x20'+b),await this['getFromCache'](b)??void 0x0;M(D[rW(0x2f3)],'文件不存在且缓存禁用:\x20'+b);return;}catch(c){M(D['ERROR'],'获取文件数据失败:\x20'+b,{'error':c});return;}}[a0bL(0x934)](){const rX=a0bL,b=Object['keys'](this[rX(0x41a)])['length'];this['result']={},M(D[rX(0x9c5)],rX(0x811)+b+'个解压结果');}async[a0bL(0x3b9)](){return!this['cacheEnabled']||typeof indexedDB>'u'?0x0:new Promise(b=>{const rY=a0b;try{const c=indexedDB[rY(0x253)](this[rY(0x937)]);c[rY(0x381)]=d=>{const rZ=rY,f=d[rZ(0x4b7)]['result'],g=f['version'];f['close'](),M(D['DEBUG'],rZ(0x69f)+g),b(g);},c['onerror']=d=>{const s0=rY,f=d['target']['error'];M(D[s0(0x932)],s0(0x994),{'error':f}),b(0x0);};}catch(d){M(D['ERROR'],rY(0x85d),{'error':d}),b(0x0);}});}async[a0bL(0x60b)](b){const s1=a0bL;return!this['db']||!this['cacheEnabled']?(M(D[s1(0x2f3)],s1(0x1f2),{'fileName':b,'dbAvailable':!!this['db'],'cacheEnabled':this['cacheEnabled']}),null):new Promise(c=>{const s2=s1;try{M(D[s2(0x2f3)],s2(0xa86)+b);const d=this['db'][s2(0x683)](this[s2(0x4ae)],s2(0x3dc))[s2(0x546)](this['tableName'])[s2(0x7d7)](b);d['onsuccess']=async()=>{const s3=s2,f=d['result'];if(!f){M(D[s3(0x2f3)],s3(0x2dd)+b),c(null);return;}if(Date['now']()-f[s3(0xad)]>this['cacheExpiry']){M(D['DEBUG'],s3(0x56e)+b+',将被删除',{'lastModified':new Date(f['lastModified'])['toISOString'](),'expiry':new Date(f[s3(0xad)]+this[s3(0x707)])[s3(0x740)]()}),this[s3(0x549)](b)['catch'](g=>{const s4=s3;M(D[s4(0x932)],s4(0x8f)+b,{'error':g});}),c(null);return;}M(D[s3(0x2f3)],'成功从缓存读取文件:\x20'+b),c(f['data']);},d[s2(0x9d0)]=f=>{const s5=s2,g=f['target'][s5(0x644)];M(D['ERROR'],s5(0x975)+b,{'error':g}),c(null);};}catch(f){M(D[s2(0xa4b)],'缓存读取异常:\x20'+b,{'error':f}),c(null);}});}async[a0bL(0x80a)](b,d){const s6=a0bL;if(!this[s6(0x86f)]){M(D['DEBUG'],'缓存已禁用,无法保存缓存',{'fileName':b});return;}if(!this['db']){M(D[s6(0x932)],s6(0x56f),{'fileName':b});try{if(await this['initDB'](),!this['db']){M(D[s6(0x932)],s6(0x597),{'fileName':b});return;}}catch(i){M(D['ERROR'],'数据库重新初始化异常',{'fileName':b,'error':i});return;}}const f=d[s6(0x3ea)],g=await this['getStorageQuota']();g&&g[s6(0x763)]<f*0x2&&(M(D['WARN'],s6(0x3e7)+(g[s6(0x763)]/0x400/0x400)['toFixed'](0x2)+s6(0xbf)),await this['clearExpiredCache'](),g['available']<f&&await this[s6(0x58e)](f));const h=await this[s6(0x24d)]();if(h+f>this['maxCacheSize']){const j=h+f-this['maxCacheSize'];M(D[s6(0x932)],s6(0x23d)+(h/0x400/0x400)[s6(0xab3)](0x2)+'MB,\x20限制:\x20'+(this['maxCacheSize']/0x400/0x400)['toFixed'](0x2)+s6(0x6e2)+(j/0x400/0x400)[s6(0xab3)](0x2)+'MB'),await this[s6(0x867)]();const k=await this[s6(0x24d)]();if(k+f>this['maxCacheSize']){const m=k+f-this[s6(0x99a)];await this['clearOldCacheUntilSpaceAvailable'](m);}}return new Promise((p,u)=>{const s7=s6;try{if(!this['db']){M(D['WARN'],'数据库连接在异步操作期间被关闭,无法保存缓存',{'fileName':b}),p();return;}const v=this['db'][s7(0x683)](this['tableName'],s7(0x57e))[s7(0x546)](this[s7(0x4ae)]),w={'name':b,'data':d,'lastModified':Date[s7(0x6b5)](),'size':f},x=v[s7(0x8e9)](w);x[s7(0x381)]=()=>{p();},x[s7(0x9d0)]=async y=>{const s8=s7,z=y['target']['error'];if(M(D['ERROR'],s8(0x5f7)+b,{'error':z}),z&&z[s8(0x74)]==='QuotaExceededError'){M(D['WARN'],'缓存空间不足,尝试清理缓存');try{await this[s8(0x867)](),await this['clearOldCacheUntilSpaceAvailable'](f),M(D[s8(0x932)],'已清理缓存,但为避免无限循环,跳过自动重试'),u(new W(s8(0x252),'QUOTA_EXCEEDED',{'fileName':b,'error':z,'fileSize':f}));}catch(B){M(D['ERROR'],s8(0x131),{'error':B}),u(new W('缓存空间不足且清理失败',s8(0x72),{'fileName':b,'error':z,'cleanupError':B}));}return;}u(new W(s8(0x5f7)+b,'DATABASE_ERROR',{'fileName':b,'error':z}));};}catch(y){M(D['ERROR'],'缓存保存异常:\x20'+b,{'error':y}),u(new W(s7(0x786)+b,'DATABASE_ERROR',{'fileName':b,'error':y}));}});}async['clearExpiredCache'](){const s9=a0bL;if(!this['db']){M(D[s9(0x2f3)],'数据库未初始化,无法清理过期缓存');return;}return new Promise((b,c)=>{const sb=s9;try{M(D[sb(0x2f3)],'开始清理过期缓存:\x20'+this[sb(0x4ae)]);const d=this['db']['transaction'](this['tableName'],'readwrite')[sb(0x546)](this['tableName']),f=d[sb(0x9e2)]();f[sb(0x381)]=()=>{const sj=sb,g=f['result'],i=Date['now']();let j=0x0,k=0x0;const m=g[sj(0x2e7)](p=>i-p[sj(0xad)]>this['cacheExpiry']);if(m[sj(0x3ea)]===0x0){M(D[sj(0x2f3)],'没有过期的缓存文件需要清理'),b();return;}M(D[sj(0x9c5)],'发现'+m['length']+'个过期缓存文件需要清理'),m['forEach'](p=>{const sk=sj,v=d['delete'](p[sk(0x74)]);k+=p['size'],v['onsuccess']=()=>{const sm=sk;j++,M(D[sm(0x2f3)],'删除过期缓存成功:\x20'+p['name']),j===m[sm(0x3ea)]&&(M(D['INFO'],sm(0x78f)+j+sm(0x17d),{'freedSpace':(k/0x400/0x400)['toFixed'](0x2)+'MB'}),b());},v[sk(0x9d0)]=w=>{const sp=sk,x=w['target']['error'];M(D[sp(0xa4b)],sp(0x8f)+p[sp(0x74)],{'error':x}),j++,j===m['length']&&b();};});},f['onerror']=g=>{const sq=sb,h=g[sq(0x4b7)]['error'];M(D['ERROR'],'获取缓存列表失败',{'error':h}),c(new W('获取缓存列表失败','DATABASE_ERROR',{'error':h}));};}catch(g){M(D['ERROR'],'清理过期缓存异常',{'error':g}),c(new W('清理过期缓存异常',sb(0x6e),{'error':g}));}});}async['getStoreCount'](){const sy=a0bL;return this['db']?new Promise(b=>{const sv=a0b;try{const c=this['db']['transaction'](this[sv(0x4ae)],sv(0x3dc))['objectStore'](this[sv(0x4ae)])[sv(0x675)]();c[sv(0x381)]=()=>{const sw=sv,d=c[sw(0x41a)];M(D[sw(0x2f3)],'获取到缓存文件数量:\x20'+d),b(d);},c['onerror']=d=>{const sx=sv,f=d['target'][sx(0x644)];M(D['ERROR'],sx(0x9b8),{'error':f}),b(0x0);};}catch(d){M(D['ERROR'],'获取缓存数量异常',{'error':d}),b(0x0);}}):(M(D[sy(0x2f3)],'数据库未初始化,无法获取缓存计数'),0x0);}async[a0bL(0x26c)](b=[],d){const sz=a0bL;let f=0x0;for(;f<=this['maxRetryCount'];)try{if(M(D[sz(0x9c5)],sz(0xa19)+(f>0x0?sz(0x22f)+f+'/'+this['maxRetryCount']+')':''),{'target':this['target'],'fileCount':b[sz(0x3ea)]||'全部','cacheEnabled':this[sz(0x86f)]}),this['abortController']=new AbortController(),this['cacheEnabled']&&(M(D[sz(0x2f3)],'检查缓存有效性'),await this[sz(0x631)]())){M(D[sz(0x2f3)],sz(0x4ba));const i={};let j=!0x0;if(b[sz(0x3ea)]>0x0)for(const k of b){const m=await this['getFromCache'](k);if(m)i[k]=m;else{j=!0x1,M(D['DEBUG'],sz(0x420)+k);break;}}else{const p=await this['getCachedFileNames']();for(const u of p)if(u!==sz(0xaed)){const v=await this[sz(0x60b)](u);v&&(i[u]=v);}j=Object[sz(0x557)](i)[sz(0x3ea)]>0x0;}if(j)return M(D['INFO'],'成功从缓存加载'+Object[sz(0x557)](i)['length']+sz(0x124)),this[sz(0x41a)]=i,d?.(0x64),this['progress']?.({'message':sz(0xb08),'percentage':0x64,'step':'cache_load'}),i;}M(D[sz(0x2f3)],sz(0x810));const g=await this['downloadZipFile']((w,x,y)=>{const sB=sz;this['progress']?.({'message':sB(0x29a),'percentage':w,'downloadSpeed':x,'timeRemaining':y,'step':sB(0x29a)});});return M(D['INFO'],sz(0x8da)),await this[sz(0xa1e)](g,b,w=>{const sC=sz;this['progress']?.({'message':sC(0x73b),'percentage':w,'filesize':g[sC(0x3ea)],'step':sC(0x1c0)});}),M(D[sz(0x9c5)],sz(0x3d4)+Object[sz(0x557)](this['result'])['length']+'个文件'),d?.(0x64),this[sz(0x41a)];}catch(w){if(this[sz(0xae2)]?.['signal'][sz(0x9c8)])throw M(D[sz(0x9c5)],'下载解压过程已被用户取消'),new W(sz(0xae4),'UNKNOWN_ERROR');if(M(D['ERROR'],'下载解压过程失败'+(f>0x0?'(重试\x20'+f+'/'+this['maxRetryCount']+')':''),{'error':w}),f++,f<=this[sz(0x898)]){const x=Math['min'](0x3e8*Math[sz(0xf6)](0x2,f-0x1),0x2710);M(D[sz(0x9c5)],'将在'+x+sz(0x4a6)),await new Promise(y=>setTimeout(y,x));continue;}throw w instanceof W?w:new W(sz(0x827)+(w instanceof Error?w[sz(0x193)]:String(w)),'UNKNOWN_ERROR',{'originalError':w});}finally{this['abortController']=null;}throw new W('下载解压达到最大重试次数','UNKNOWN_ERROR');}async[a0bL(0x90a)](i){const sD=a0bL,j=Date['now']();let k=j,v=0x0,z=0x0,F=0x0;const H=[];try{M(D[sD(0x2f3)],'准备下载请求',{'url':this['target']});const L=await fetch(this[sD(0x4b7)],{'method':sD(0x528),'headers':{'Accept':sD(0x872)},'signal':this['abortController']?.['signal'],...!this['abortController']&&{'signal':AbortSignal['timeout'](0xea60)}});if(!L['ok']){const a0=sD(0x324)+L['status']+'\x20'+L['statusText'];throw M(D[sD(0xa4b)],a0,{'status':L[sD(0x4c1)],'statusText':L['statusText']}),new W(a0,'NETWORK_ERROR',{'status':L['status'],'statusText':L[sD(0x3b6)]});}F=Number(L['headers']['get']('content-length'))||0x0,M(D['INFO'],'开始下载文件',{'contentLength':F?(F/0x400/0x400)[sD(0xab3)](0x2)+'MB':sD(0x55b)});const N=L[sD(0x279)]?.[sD(0x9e3)]();if(!N)throw M(D['ERROR'],'无法获取响应读取器'),new W(sD(0x3a8),sD(0x66a));for(;;){if(this['abortController']?.['signal']['aborted'])throw new W('下载已取消','UNKNOWN_ERROR');const {done:a1,value:a2}=await N['read']();if(a1)break;if(a2&&(H[sD(0x4f5)](a2),z+=a2[sD(0x3ea)],F>0x0&&i)){const a3=Date['now'](),a4=(a3-k)/0x3e8;if(a4>0.3||z===F){const a5=parseFloat((z/F*0x64)['toFixed'](0x2)),a6=z-v,a7=a4>0x0?Math['round'](a6/0x400/a4):0x0,a8=F-z,a9=a7>0x0?Math[sD(0x43f)](a8/(a7*0x400)):0x0;requestAnimationFrame(()=>{i(a5,a7,a9);}),k=a3,v=z;}}}const R=new Uint8Array(z);let S=0x0;for(const ab of H)R[sD(0x9fd)](ab,S),S+=ab['length'];const T=(Date['now']()-j)/0x3e8,U=(z/0x400/0x400)['toFixed'](0x2);return this[sD(0xae1)]=z,M(D['INFO'],sD(0x924),{'totalSize':U+'MB','duration':T['toFixed'](0x2)+'秒','averageSpeed':Math['round'](z/0x400/T)+'\x20KB/s'}),i?.(0x64,0x0,0x0),R;}catch(aj){throw aj instanceof Error&&aj['name']===sD(0xcb)?(M(D[sD(0x932)],'下载超时或被中止'),new W(sD(0xb06),sD(0x8a8))):(M(D[sD(0xa4b)],'下载ZIP文件失败',{'error':aj,'downloadedSize':(z/0x400/0x400)['toFixed'](0x2)+'MB','totalSize':F?(F/0x400/0x400)['toFixed'](0x2)+'MB':'未知','progress':F?(z/F*0x64)[sD(0xab3)](0x2)+'%':'未知'}),new W(sD(0x324)+(aj instanceof Error?aj[sD(0x193)]:String(aj)),'NETWORK_ERROR',{'error':aj,'downloadedSize':z,'totalSize':F}));}}async['checkCacheValidity'](){const sE=a0bL;if(!this['cacheEnabled']||!this['db'])return M(D['DEBUG'],sE(0x6f5)),!0x1;try{if(!this['db']?.['objectStoreNames'][sE(0x96b)](this[sE(0x4ae)]))return M(D[sE(0x2f3)],'缓存表不存在:\x20'+this['tableName']),!0x1;const [b,c]=await Promise[sE(0x90)]([this['getStoreCount'](),this['getFromCache'](sE(0xaed))]);M(D['DEBUG'],sE(0x629),{'storeCount':b,'hasFieldCount':c!=null});const d=b>0x0&&c!==void 0x0&&c!==null&&Number(c)+0x1<=b;return d||M(D[sE(0x932)],sE(0x8e6),{'storeCount':b,'fieldCount':c}),d;}catch(f){return M(D['ERROR'],'检查缓存有效性失败',{'error':f}),!0x1;}}get['fileSize'](){const sF=a0bL;return this[sF(0xae1)];}async['extractFromZip'](b,c=[],d){const sG=a0bL;return this[sG(0xae1)]=b['length'],new Promise((i,j)=>{const sH=sG;try{M(D[sH(0x2f3)],sH(0x530),{'zipSize':(b[sH(0x3ea)]/0x400/0x400)['toFixed'](0x2)+'MB','fileCount':c['length']||'全部'});const k=new Ru({'chunkSize':0x10000,'consume':!0x0});k[sH(0xd3)](Lu);let m=0x0,v=0x0,w=0x0,x=0x0,y=Date[sH(0x6b5)](),z=y,B=0x0;const E=c[sH(0x3ea)]===0x0;this[sH(0x41a)]={};const F=new Set(c);k[sH(0x886)]=H=>{const sI=sH;if(E||F['has'](H[sI(0x74)])){m++,v++,M(D['DEBUG'],'开始提取文件:\x20'+H['name']);const L=[];let N=0x0;H['ondata']=(U,a0,a1)=>{const sJ=sI;if(this['abortController']?.[sJ(0xaeb)]['aborted']){M(D['INFO'],'解压过程已被取消'),j(new W(sJ(0xa42),sJ(0x61f)));return;}if(U){M(D[sJ(0xa4b)],sJ(0xe3)+H['name'],{'error':U}),j(new W('解压失败:\x20'+H[sJ(0x74)]+'\x20-\x20'+U['message'],sJ(0x344),{'fileName':H['name'],'error':U}));return;}if(a0){L['push'](a0),N+=a0[sJ(0x3ea)],x+=a0['length'];const a2=Date[sJ(0x6b5)](),a3=(a2-z)/0x3e8;if(a3>0.5||a1){const a4=x-B,a5=a3>0x0?Math['round'](a4/0x400/a3):0x0,a6=b[sJ(0x3ea)]-x,a7=a5>0x0?Math['round'](a6/(a5*0x400)):0x0;if(d){const a8=v>0x0?Math['round'](w/v*0x64):0x0;requestAnimationFrame(()=>{const sK=sJ;d(a8,H[sK(0x74)],a5,a7);});}z=a2,B=x;}}if(a1)try{const a9=new Uint8Array(N);let ab=0x0;for(const aj of L)a9['set'](aj,ab),ab+=aj['length'];if(this['result'][H['name']]=a9,w++,m--,M(D['DEBUG'],'文件提取完成:\x20'+H[sJ(0x74)]+'\x20('+(N/0x400)[sJ(0xab3)](0x2)+'KB)'),this[sJ(0x86f)]&&queueMicrotask(()=>{const sL=sJ;this[sL(0x80a)](H[sL(0x74)],a9)[sL(0x217)](ak=>{const sM=sL;M(D['WARN'],'缓存保存失败:\x20'+H[sM(0x74)],{'error':ak});});}),m===0x0){const ak=(Date[sJ(0x6b5)]()-y)/0x3e8;M(D['INFO'],'解压完成',{'fileCount':w,'duration':ak['toFixed'](0x2)+'秒','averageSpeed':Math['round'](x/0x400/ak)+sJ(0x787)}),this[sJ(0x86f)]&&v>0x0&&this['saveToCache']('__FILE_COUNT',new Uint8Array([v]))[sJ(0x217)](am=>{const sN=sJ;M(D['WARN'],sN(0x168),{'error':am});}),i(this['result']);}}catch(am){M(D['ERROR'],sJ(0x99d)+H['name'],{'error':am}),j(new W(sJ(0x3bb)+H['name'],sJ(0x5ec),{'fileName':H['name'],'error':am}));}},H['start']();}},k['onerror']=H=>{const sO=sH;M(D[sO(0xa4b)],sO(0x777),{'error':H}),j(new W(sO(0x7e6)+H[sO(0x193)],'ZIP_DECOMPRESS_ERROR',{'error':H}));},k['push'](b,!0x0);}catch(H){M(D[sH(0xa4b)],sH(0x971),{'error':H}),j(new W(sH(0x4c5)+(H instanceof Error?H[sH(0x193)]:String(H)),sH(0x344),{'error':H}));}});}async['getCachedFileNames'](){const sP=a0bL;return!this['db']||!this[sP(0x86f)]?(M(D['DEBUG'],sP(0x6d),{'dbAvailable':!!this['db'],'cacheEnabled':this['cacheEnabled']}),[]):new Promise(b=>{const sQ=sP;try{M(D[sQ(0x2f3)],'获取缓存表中的所有文件名:\x20'+this[sQ(0x4ae)]);const c=this['db']['transaction'](this['tableName'],sQ(0x3dc))[sQ(0x546)](this[sQ(0x4ae)])[sQ(0x96)]();c['onsuccess']=()=>{const sR=sQ,d=c[sR(0x41a)][sR(0x2e7)](f=>f!=='__FILE_COUNT');M(D['DEBUG'],sR(0x2e5)+d[sR(0x3ea)]+sR(0x99c)),b(d);},c['onerror']=d=>{const sS=sQ,f=d['target']['error'];M(D[sS(0xa4b)],sS(0xd5),{'error':f}),b([]);};}catch(d){M(D['ERROR'],sQ(0x3e6),{'error':d}),b([]);}});}async['deleteFromCache'](b){const sT=a0bL;if(!this['db']||!this['cacheEnabled']){M(D['DEBUG'],'缓存不可用,无法删除文件',{'fileName':b,'dbAvailable':!!this['db'],'cacheEnabled':this[sT(0x86f)]});return;}return new Promise(c=>{const sU=sT;try{M(D[sU(0x2f3)],sU(0x940)+b);const d=this['db']['transaction'](this['tableName'],'readwrite')[sU(0x546)](this['tableName'])['delete'](b);d['onsuccess']=()=>{const sV=sU;M(D[sV(0x2f3)],sV(0x318)+b),c();},d['onerror']=f=>{const sW=sU,g=f['target']['error'];M(D['ERROR'],sW(0xa6c)+b,{'error':g}),c();};}catch(f){M(D['ERROR'],'删除缓存异常:\x20'+b,{'error':f}),c();}});}async[a0bL(0x659)](){const sX=a0bL;if(!this['cacheEnabled']){M(D['DEBUG'],'缓存功能已禁用,跳过清空缓存');return;}if(typeof indexedDB>'u'){M(D[sX(0x932)],'IndexedDB不可用,无法清空缓存');return;}try{if(!this['db']&&(M(D[sX(0x2f3)],'数据库未初始化,尝试初始化后清空缓存'),await this[sX(0x3f0)](),!this['db'])){M(D[sX(0x2f3)],sX(0x8ea));return;}return new Promise((b,c)=>{const sY=sX;try{M(D[sY(0x9c5)],'开始清空缓存表:\x20'+this[sY(0x4ae)]);const d=this['db']['transaction'](this[sY(0x4ae)],sY(0x57e))['objectStore'](this[sY(0x4ae)])[sY(0x752)]();d['onsuccess']=()=>{const sZ=sY;M(D['INFO'],'缓存表\x20['+this[sZ(0x4ae)]+sZ(0x59b)),b();},d[sY(0x9d0)]=f=>{const t0=sY,g=f['target']['error'];M(D['ERROR'],t0(0x282),{'error':g}),c(new W('清空缓存失败','DATABASE_ERROR',{'error':g,'tableName':this[t0(0x4ae)]}));};}catch(f){M(D[sY(0xa4b)],sY(0x24c),{'error':f}),c(new W('清空缓存异常',sY(0x6e),{'error':f}));}});}catch(b){throw M(D[sX(0xa4b)],sX(0x52d),{'error':b}),new W('清除缓存过程出错','DATABASE_ERROR',{'error':b});}}}const Fu=a0bL(0xa68),P=new on('ModelLoader');class Ou{constructor(b){const t1=a0bL;C(this,'options'),C(this,'MANAGER',new a0bj()),C(this,'DRACO_LOADER'),C(this,t1(0x82),0x0),C(this,t1(0x6ee)),C(this,t1(0x637),[]),C(this,'times',{'totalTime':0x0,'downloadTime':0x0,'unzipTime':0x0,'LODFactor':0xf}),C(this,'GLTFLoader'),C(this,'modelInfo'),C(this,t1(0x596)),C(this,t1(0x6e9)),C(this,'edgeData'),C(this,t1(0xe2),{'center':new a0c(),'width':0x0,'height':0x0,'depth':0x0,'diagonal':0x64}),C(this,'target'),C(this,'viewer'),C(this,'workerLoadEdgePromise'),C(this,t1(0x4ea),[]),C(this,t1(0xaa8),[]),C(this,t1(0x838)),C(this,'envMap'),C(this,t1(0x20f),new Map()),C(this,'isMobile',sn()),(this['viewer']=b,this[t1(0x838)]=b['content'],this[t1(0x15b)]=b[t1(0x15b)],P['info'](t1(0xaad)),P['debug'](t1(0x646),{'dracoUrl':this[t1(0x15b)][t1(0x6fc)]['url'],'ktx2Url':this[t1(0x15b)]['ktx2']['url'],'useProxy':this[t1(0x15b)]['load'][t1(0x55d)]['enabled']}),this['DRACO_LOADER']=new xh(this[t1(0xa33)])[t1(0x2bd)](this['options']['draco'][t1(0x5be)]),this[t1(0x6e9)]=new Fe(this[t1(0xa33)])['setTranscoderPath'](this[t1(0x15b)][t1(0x63d)][t1(0x5be)]),this[t1(0xa33)]['onProgress']=(c,d,f)=>{},this['MANAGER']['onError']=c=>{const t2=t1;P['warn'](t2(0xae5),{'error':c});},this[t1(0xa3e)]=new kd(this['MANAGER'])[t1(0xc3)](this[t1(0x551)])[t1(0x913)](this[t1(0x6e9)])[t1(0x2b8)](Rd),P['info'](t1(0x98e)));}get['fileSize'](){return this['zipDownloader']['fileSize'];}[a0bL(0x671)](){const b=this['fileSize']/0x100000;let c;return b<0xf?c=0x14:b>0x64?c=0x5:c=0x14-0xf*((b-0xf)/0x55),c;}async[a0bL(0xb08)](b,d){const t3=a0bL;P[t3(0xbc)]('开始加载模型',{'target':b}),this[t3(0x82)]=Date[t3(0x6b5)](),this['target']=b,P[t3(0x25c)]('初始化ZipDownloader',{'target':b,'cacheEnabled':this['options'][t3(0xb08)][t3(0x6fd)]['enabled']});const f=await $r['create']({'target':b,'cacheEnabled':this['options'][t3(0xb08)][t3(0x6fd)][t3(0x2d3)],'progress':d});await f[t3(0x26c)](),this[t3(0x3ba)]['downloadTime']=Date[t3(0x6b5)]()-this[t3(0x82)],P['info']('开始读取模型信息文件');const g=await f['getValue'](t3(0xa99));g||(P[t3(0x644)](t3(0x2a8)),f['closeDB'](),await Sa(),location['reload']()),this['modelInfo']=JSON['parse'](new TextDecoder()['decode'](g));const {version:i,layers:j,pages:k,model:{bounds:m}}=this['modelInfo'];P[t3(0xbc)](t3(0xa77),{'version':i,'layersCount':j?.[t3(0x3ea)]||0x0,'pagesCount':k?.['length']||0x0,'bounds':{'width':m['width'],'height':m['height'],'depth':m['depth']}}),this[t3(0x596)]=i,this[t3(0xe2)][t3(0xabb)]=rc(m['center'],this[t3(0x596)],br),P['debug'](br(this['exportVersion']||'0.0.0','7.0.0')?'使用新版坐标系统':'使用旧版坐标系统(Y和Z互换)'),d({'message':t3(0x80c),'percentage':0x64,'data':{'pages':k,'layers':j}}),this['zipDownloader']=f,P['info']('开始加载模型数据');const p=[this['loadMainModel'](u=>{const t4=t3;P[t4(0x25c)]('模型加载进度',{'percentage':u['toFixed'](0x2)}),d({'message':t4(0x31d),'percentage':u['toFixed'](0x2)});})];return P[t3(0xbc)]('开始加载边线数据'),p[t3(0x4f5)](this['parseEdge']()[t3(0x217)](u=>(P['error']('边线数据解析失败',{'error':u}),!0x1))),P['info'](t3(0x151)),p[t3(0x4f5)](new Promise((v,w)=>{const t5=t3,x=new a0bk(),y=this[t5(0x15b)]['render']['envMap']||{},z=y['enabled']!==!0x1,B=y['path']||t5(0x8f3),F=y['files']||{},H=[''+B+(F['px']||t5(0x90c)),''+B+(F['nx']||'nx.png'),''+B+(F['py']||'py.png'),''+B+(F['ny']||'ny.png'),''+B+(F['pz']||'pz.png'),''+B+(F['nz']||'nz.png')];z?this['envMap']=x[t5(0xb08)](H,()=>{const t6=t5;P[t6(0xbc)](t6(0x13b)),v();},void 0x0,L=>{const t7=t5;P['warn']('环境贴图加载失败',{'error':L}),L instanceof ErrorEvent&&L['message']&&P[t7(0x644)](t7(0x4c7),{'errorMessage':L['message']}),v();}):(P['info'](t5(0x6b6)),this['envMap']=null,v());})),Promise['all'](p)['then'](()=>{const t8=t3;P['info']('开始优化模型内存使用',{'isMobile':this['isMobile']}),this['optimizeModelMemory'](this['content']),this['content'][t8(0x268)](u=>{u['isMesh']&&u['geometry']['computeBoundsTree']();}),this[t8(0x3bf)](),this[t8(0xa39)](),this['zipDownloader']['closeDB'](),this['times'][t8(0x414)]=Date[t8(0x6b5)]()-this[t8(0x82)],P['info']('模型加载全部完成',{'totalTime':this['times']['totalTime']+'ms','downloadTime':this['times'][t8(0x2a5)]+'ms','unzipTime':this[t8(0x3ba)]['unzipTime']+'ms','errorCount':this['errors'][t8(0x3ea)]});});}async[a0bL(0x5ba)](b){const t9=a0bL;try{P[t9(0xbc)]('从\x20URL\x20下载边线数据',{'url':b});const c=await fetch(b);if(!c['ok']){P[t9(0x5fb)]('边线数据下载失败',{'url':b,'status':c[t9(0x4c1)],'statusText':c[t9(0x3b6)]});return;}const d=await c[t9(0x2b9)](),f=new Uint8Array(d);return P['info']('边线数据下载成功',{'url':b,'size':f['length']}),f;}catch(g){P[t9(0x5fb)](t9(0x6ae),{'url':b,'error':g});return;}}async[a0bL(0x94d)](){const tb=a0bL;P['info']('开始解析边线数据');let b;const c=this[tb(0x15b)][tb(0xb08)]['edge']?.[tb(0x5be)];if(c&&c['trim']()&&(P[tb(0xbc)]('尝试从配置的\x20URL\x20加载边线数据',{'url':c}),b=await this['downloadEdgeFromUrl'](c),b||P[tb(0x5fb)]('从\x20URL\x20加载边线数据失败,尝试从\x20zip\x20文件获取')),b||(P[tb(0x25c)]('从\x20zip\x20文件获取边线数据'),b=await this[tb(0x6ee)][tb(0x647)](tb(0x735))),!b||b[tb(0x3ea)]===0x0)return P['warn']('未找到边线数据或边线数据为空'),!0x1;let d,f=null;try{{const g=new Blob([Fu],{'type':tb(0x223)}),h=URL['createObjectURL'](g);d=h,f=h;}return await new Promise((i,j)=>{const tm=tb,k=new Worker(d);let m=!0x1;const p=()=>{const tj=a0b;f&&(URL[tj(0x492)](f),f=null),k&&k[tj(0x6d7)]();},u=setTimeout(()=>{const tk=a0b;if(!m){m=!0x0,p();const v=new Error('边线数据解析超时');P[tk(0x644)]('边线数据解析超时'),j(v);}},0x186a0);k[tm(0xa76)]=v=>{const tp=tm,{type:w,data:x,error:y,percentage:z,stage:B}=v[tp(0x340)]||{};if(w){switch(w){case tp(0x46f):if(m)return;m=!0x0,clearTimeout(u);try{P['info'](tp(0x10e)),this[tp(0x2ee)]['edgeData']=x;const {positions:F,visibility:H}=x;P['debug'](tp(0x677),{'positionsCount':F?.[tp(0x3ea)]||0x0,'visibilityCount':H?.['length']||0x0}),this['viewer']['styleManager']['generateEdge'](F,H),p(),i(!0x0);}catch(L){P['error'](tp(0x90d),{'error':L}),p(),j(new Error('边线数据处理失败:\x20'+(L instanceof Error?L[tp(0x193)]:String(L))));}break;case'progress':P['debug'](tp(0x85),{'percentage':z,'stage':B,'processed':v['data'][tp(0xab6)],'total':v[tp(0x340)]['total']});break;case'error':if(m)return;m=!0x0,clearTimeout(u),p(),P['error']('边线解析工作线程错误',{'error':y||'Unknown\x20error','context':v['data'][tp(0x668)]}),j(new Error('Worker\x20error:\x20'+(y||'Unknown\x20error')));break;case'yield':break;default:P[tp(0x5fb)]('收到未知消息类型',{'type':w,'data':v['data']});}return;}if(v[tp(0x340)]&&v[tp(0x340)]['positions']&&v[tp(0x340)][tp(0x219)]){if(m)return;m=!0x0,clearTimeout(u);try{P[tp(0xbc)](tp(0x19a)),this['viewer']['edgeData']=v['data'];const {positions:N,visibility:R}=v['data'];P['debug']('生成边线样式',{'positionsCount':N?.['length']||0x0,'visibilityCount':R?.[tp(0x3ea)]||0x0}),this['viewer'][tp(0x494)][tp(0x4b5)](N,R),p(),i(!0x0);}catch(S){P[tp(0x644)](tp(0x90d),{'error':S}),p(),j(new Error('边线数据处理失败:\x20'+(S instanceof Error?S[tp(0x193)]:String(S))));}return;}if(!w&&v['data']&&!m){m=!0x0,clearTimeout(u);try{this['viewer']['edgeData']=v[tp(0x340)];const {positions:T,visibility:U}=v['data']||{};if(T&&U)this[tp(0x2ee)]['styleManager'][tp(0x4b5)](T,U),P['info']('边线数据解析成功'),p(),i(!0x0);else throw new Error('边线数据格式不正确');}catch(a0){P['error'](tp(0x90d),{'error':a0}),p(),j(new Error(tp(0x640)+(a0 instanceof Error?a0['message']:String(a0))));}}},k['onerror']=v=>{const tq=tm;if(m)return;m=!0x0,clearTimeout(u),p();const w='Worker\x20error:\x20'+(v instanceof Error?v['message']:String(v));P['error'](tq(0x321),{'error':w}),j(new Error(w));};try{k[tm(0xb9)]({'buffer':b['buffer']},[b[tm(0x186)]]);}catch(v){m||(m=!0x0,clearTimeout(u),p(),P[tm(0x644)](tm(0x2aa),{'error':v}),j(new Error('发送数据到\x20Worker\x20失败:\x20'+(v instanceof Error?v[tm(0x193)]:String(v)))));}});}catch(i){return P[tb(0x644)](tb(0x9ef),{'error':i}),!0x1;}}[a0bL(0x935)](b){const tv=a0bL;P[tv(0xbc)]('开始在主线程加载主要模型');let c=0x0,d=0x0;const f=()=>{},g=[];return Object[tv(0x875)](this[tv(0x463)][tv(0xaf1)]['gltf'])['forEach'](([h,i])=>{const tw=tv;i[tw(0xb8)](j=>{const tx=tw;g[tx(0x4f5)](new Promise(async k=>{const ty=tx;P[ty(0x25c)](ty(0x158),{'filename':j[ty(0x7a4)]});let m=await this['zipDownloader']['getValue'](j[ty(0x7a4)]);if(!m){const p='The\x20'+j['filename']+ty(0x323);this['errors'][ty(0x4f5)]({'msg':p}),P[ty(0x5fb)]('加载错误',{'error':p}),k();return;}try{this[ty(0xa3e)][ty(0x54a)](m[ty(0x186)],'',u=>{const tz=ty,z=u[tz(0x440)]['children'][0x0];if(z){if(h==='third_group'&&(j[tz(0x8cb)]==null||j[tz(0x8cb)][tz(0x3ea)]===0x0)){P['info'](tz(0x1bd),{'filename':j['filename']});const F=oc(z);P[tz(0x25c)](tz(0xa35),{'originalCenter':{'x':F['x'],'y':F['y'],'z':F['z']}});const H=this['fileSize']/(0x400*0x400);if(P['debug']('模型文件大小检查',{'filename':j['filename'],'fileSize':this[tz(0x89e)],'fileSizeInMB':H['toFixed'](0x2)}),H<0xf)P['info']('文件大小\x20<\x2015MB,直接添加原始模型',{'filename':j[tz(0x7a4)],'fileSizeInMB':H[tz(0xab3)](0x2)}),z[tz(0x1b7)][tz(0x9fd)](F['x'],F['y'],F['z']),z['name']=j['filename'],this[tz(0x838)][tz(0x577)](z);else{P['info'](tz(0x648),{'filename':j[tz(0x7a4)],'fileSizeInMB':H[tz(0xab3)](0x2)});const L=nc(z),N=new a0h()['setFromObject'](z),R=new a0c();N['getSize'](R);const S=Math[tz(0x36b)](R['x'],R['y'],R['z']),T=this['calculateLODFarDistanceMultiplier'](),U=this[tz(0x6ef)]?0.7:0x1,a0=S*1.5*U,a1=S*T*U,a2=new a0av();a2['addLevel'](z,a0),a2[tz(0xa08)](L,a1),a2[tz(0x6f)]=z?.[tz(0x56d)][0x0]?.['userData'],a2[tz(0x1b7)][tz(0x9fd)](F['x'],F['y'],F['z']),a2[tz(0x74)]=j[tz(0x7a4)],this[tz(0x838)][tz(0x577)](a2);}}else j[tz(0x1b7)]?(P['info']('使用位置矩阵处理模型',{'filename':j['filename']}),this['handleMatrixByPosition'](z,j)):j[tz(0x8cb)]?(P['info']('使用实例化网格处理模型',{'filename':j[tz(0x7a4)],'instanceCount':j['instances']['length']}),this['handleMatrixByInstance'](z,j)):(P['info'](tz(0x9b0),{'filename':j[tz(0x7a4)]}),z[tz(0x74)]=j['filename'],this['content']['add'](z));}else P[tz(0x5fb)](tz(0x351),{'filename':j[tz(0x7a4)]});d++,f(),k();},u=>{const tB=ty;console[tB(0x644)](u),P[tB(0x644)](tB(0xa9a),{'key':h,'filename':j[tB(0x7a4)],'error':u}),this['errors'][tB(0x4f5)]({'msg':tB(0xabd)+j[tB(0x7a4)]+tB(0x269)+(u instanceof Error?u[tB(0x193)]:String(u))}),d++,f(),k(u);});}catch(u){P['warn'](ty(0x44d),{'key':h,'filename':j['filename'],'error':u}),d++,k(u);}}));});}),P['info'](tv(0x7ef),{'totalModels':c}),Promise['all'](g);}[a0bL(0x911)](b,c){const tC=a0bL;P['info']('开始处理实例化矩阵',{'instanceCount':c[tC(0x8cb)][tC(0x3ea)]});const d=Za(c['instances']);P['debug'](tC(0x814),{'groupCount':d[tC(0x3ea)]}),d['forEach']((f,g)=>{const tD=tC;P[tD(0x25c)](tD(0x750)+(g+0x1)+'/'+d['length'],{'instanceCount':f[tD(0x3ea)],'hasNegativeScale':!!f[0x0][tD(0xa3)]});const {hasNegativeScale:h,scaleSign:i,layers:j}=f[0x0];b[tD(0x268)](k=>{const tE=tD;if(!k[tE(0x356)])return;P[tE(0x25c)]('处理网格实例化',{'meshName':k['name']}),h&&(P[tE(0x25c)](tE(0x3c6),{'scaleSign':i}),k=k[tE(0x471)](),$a(k,[i['x'],i['y'],i['z']])),P['info'](tE(0x6d6)+f['length']+tE(0x7ad),{'meshName':k['name']});const m=new a0aw(k[tE(0x813)],k[tE(0x690)],f['length']);m['userData']={'instanceLayers':new Array(f[tE(0x3ea)]),'originalTransforms':new Array(f['length'])},m[tE(0x74)]=k['name'];const p=new a0m();f['forEach']((v,w)=>{const tF=tE,{scale:x,position:y,quaternion:z}=jr(v['transform']),B=new a0c(Math['abs'](x['x']),Math[tF(0x855)](x['y']),Math['abs'](x['z']));m['userData'][tF(0x8b0)][w]={'position':new a0c()[tF(0x3fe)](y),'quaternion':new a0au()[tF(0x3fe)](z),'scale':new a0c()[tF(0x3fe)](B)};const F=new a0m()[tF(0x1c4)](y,z,B);m[tF(0x8ff)](w,F),m['userData']['instanceLayers'][w]=v[tF(0x643)];}),m['instanceMatrix'][tE(0x12d)]=!0x0,m['setLayerVisibility']=function(v,w){const tG=tE;for(let x=0x0;x<this['count'];x++)if((this[tG(0x6f)][tG(0xa81)][x]||[])[tG(0xa1c)](v)){const y=this[tG(0x6f)][tG(0x8b0)][x],z=w?y[tG(0x61e)]:new a0c(0x0,0x0,0x0);p[tG(0x1c4)](y['position'],y['quaternion'],z),this[tG(0x8ff)](x,p);}this['instanceMatrix'][tG(0x12d)]=!0x0;},m['showAllInstances']=function(){const tH=tE;for(let v=0x0;v<this['count'];v++){const w=this['userData'][tH(0x8b0)][v];if(!w){console['warn'](tH(0x70c)+v+'\x20缺少原始变换数据');continue;}p[tH(0x1c4)](w['position'],w['quaternion'],w[tH(0x61e)]),this['setMatrixAt'](v,p);}this['instanceMatrix']['needsUpdate']=!0x0;},P[tE(0x25c)]('添加实例化网格到场景',{'meshName':k['name']}),this['content'][tE(0x577)](m);});});}['handleMatrixByPosition'](b,c){const tI=a0bL;P['info'](tI(0xb13),{'positionCount':c['position'][tI(0x3ea)]});const d=c['position'][0x0];P[tI(0x25c)](tI(0xa65),{'position':d});const f=this['generateLOD'](b,new a0c(d[0x0],d[0x2],-d[0x1]));P[tI(0x25c)]('添加主模型到场景'),this[tI(0x838)][tI(0x577)](f),P[tI(0x25c)]('处理'+(c[tI(0x1b7)]['length']-0x1)+'个额外位置的模型实例'),c[tI(0x1b7)][tI(0xb8)]((g,h)=>{const tJ=tI;if(h>0x0){if(c[tJ(0x61e)]){const j=c[tJ(0x61e)][h];b['scale'][tJ(0x9fd)](j[0x0],j[0x2],j[0x1]),P[tJ(0x25c)](tJ(0xb0d)+h,{'scale':j});}P[tJ(0x25c)](tJ(0x9d2)+h+tJ(0xa1f),{'position':g});const i=this['generateLOD'](b,new a0c(g[0x0],g[0x2],-g[0x1]));this['content'][tJ(0x577)](i),P[tJ(0x25c)]('添加实例'+h+'到场景');}});}[a0bL(0x23c)](b,f=null){const tK=a0bL;P['debug']('开始生成LOD对象',{'originalName':b[tK(0x74)]}),b=b['clone']();const {userData:g,name:i}=b,j=new a0h()[tK(0x256)](b),k=j['getSize'](new a0c()),m=Math[tK(0x36b)](k['x'],k['y'],k['z']);P['debug'](tK(0x61d),{'width':k['x'],'height':k['y'],'depth':k['z'],'maxSize':m});let p=new a0c();f?p=f:g['tr_point']&&(p=new a0c(g['tr_point'][0x0],g[tK(0x6f7)][0x2],-g['tr_point'][0x1]));const v=new a0av();v['name']='ROOT_LOD_'+i,P['debug']('创建LOD对象',{'lodName':v['name'],'position':{'x':p['x'],'y':p['y'],'z':p['z']}}),v['position']['set'](p['x'],p['y'],p['z']);const w=j['getCenter'](new a0c());P[tK(0x25c)]('创建边框模型',{'isProxy':b['name']==tK(0x390)});let x;b['name']=='PROXY'?(x=b,x[tK(0x74)]=''):x=Kr([k['x'],k['y'],k['z']],Cd),x[tK(0x1b7)]['set'](w['x'],w['y'],w['z']);const y=this[tK(0x6ef)]?this['times']['LODFactor']*0.5:this[tK(0x3ba)][tK(0xade)];return P['info']('添加LOD级别',{'highDetailDistance':m,'lowDetailDistance':m*y*0x3,'isMobile':this['isMobile']}),v['addLevel'](b,m),v['addLevel'](x,m*y*0x3),v;}[a0bL(0x723)](b){const tL=a0bL;if(!b)return;const c={'materialsShared':0x0,'geometriesOptimized':0x0};b[tL(0x268)](d=>{const tM=tL;d[tM(0x356)]&&(d[tM(0x690)]&&(Array['isArray'](d['material'])?d[tM(0x690)]:[d[tM(0x690)]])[tM(0xb8)](f=>{const tN=tM,g=cc(f);if(g){const h=this['materialCache'][tN(0x7d7)](g);if(h&&h!==f){if(Array['isArray'](d['material'])){const i=d['material'][tN(0x3ae)](f);i>=0x0&&(d['material'][i]=h);}else d[tN(0x690)]=h;c['materialsShared']++;}else h||this['materialCache'][tN(0x9fd)](g,f);}}),d[tM(0x813)]&&(ac(d['geometry']),c['geometriesOptimized']++));}),P['info']('模型内存优化完成',c);}['disposeUnusedResources'](b){const tO=a0bL,c=b||this[tO(0x838)];if(!c)return;let d=0x0;c['traverse'](f=>{const tP=tO;f[tP(0x356)]&&(!f[tP(0x12e)]&&f[tP(0x813)],f['material']&&(Array['isArray'](f['material'])?f['material']:[f[tP(0x690)]])['forEach'](g=>{const tQ=tP;g&&!g[tQ(0x6f)]?.['keepAlive']&&['map',tQ(0x1ef),'roughnessMap',tQ(0x24a),tQ(0x78c),'emissiveMap',tQ(0x145)][tQ(0xb8)](h=>{g[h]&&g[h]['isTexture'];});}));}),P[tO(0x25c)]('资源清理完成',{'disposedCount':d});}['getLoadInfo'](){const tR=a0bL;return{...this[tR(0x3ba)],'modelVersion':this['exportVersion']};}[a0bL(0x3bf)](){const tS=a0bL,b=this['modelInfo']?.['text_annotations'];if(!b||b[tS(0x3ea)]===0x0){P['debug']('未找到文本标注数据');return;}P[tS(0xbc)](tS(0x4b6),{'count':b['length']});try{this[tS(0x2ee)][tS(0xa8b)][tS(0x92c)](b),P['info']('文本标注加载完成',{'count':b[tS(0x3ea)]});}catch(c){P['error']('加载文本标注失败',{'error':c});}}['loadDimensionAnnotations'](){const tT=a0bL,b=this[tT(0x463)]?.['dimension_annotations'];if(!b||b['length']===0x0){P['debug']('未找到尺寸标注数据');return;}P[tT(0xbc)]('开始加载尺寸标注',{'count':b[tT(0x3ea)]});try{this['viewer'][tT(0x203)][tT(0x820)](b),P['info']('尺寸标注加载完成',{'count':b[tT(0x3ea)]});}catch(c){P[tT(0x644)](tT(0x486),{'error':c});}}async[a0bL(0x822)](b){const tU=a0bL;P[tU(0xbc)](tU(0x70f)),b[tU(0xef)]=!0x0,P[tU(0x25c)](tU(0x212),{'filename':b[tU(0x6f)][tU(0x7a4)]});const c=await this[tU(0x6ee)][tU(0x647)](b[tU(0x6f)]['filename']);if(!c){const d='详细模型文件未找到:\x20'+b['userData'][tU(0x7a4)];return P['error'](d),Promise[tU(0x737)](new Error(d));}return new Promise((f,g)=>{const tV=tU;this['GLTFLoader'][tV(0x54a)](c['buffer'],null,({scene:h})=>{const tW=tV,i=h[tW(0x56d)][0x0];if(i){P[tW(0x25c)]('为详细模型生成LOD');const j=this['generateLOD'](i,b['position']);j[tW(0x6f)]['filename']=b['userData'][tW(0x7a4)],j[tW(0x6f)]['bounds']=b['userData'][tW(0xe2)],P['debug']('添加详细模型到场景,移除原代理'),this[tW(0x838)]['add'](j),b[tW(0x476)]['remove'](b),f();}else{const k='详细模型加载错误:\x20'+b[tW(0x6f)]['filename'];this['errors']['push']({'msg':k}),P['warn'](k),g(new Error(k));}},h=>{const tX=tV;this['errors']['push']({'msg':h instanceof Error?h[tX(0x193)]:String(h)}),P['warn'](tX(0x95f),{'error':h}),g(h);});});}}const sr={'debug':{'stats':{'enabled':!0x1},'lightHelpers':{'enabled':!0x1,'size':0x1}},'load':{'timeout':0x7530,'modelScale':0x1,'autoScale':!0x0,'autoCenter':!0x0,'cache':{'enabled':!0x0},'proxy':{'enabled':!0x0},'edge':{'url':''}},'ktx2':{'url':a0bL(0x779)},'draco':{'url':a0bL(0x865)},'style':{'type':0x0,'background':{'color':'#DBDBDE'},'sky':{'enabled':!0x1,'turbidity':0x0,'rayleigh':0.28,'mieCoefficient':0.005,'mieDirectionalG':0.7,'elevation':0x2,'azimuth':0xb4,'inclination':0.5},'edge':{'enabled':!0x0},'fog':{'enabled':!0x1,'color':a0bL(0x55f),'density':0.0015},'material':{'opacity':0x1},'axes':{'display':!0x1}},'display':{'fps':{'display':!0x1}},'control':{'autoRotate':!0x1,'orbitPoint':a0bL(0x4fd),'maxDistance':'default','minDistance':'default','rotateSpeed':0x3,'clickSelected':!0x0,'shortcuts':{'enable':!0x0},'joystick':{'enabled':!0x1},'speed':0.01},'camera':{'type':'perspective','fov':0x2d,'near':0.1,'far':0.1,'orbitBehavior':'auto','viewportAdaptation':{'enabled':!0x0,'minFOV':0x1e,'maxFOV':0x3c}},'light':{'ambientLight':{'display':!0x0,'intensity':0.3,'color':0xffffff},'hemiLight':{'display':!0x0,'intensity':0x1,'color':0xffffff},'directionalLight':{'display':!0x0,'intensity':2.88,'color':0xffffff}},'measure':{'unit':'m'},'gui':{'enabled':!0x1,'excludes':[],'ttile':'设置'},'render':{'enableTransition':!0x0,'LODFactor':0x1e,'webGLRenderer':{'logarithmicDepthBuffer':!0x1,'alpha':!0x1,'antialias':!0x0,'powerPreference':a0bL(0x8b)},'envMap':{'enabled':!0x0,'path':'envmap/','files':{'px':'px.png','nx':a0bL(0x9af),'py':a0bL(0x846),'ny':'ny.png','pz':'pz.png','nz':a0bL(0xa78)}},'postProcessing':{'ssao':{'enabled':!0x1,'radius':0.5,'intensity':0x1},'bloom':{'enabled':!0x1,'strength':0.5,'radius':0.4},'fxaa':{'enabled':!0x0}}},'other':{'autoSceneIndex':0x0}};class Nu{constructor(b,c,d){const tY=a0bL;this['el']=b,this['message']=c,this[tY(0x8a1)]=d,this[tY(0x6aa)]();}['createProgressBar'](){const tZ=a0bL;this['progressContainer']=document[tZ(0x86)](tZ(0x521)),this['progressContainer'][tZ(0x9a8)]=tZ(0x365),this[tZ(0x54c)]=document[tZ(0x86)](tZ(0x521)),this[tZ(0x54c)][tZ(0x9a8)]='progress-message',this[tZ(0x54c)]['innerText']=this[tZ(0x193)],this['bar']=document[tZ(0x86)]('div'),this[tZ(0x514)]['className']=tZ(0x961),this[tZ(0x54c)]['innerText']=this[tZ(0x193)],this[tZ(0x81d)](this['percentage']),this[tZ(0xb1a)]['appendChild'](this['messageElement']),this[tZ(0xb1a)]['appendChild'](this[tZ(0x514)]),this['el'][tZ(0x2cf)](this[tZ(0xb1a)]);}['updateProgress'](b){const u0=a0bL;this[u0(0x8a1)]=b,this[u0(0x514)]['style'][u0(0xb1f)]=this[u0(0x8a1)]+'%',this[u0(0x54c)][u0(0x48f)]=this['message'],this[u0(0x514)][u0(0xa1a)]['transition']='width\x200.5s';}['updateMessage'](b){const u1=a0bL;this['message']=b,this['messageElement'][u1(0x48f)]=this['message'];}[a0bL(0x753)](){const u2=a0bL;this[u2(0xb1a)]&&this['el'][u2(0x197)](this['progressContainer']);}}const Ye={'lastWheelTime':0x0,'isNewScroll':!0x0,'timeoutId':null,'THRESHOLD':0x1f4};class Uu{constructor(b){const u3=a0bL;C(this,'element'),C(this,u3(0x379)),C(this,u3(0x8c0)),C(this,'lastClickTime'),C(this,u3(0x88)),C(this,'dragStartPosition'),(this[u3(0x1de)]=b,this[u3(0x379)]={},this['isDragging']=!0x1,this[u3(0x52b)]=null,this[u3(0x88)]=0x5,this['dragStartPosition']=null,this[u3(0x685)]());}[a0bL(0x685)](){const u4=a0bL;this['element'][u4(0x696)]('click',this[u4(0x8b1)]['bind'](this)),this[u4(0x1de)][u4(0x696)](u4(0x94a),this['handleMouseDown'][u4(0x450)](this)),this[u4(0x1de)]['addEventListener'](u4(0x94a),this[u4(0x687)][u4(0x450)](this)),document[u4(0x696)]('mousemove',a0br(this[u4(0x101)]['bind'](this),0x96)),document['addEventListener'](u4(0xdb),this['handleMouseUp'][u4(0x450)](this)),this['element']['addEventListener']('touchmove',this['handleTouchMove']['bind'](this),{'passive':!0x0}),this['element']['addEventListener']('wheel',this[u4(0xa28)]['bind'](this),{'passive':!0x0});}[a0bL(0x477)](b){this['handleMouseMove'](b);}['handleClick'](b){const u5=a0bL,c=Date[u5(0x6b5)]();this[u5(0x52b)]&&c-this[u5(0x52b)]<0x12c?(this[u5(0x361)]('doubleClick',b),this['lastClickTime']=null):this['lastClickTime']=c;}['handleLeftMouseDown'](b){const u6=a0bL;b[u6(0x954)]===0x0&&this['trigger']('leftMouseDown',b);}[a0bL(0x4fb)](b){const u7=a0bL;this['isDragging']=!0x0,this['dragStartPosition']={'x':b[u7(0x4f8)],'y':b['clientY']},this[u7(0x361)]('dragStart',b);}['handleMouseMove'](b){const u8=a0bL;if(this[u8(0x361)](u8(0x986),{'event':b}),!this['isDragging'])return;const c={'x':b['clientX']-this[u8(0x5ed)]['x'],'y':b[u8(0x5ab)]-this[u8(0x5ed)]['y']};(Math[u8(0x855)](c['x'])>this['dragThreshold']||Math['abs'](c['y'])>this['dragThreshold'])&&(this[u8(0x361)](u8(0x761),{'event':b,'delta':c}),this[u8(0x5ed)]={'x':b['clientX'],'y':b['clientY']});}[a0bL(0x7ce)](b){const u9=a0bL;this['isDragging']&&(this[u9(0x8c0)]=!0x1,this[u9(0x361)](u9(0x98a))),this['trigger'](u9(0x972),b||new MouseEvent('mouseup'));}[a0bL(0xa28)](b){const ub=a0bL,c=b[ub(0x711)],d=Date[ub(0x6b5)]();d-Ye[ub(0x343)]>Ye['THRESHOLD']&&(Ye[ub(0x7ca)]=!0x0,Ye['timeoutId']&&clearTimeout(Ye[ub(0x2b7)]),Ye['timeoutId']=setTimeout(()=>{Ye['isNewScroll']=!0x0;},Ye[ub(0x839)])),Ye['isNewScroll']&&(this['trigger']('scrollStart',{'event':b,'delta':c}),Ye[ub(0x7ca)]=!0x1),Ye['lastWheelTime']=d,this[ub(0x361)](ub(0x4f7),{'event':b,'delta':c});}['on'](b,c){const uf=a0bL;this[uf(0x379)][b]||(this['handlers'][b]=[]),this['handlers'][b]['push'](c);}[a0bL(0x361)](b,c){const d=this['handlers'][b];d&&d['forEach'](f=>f(c));}}class ea{constructor(b,c,d,f,g){const uj=a0bL;C(this,'composer'),C(this,'passes',new Map()),C(this,uj(0x1f8)),(this[uj(0x9b)]=b,this[uj(0x440)]=c,this['camera']=d,this['composer']=new kh(b),this['renderPass']=new Fh(c,d),this[uj(0xa14)]['addPass'](this['renderPass']),this['resize'](f,g));}[a0bL(0xa72)](b,c,d=!0x0){const uk=a0bL;c[uk(0x2d3)]=d,this['passes']['set'](b,{'pass':c,'enabled':d,'name':b}),this['composer']['addPass'](c);}[a0bL(0x8c4)](b={}){const um=a0bL,{kernelRadius:c=0.5,minDistance:d=0.001,maxDistance:f=0.1}=b,g=new ot(this[um(0x440)],this[um(0x710)],this['renderer'][um(0x9da)][um(0x2c5)],this[um(0x9b)]['domElement']['clientHeight']);g['kernelRadius']=c,g['minDistance']=d,g['maxDistance']=f,this[um(0xa72)](um(0x529),g);}['createBloom'](b={}){const un=a0bL,{strength:c=1.5,radius:d=0.4,threshold:f=0.85}=b,g=new jt(new a0l(this[un(0x9b)][un(0x9da)][un(0x2c5)],this['renderer']['domElement'][un(0x771)]),c,d,f);this[un(0xa72)](un(0x74a),g);}['toggleEffect'](b,c,d){const up=a0bL;let f=this[up(0x9ce)][up(0x7d7)](b);if(!f)switch(b){case up(0x529):this[up(0x8c4)](d),f=this['passes'][up(0x7d7)](b);break;case'bloom':this[up(0x2a2)](d),f=this['passes']['get'](b);break;default:console[up(0x5fb)]('Effect\x20\x22'+b+'\x22\x20does\x20not\x20exist\x20and\x20cannot\x20be\x20auto-created.');return;}f&&(f['enabled']=c!==void 0x0?c:!f['enabled'],f[up(0x9ac)]['enabled']=f['enabled']);}['getSSAOPass'](){const uq=a0bL,b=this['passes'][uq(0x7d7)](uq(0x529));return b?.[uq(0x9ac)]instanceof ot?b['pass']:null;}['render'](){const ut=a0bL;this['composer'][ut(0x8d0)]();}['resize'](b,c){this['composer']['setSize'](b,c),this['passes']['forEach'](({pass:d})=>{const uv=a0b;(d instanceof ot||d instanceof jt)&&d[uv(0x23b)](b,c);});}get['activeEffects'](){const uw=a0bL;return Array[uw(0x9c4)](this[uw(0x9ce)]['values']())['filter'](({enabled:b})=>b)[uw(0x428)](({name:b})=>b);}['dispose'](){const ux=a0bL;this[ux(0x9ce)]['forEach'](({pass:b})=>{const uy=ux;b['dispose']?.(),this[uy(0xa14)]['removePass'](b);}),this[ux(0xa14)][ux(0x1a5)](),this['passes'][ux(0x752)]();}}const js=(b,c)=>{const uz=a0bL,d=c['x']-b['x'],f=c['y']-b['y'];return Math[uz(0x691)](d*d+f*f);},Gu=(b,c)=>{const d=c['x']-b['x'],f=c['y']-b['y'];return Hu(Math['atan2'](f,d));},zu=(b,c,d)=>{const uB=a0bL,f={'x':0x0,'y':0x0};return d=Rr(d),f['x']=b['x']-c*Math[uB(0x1ad)](d),f['y']=b['y']-c*Math[uB(0xa6b)](d),f;},Rr=b=>b*(Math['PI']/0xb4),Hu=b=>b*(0xb4/Math['PI']),qu=b=>isNaN(b[a0bL(0x657)])?b[a0bL(0x662)]!==0x0:b['buttons']!==0x0,nr=new Map(),ta=b=>{const uC=a0bL;nr[uC(0x258)](b)&&clearTimeout(nr['get'](b)),nr[uC(0x9fd)](b,setTimeout(b,0x64));},Zs=(b,c,d)=>{const uD=a0bL,f=c['split'](/[ ,]+/g);let g;for(let h=0x0;h<f['length'];h+=0x1)g=f[h],b[uD(0x696)]?b['addEventListener'](g,d,!0x1):b[uD(0x705)]&&b['attachEvent'](g,d);},ia=(b,c,d)=>{const uE=a0bL,f=c['split'](/[ ,]+/g);let g;for(let h=0x0;h<f['length'];h+=0x1)g=f[h],b[uE(0xcf)]?b[uE(0xcf)](g,d):b[uE(0x77c)]&&b[uE(0x77c)](g,d);},_c=b=>(b[a0bL(0x58c)](),b[a0bL(0x736)][a0bL(0x694)](/^touch/)?b['changedTouches']:b),sa=()=>{const uF=a0bL,b=window['pageXOffset']!==void 0x0?window[uF(0x806)]:(document['documentElement']||document[uF(0x279)]['parentNode']||document['body'])[uF(0x1d4)],c=window['pageYOffset']!==void 0x0?window[uF(0xa87)]:(document[uF(0x9d8)]||document[uF(0x279)]['parentNode']||document['body'])['scrollTop'];return{'x':b,'y':c};},na=(b,c)=>{const uG=a0bL;c[uG(0x29e)]||c[uG(0x9ca)]||c[uG(0x342)]||c[uG(0x5df)]?(b[uG(0xa1a)][uG(0x29e)]=c['top'],b[uG(0xa1a)]['right']=c[uG(0x9ca)],b['style']['bottom']=c[uG(0x342)],b['style'][uG(0x5df)]=c['left']):(b['style'][uG(0x5df)]=c['x']+'px',b['style'][uG(0x29e)]=c['y']+'px');},Zr=(b,d,f)=>{const uH=a0bL,g=Tc(b);for(let h in g)if(g['hasOwnProperty'](h)){if(typeof d==uH(0x45f))g[h]=d+'\x20'+f;else{let i='';for(let j=0x0,k=d[uH(0x3ea)];j<k;j+=0x1)i+=d[j]+'\x20'+f+',\x20';g[h]=i['slice'](0x0,-0x2);}}return g;},Vu=(b,c)=>{const d=Tc(b);for(let f in d)d['hasOwnProperty'](f)&&(d[f]=c);return d;},Tc=b=>{const uI=a0bL,c={};return c[b]='',[uI(0x6fe),'Moz','o']['forEach'](function(d){const uJ=uI;c[d+b[uJ(0x697)](0x0)['toUpperCase']()+b[uJ(0x504)](0x1)]='';}),c;},rr=(b,c)=>{for(let d in c)c['hasOwnProperty'](d)&&(b[d]=c[d]);return b;},ju=(b,c)=>{const uK=a0bL,d={};for(let f in b)b[uK(0x603)](f)&&c['hasOwnProperty'](f)?d[f]=c[f]:b[uK(0x603)](f)&&(d[f]=b[f]);return d;},Pr=(b,c)=>{const uL=a0bL;if(b[uL(0x3ea)]){for(let d=0x0,f=b['length'];d<f;d+=0x1)c(b[d]);}else c(b);},Yu=(b,c,d)=>({'x':Math['min'](Math['max'](b['x'],c['x']-d),c['x']+d),'y':Math[a0bL(0x5d2)](Math[a0bL(0x36b)](b['y'],c['y']-d),c['y']+d)});var Ku=a0bL(0x3be)in window,Wu=!!window[a0bL(0x244)],Ju=!!window['MSPointerEvent'],Zi={'touch':{'start':a0bL(0x34d),'move':a0bL(0x958),'end':a0bL(0x1b3)},'mouse':{'start':'mousedown','move':'mousemove','end':'mouseup'},'pointer':{'start':a0bL(0x2c0),'move':a0bL(0xacd),'end':'pointerup,\x20pointercancel'},'MSPointer':{'start':'MSPointerDown','move':a0bL(0x1f1),'end':'MSPointerUp'}},mi,hs={};Wu?mi=Zi['pointer']:Ju?mi=Zi['MSPointer']:Ku?(mi=Zi[a0bL(0x4bb)],hs=Zi['mouse']):mi=Zi['mouse'];function wt(){}wt['prototype']['on']=function(b,c){const uM=a0bL;var d=this,f=b['split'](/[ ,]+/g),g;d[uM(0x29b)]=d[uM(0x29b)]||{};for(var h=0x0;h<f[uM(0x3ea)];h+=0x1)g=f[h],d['_handlers_'][g]=d[uM(0x29b)][g]||[],d[uM(0x29b)][g][uM(0x4f5)](c);return d;},wt[a0bL(0x9e4)][a0bL(0x11d)]=function(b,c){const uN=a0bL;var d=this;return d['_handlers_']=d['_handlers_']||{},b===void 0x0?d[uN(0x29b)]={}:c===void 0x0?d['_handlers_'][b]=null:d[uN(0x29b)][b]&&d[uN(0x29b)][b]['indexOf'](c)>=0x0&&d[uN(0x29b)][b][uN(0x230)](d['_handlers_'][b][uN(0x3ae)](c),0x1),d;},wt[a0bL(0x9e4)]['trigger']=function(b,c){const uO=a0bL;var d=this,f=b['split'](/[ ,]+/g),g;d[uO(0x29b)]=d['_handlers_']||{};for(var h=0x0;h<f[uO(0x3ea)];h+=0x1)g=f[h],d[uO(0x29b)][g]&&d[uO(0x29b)][g][uO(0x3ea)]&&d[uO(0x29b)][g]['forEach'](function(i){const uP=uO;i[uP(0x6a7)](d,{'type':g,'target':d},c);});},wt['prototype']['config']=function(b){const uQ=a0bL;var c=this;c['options']=c[uQ(0x377)]||{},b&&(c['options']=ju(c[uQ(0x15b)],b));},wt['prototype']['bindEvt']=function(b,c){const uR=a0bL;var d=this;return d['_domHandlers_']=d[uR(0xa47)]||{},d[uR(0xa47)][c]=function(){const uS=uR;typeof d['on'+c]=='function'?d['on'+c]['apply'](d,arguments):console['warn'](uS(0x54d)+c+'\x22\x20handler.');},Zs(b,mi[c],d[uR(0xa47)][c]),hs[c]&&Zs(b,hs[c],d[uR(0xa47)][c]),d;},wt[a0bL(0x9e4)]['unbindEvt']=function(b,c){const uT=a0bL;var d=this;return d['_domHandlers_']=d['_domHandlers_']||{},ia(b,mi[c],d['_domHandlers_'][c]),hs[c]&&ia(b,hs[c],d[uT(0xa47)][c]),delete d['_domHandlers_'][c],this;};function ue(b,c){const uU=a0bL;return this['identifier']=c[uU(0x454)],this[uU(0x1b7)]=c[uU(0x1b7)],this['frontPosition']=c[uU(0x354)],this[uU(0xa0e)]=b,this[uU(0x377)]={'size':0x64,'threshold':0.1,'color':'white','fadeTime':0xfa,'dataOnly':!0x1,'restJoystick':!0x0,'restOpacity':0.5,'mode':'dynamic','zone':document[uU(0x279)],'lockX':!0x1,'lockY':!0x1,'shape':'circle'},this[uU(0x3a6)](c),this[uU(0x15b)]['mode']==='dynamic'&&(this['options']['restOpacity']=0x0),this['id']=ue['id'],ue['id']+=0x1,this[uU(0x991)]()['stylize'](),this[uU(0x3d0)]={'el':this['ui']['el'],'on':this['on'][uU(0x450)](this),'off':this[uU(0x11d)][uU(0x450)](this),'show':this['show'][uU(0x450)](this),'hide':this[uU(0x6dc)][uU(0x450)](this),'add':this['addToDom'][uU(0x450)](this),'remove':this[uU(0x8e3)][uU(0x450)](this),'destroy':this['destroy'][uU(0x450)](this),'setPosition':this[uU(0xa84)][uU(0x450)](this),'resetDirection':this[uU(0x7c3)]['bind'](this),'computeDirection':this['computeDirection']['bind'](this),'trigger':this['trigger'][uU(0x450)](this),'position':this['position'],'frontPosition':this['frontPosition'],'ui':this['ui'],'identifier':this[uU(0x454)],'id':this['id'],'options':this[uU(0x15b)]},this[uU(0x3d0)];}ue[a0bL(0x9e4)]=new wt(),ue[a0bL(0x470)]=ue,ue['id']=0x0,ue[a0bL(0x9e4)]['buildEl']=function(b){const uV=a0bL;return this['ui']={},this['options'][uV(0x32f)]?this:(this['ui']['el']=document['createElement'](uV(0x521)),this['ui'][uV(0x17a)]=document['createElement'](uV(0x521)),this['ui']['front']=document['createElement'](uV(0x521)),this['ui']['el']['className']='nipple\x20collection_'+this['collection']['id'],this['ui']['back']['className']=uV(0x17a),this['ui']['front'][uV(0x9a8)]='front',this['ui']['el'][uV(0xe4)]('id','nipple_'+this['collection']['id']+'_'+this['id']),this['ui']['el'][uV(0x2cf)](this['ui']['back']),this['ui']['el'][uV(0x2cf)](this['ui'][uV(0x2dc)]),this);},ue['prototype'][a0bL(0x70b)]=function(){const uW=a0bL;if(this[uW(0x15b)][uW(0x32f)])return this;var b=this['options'][uW(0x2a7)]+'ms',c=Vu('borderRadius',uW(0x863)),d=Zr('transition','opacity',b),f={};return f['el']={'position':'absolute','opacity':this['options'][uW(0x128)],'display':uW(0x27c),'zIndex':0x3e7},f[uW(0x17a)]={'position':'absolute','display':uW(0x27c),'width':this['options']['size']+'px','height':this[uW(0x15b)][uW(0x410)]+'px','left':0x0,'marginLeft':-this['options']['size']/0x2+'px','marginTop':-this[uW(0x15b)][uW(0x410)]/0x2+'px','background':this[uW(0x15b)][uW(0x66e)],'opacity':'.5'},f[uW(0x2dc)]={'width':this[uW(0x15b)][uW(0x410)]/0x2+'px','height':this[uW(0x15b)]['size']/0x2+'px','position':'absolute','display':uW(0x27c),'left':0x0,'marginLeft':-this['options'][uW(0x410)]/0x4+'px','marginTop':-this[uW(0x15b)][uW(0x410)]/0x4+'px','background':this['options'][uW(0x66e)],'opacity':'.5','transform':uW(0x601)},rr(f['el'],d),this[uW(0x15b)]['shape']===uW(0x76c)&&rr(f[uW(0x17a)],c),rr(f['front'],c),this['applyStyles'](f),this;},ue[a0bL(0x9e4)][a0bL(0x50e)]=function(b){const uX=a0bL;for(var c in this['ui'])if(this['ui'][uX(0x603)](c)){for(var d in b[c])this['ui'][c]['style'][d]=b[c][d];}return this;},ue[a0bL(0x9e4)]['addToDom']=function(){const uY=a0bL;return this[uY(0x15b)][uY(0x32f)]||document['body']['contains'](this['ui']['el'])?this:(this['options']['zone'][uY(0x2cf)](this['ui']['el']),this);},ue['prototype']['removeFromDom']=function(){const uZ=a0bL;return this[uZ(0x15b)][uZ(0x32f)]||!document[uZ(0x279)][uZ(0x96b)](this['ui']['el'])?this:(this['options']['zone'][uZ(0x197)](this['ui']['el']),this);},ue[a0bL(0x9e4)][a0bL(0x221)]=function(){const v0=a0bL;clearTimeout(this['removeTimeout']),clearTimeout(this[v0(0x21a)]),clearTimeout(this['restTimeout']),this['trigger']('destroyed',this[v0(0x3d0)]),this[v0(0x8e3)](),this['off']();},ue[a0bL(0x9e4)][a0bL(0x422)]=function(b){const v1=a0bL;var c=this;return c['options']['dataOnly']||(clearTimeout(c['removeTimeout']),clearTimeout(c[v1(0x21a)]),clearTimeout(c[v1(0x805)]),c[v1(0x52c)](),c['restCallback'](),setTimeout(function(){const v2=v1;c['ui']['el'][v2(0xa1a)]['opacity']=0x1;},0x0),c['showTimeout']=setTimeout(function(){const v3=v1;c[v3(0x361)](v3(0x406),c['instance']),typeof b==v3(0x652)&&b[v3(0x6a7)](this);},c[v1(0x15b)][v1(0x2a7)])),c;},ue['prototype'][a0bL(0x6dc)]=function(b){const v4=a0bL;var c=this;if(c['options']['dataOnly'])return c;if(c['ui']['el']['style']['opacity']=c['options'][v4(0x128)],clearTimeout(c['removeTimeout']),clearTimeout(c[v4(0x21a)]),clearTimeout(c['restTimeout']),c['removeTimeout']=setTimeout(function(){const v5=v4;var d=c['options']['mode']==='dynamic'?v5(0x4b9):v5(0x27c);c['ui']['el']['style'][v5(0x46e)]=d,typeof b=='function'&&b[v5(0x6a7)](c),c[v5(0x361)](v5(0x31e),c[v5(0x3d0)]);},c['options']['fadeTime']),c[v4(0x15b)]['restJoystick']){const d=c[v4(0x15b)][v4(0xb03)],f={};f['x']=d===!0x0||d['x']!==!0x1?0x0:c[v4(0x3d0)][v4(0x354)]['x'],f['y']=d===!0x0||d['y']!==!0x1?0x0:c[v4(0x3d0)][v4(0x354)]['y'],c[v4(0xa84)](b,f);}return c;},ue['prototype']['setPosition']=function(b,c){const v6=a0bL;var d=this;d[v6(0x354)]={'x':c['x'],'y':c['y']};var f=d['options'][v6(0x2a7)]+'ms',g={};g['front']=Zr(v6(0x1a3),['transform'],f);var h={'front':{}};h['front']={'transform':'translate('+d[v6(0x354)]['x']+v6(0x751)+d[v6(0x354)]['y']+v6(0x2e9)},d['applyStyles'](g),d[v6(0x50e)](h),d['restTimeout']=setTimeout(function(){const v7=v6;typeof b=='function'&&b['call'](d),d[v7(0x8cf)]();},d['options']['fadeTime']);},ue['prototype'][a0bL(0x8cf)]=function(){const v8=a0bL;var b=this,c={};c[v8(0x2dc)]=Zr('transition',v8(0x4b9),''),b[v8(0x50e)](c),b[v8(0x361)](v8(0xec),b[v8(0x3d0)]);},ue['prototype'][a0bL(0x7c3)]=function(){const v9=a0bL;this[v9(0x794)]={'x':!0x1,'y':!0x1,'angle':!0x1};},ue['prototype'][a0bL(0x202)]=function(b){const vb=a0bL;var d=b['angle']['radian'],f=Math['PI']/0x4,g=Math['PI']/0x2,i,j,k;if(d>f&&d<f*0x3&&!b[vb(0x9f8)]?i='up':d>-f&&d<=f&&!b[vb(0xa7)]?i=vb(0x5df):d>-f*0x3&&d<=-f&&!b['lockX']?i='down':b[vb(0xa7)]||(i=vb(0x9ca)),b[vb(0xa7)]||(d>-g&&d<g?j=vb(0x5df):j=vb(0x9ca)),b['lockX']||(d>0x0?k='up':k='down'),b[vb(0x9f0)]>this['options']['threshold']){var m={},p;for(p in this['direction'])this[vb(0x794)]['hasOwnProperty'](p)&&(m[p]=this['direction'][p]);var u={};this['direction']={'x':j,'y':k,'angle':i},b['direction']=this[vb(0x794)];for(p in m)m[p]===this[vb(0x794)][p]&&(u[p]=!0x0);if(u['x']&&u['y']&&u['angle'])return b;(!u['x']||!u['y'])&&this[vb(0x361)](vb(0x222),b),u['x']||this[vb(0x361)](vb(0x322)+j,b),u['y']||this['trigger'](vb(0x322)+k,b),u[vb(0x3c9)]||this['trigger']('dir\x20dir:'+i,b);}else this['resetDirection']();return b;};function ae(b,c){const vf=a0bL;var d=this;d[vf(0xe1)]=[],d['idles']=[],d[vf(0x7b7)]=[],d[vf(0x6a1)]=[],d['pressureIntervals']={},d['manager']=b,d['id']=ae['id'],ae['id']+=0x1,d['defaults']={'zone':document['body'],'multitouch':!0x1,'maxNumberOfNipples':0xa,'mode':vf(0x89c),'position':{'top':0x0,'left':0x0},'catchDistance':0xc8,'size':0x64,'threshold':0.1,'color':vf(0x429),'fadeTime':0xfa,'dataOnly':!0x1,'restJoystick':!0x0,'restOpacity':0.5,'lockX':!0x1,'lockY':!0x1,'shape':vf(0x76c),'dynamicPage':!0x1,'follow':!0x1},d[vf(0x3a6)](c),(d['options']['mode']==='static'||d['options']['mode']===vf(0x3de))&&(d['options'][vf(0x8f6)]=!0x1),d[vf(0x15b)]['multitouch']||(d['options']['maxNumberOfNipples']=0x1);const f=getComputedStyle(d[vf(0x15b)][vf(0x9f2)]['parentElement']);return f&&f['display']===vf(0x4db)&&(d[vf(0x957)]=!0x0),d['updateBox'](),d['prepareNipples'](),d['bindings'](),d['begin'](),d['nipples'];}ae['prototype']=new wt(),ae[a0bL(0x470)]=ae,ae['id']=0x0,ae['prototype'][a0bL(0x7f3)]=function(){const vj=a0bL;var b=this,c=b[vj(0xe1)];c['on']=b['on'][vj(0x450)](b),c['off']=b['off'][vj(0x450)](b),c[vj(0x15b)]=b[vj(0x15b)],c['destroy']=b[vj(0x221)]['bind'](b),c[vj(0x6a1)]=b[vj(0x6a1)],c['id']=b['id'],c['processOnMove']=b[vj(0x6e6)]['bind'](b),c[vj(0x8a4)]=b[vj(0x8a4)]['bind'](b),c['get']=function(d){const vk=vj;if(d===void 0x0)return c[0x0];for(var f=0x0,g=c[vk(0x3ea)];f<g;f+=0x1)if(c[f]['identifier']===d)return c[f];return!0x1;};},ae['prototype'][a0bL(0x6b0)]=function(){const vm=a0bL;var b=this;b[vm(0x35f)](b['options'][vm(0x9f2)],vm(0x511)),b[vm(0x15b)]['zone'][vm(0xa1a)]['touchAction']=vm(0x4b9),b['options']['zone'][vm(0xa1a)]['msTouchAction']='none';},ae[a0bL(0x9e4)][a0bL(0x594)]=function(){const vp=a0bL;var b=this,c=b['options'];if(c['mode']==='static'){var d=b[vp(0x57d)](c['position'],b['manager'][vp(0x998)]());d[vp(0x577)](),b['idles'][vp(0x4f5)](d);}},ae[a0bL(0x9e4)][a0bL(0x57d)]=function(b,d){const vq=a0bL;var f=this,g=f['manager']['scroll'],i={},j=f[vq(0x15b)],k={'x':f['parentIsFlex']?g['x']:g['x']+f[vq(0x73)]['left'],'y':f[vq(0x957)]?g['y']:g['y']+f['box'][vq(0x29e)]};if(b['x']&&b['y'])i={'x':b['x']-k['x'],'y':b['y']-k['y']};else{if(b[vq(0x29e)]||b[vq(0x9ca)]||b['bottom']||b[vq(0x5df)]){var m=document[vq(0x86)]('DIV');m[vq(0xa1a)][vq(0x46e)]=vq(0x31e),m['style']['top']=b['top'],m['style'][vq(0x9ca)]=b['right'],m['style']['bottom']=b[vq(0x342)],m[vq(0xa1a)][vq(0x5df)]=b[vq(0x5df)],m[vq(0xa1a)][vq(0x1b7)]='absolute',j['zone'][vq(0x2cf)](m);var p=m['getBoundingClientRect']();j['zone']['removeChild'](m),i=b,b={'x':p['left']+g['x'],'y':p[vq(0x29e)]+g['y']};}}var u=new ue(f,{'color':j[vq(0x66e)],'size':j['size'],'threshold':j['threshold'],'fadeTime':j[vq(0x2a7)],'dataOnly':j[vq(0x32f)],'restJoystick':j['restJoystick'],'restOpacity':j[vq(0x128)],'mode':j[vq(0x63f)],'identifier':d,'position':b,'zone':j['zone'],'frontPosition':{'x':0x0,'y':0x0},'shape':j[vq(0x299)]});return j[vq(0x32f)]||(na(u['ui']['el'],i),na(u['ui']['front'],u[vq(0x354)])),f['nipples'][vq(0x4f5)](u),f[vq(0x361)](vq(0x272)+u['identifier']+':added',u),f['manager']['trigger'](vq(0x272)+u[vq(0x454)]+':added',u),f[vq(0xb7)](u),u;},ae[a0bL(0x9e4)]['updateBox']=function(){const vv=a0bL;var b=this;b['box']=b[vv(0x15b)][vv(0x9f2)]['getBoundingClientRect']();},ae[a0bL(0x9e4)]['bindNipple']=function(b){const vx=a0bL;var c=this,d,f=function(g,h){const vw=a0b;d=g[vw(0x736)]+'\x20'+h['id']+':'+g['type'],c[vw(0x361)](d,h);};b['on'](vx(0x80e),c['onDestroyed'][vx(0x450)](c)),b['on']('shown\x20hidden\x20rested\x20dir\x20plain',f),b['on'](vx(0x4a9),f),b['on']('plain:up\x20plain:right\x20plain:down\x20plain:left',f);},ae[a0bL(0x9e4)]['pressureFn']=function(b,c,d){const vy=a0bL;var f=this,g=0x0;clearInterval(f['pressureIntervals'][d]),f[vy(0x3cc)][d]=setInterval(function(){const vz=vy;var h=b[vz(0x9f0)]||b['pressure']||b['webkitForce']||0x0;h!==g&&(c['trigger']('pressure',h),f[vz(0x361)](vz(0x7b2)+c['identifier']+':pressure',h),g=h);}['bind'](f),0x64);},ae['prototype']['onstart']=function(b){const vB=a0bL;var c=this,d=c[vB(0x15b)],f=b;b=_c(b),c['updateBox']();var g=function(h){const vC=vB;c[vC(0x7b7)]['length']<d['maxNumberOfNipples']?c['processOnStart'](h):f[vC(0x736)][vC(0x694)](/^touch/)&&(Object[vC(0x557)](c[vC(0x17e)]['ids'])['forEach'](function(i){const vD=vC;if(Object[vD(0xb09)](f['touches'])[vD(0x2ab)](function(k){const vE=vD;return k[vE(0x454)]===i;})<0x0){var j=[b[0x0]];j[vD(0x454)]=i,c[vD(0x8a4)](j);}}),c['actives']['length']<d[vC(0x8f2)]&&c['processOnStart'](h));};return Pr(b,g),c[vB(0x17e)]['bindDocument'](),!0x1;},ae[a0bL(0x9e4)][a0bL(0x770)]=function(b){const vF=a0bL;var d=this,f=d['options'],g,i=d[vF(0x17e)][vF(0x998)](b),j=b[vF(0x9f0)]||b[vF(0x662)]||b[vF(0x8ec)]||0x0,k={'x':b['pageX'],'y':b[vF(0x33f)]},m=d['getOrCreate'](i,k);m[vF(0x454)]!==i&&d[vF(0x17e)]['removeIdentifier'](m['identifier']),m[vF(0x454)]=i;var p=function(v){const vG=vF;v[vG(0x361)](vG(0x511),v),d['trigger']('start\x20'+v['id']+':start',v),v[vG(0x422)](),j>0x0&&d[vG(0x2a0)](b,v,v['identifier']),d['processOnMove'](b);};if((g=d['idles']['indexOf'](m))>=0x0&&d['idles']['splice'](g,0x1),d[vF(0x7b7)][vF(0x4f5)](m),d[vF(0x6a1)]['push'](m['identifier']),f[vF(0x63f)]!==vF(0x3de))p(m);else{var u=js(k,m['position']);if(u<=f['catchDistance'])p(m);else{m['destroy'](),d[vF(0x770)](b);return;}}return m;},ae[a0bL(0x9e4)][a0bL(0x461)]=function(b,c){const vH=a0bL;var d=this,f=d[vH(0x15b)],g;return/(semi|static)/['test'](f[vH(0x63f)])?(g=d['idles'][0x0],g?(d[vH(0xc0)]['splice'](0x0,0x1),g):f['mode']===vH(0x3de)?d[vH(0x57d)](c,b):(console['warn']('Coudln\x27t\x20find\x20the\x20needed\x20nipple.'),!0x1)):(g=d[vH(0x57d)](c,b),g);},ae['prototype'][a0bL(0x6e6)]=function(i){const vI=a0bL;var j=this,k=j[vI(0x15b)],v=j[vI(0x17e)][vI(0x998)](i),x=j['nipples'][vI(0x7d7)](v),z=j[vI(0x17e)]['scroll'];if(!qu(i)){this['processOnEnd'](i);return;}if(!x){console[vI(0x644)]('Found\x20zombie\x20joystick\x20with\x20ID\x20'+v),j[vI(0x17e)]['removeIdentifier'](v);return;}if(k['dynamicPage']){var B=x['el'][vI(0x38d)]();x[vI(0x1b7)]={'x':z['x']+B[vI(0x5df)],'y':z['y']+B[vI(0x29e)]};}x[vI(0x454)]=v;var F=x['options'][vI(0x410)]/0x2,H={'x':i['pageX'],'y':i['pageY']};k[vI(0x9f8)]&&(H['y']=x[vI(0x1b7)]['y']),k[vI(0xa7)]&&(H['x']=x[vI(0x1b7)]['x']);var L=js(H,x['position']),N=Gu(H,x['position']),R=Rr(N),S=L/F,T={'distance':L,'position':H},U,a0;if(x['options'][vI(0x299)]===vI(0x76c)?(U=Math['min'](L,F),a0=zu(x[vI(0x1b7)],U,N)):(a0=Yu(H,x['position'],F),U=js(a0,x['position'])),k[vI(0x8b7)]){if(L>F){let a4=H['x']-a0['x'],a5=H['y']-a0['y'];x['position']['x']+=a4,x[vI(0x1b7)]['y']+=a5,x['el']['style'][vI(0x29e)]=x[vI(0x1b7)]['y']-(j['box']['top']+z['y'])+'px',x['el']['style'][vI(0x5df)]=x[vI(0x1b7)]['x']-(j['box']['left']+z['x'])+'px',L=js(H,x[vI(0x1b7)]);}}else H=a0,L=U;var a1=H['x']-x['position']['x'],a2=H['y']-x[vI(0x1b7)]['y'];x[vI(0x354)]={'x':a1,'y':a2},k['dataOnly']||(x['ui'][vI(0x2dc)][vI(0xa1a)][vI(0xd1)]='translate('+a1+vI(0x751)+a2+'px)');var a3={'identifier':x['identifier'],'position':H,'force':S,'pressure':i[vI(0x9f0)]||i['pressure']||i['webkitForce']||0x0,'distance':L,'angle':{'radian':R,'degree':N},'vector':{'x':a1/F,'y':-a2/F},'raw':T,'instance':x,'lockX':k['lockX'],'lockY':k[vI(0xa7)]};a3=x['computeDirection'](a3),a3['angle']={'radian':Rr(0xb4-N),'degree':0xb4-N},x['trigger']('move',a3),j[vI(0x361)](vI(0x24e)+x['id']+vI(0x1c6),a3);},ae[a0bL(0x9e4)][a0bL(0x8a4)]=function(b){const vJ=a0bL;var c=this,d=c['options'],f=c[vJ(0x17e)][vJ(0x998)](b),g=c['nipples'][vJ(0x7d7)](f),h=c[vJ(0x17e)][vJ(0x6d2)](g[vJ(0x454)]);g&&(d['dataOnly']||g['hide'](function(){const vK=vJ;d['mode']==='dynamic'&&(g[vK(0x361)](vK(0x7bf),g),c['trigger']('removed\x20'+g['id']+':removed',g),c['manager'][vK(0x361)]('removed\x20'+g['id']+':removed',g),g[vK(0x221)]());}),clearInterval(c['pressureIntervals'][g['identifier']]),g['resetDirection'](),g['trigger']('end',g),c[vJ(0x361)]('end\x20'+g['id']+vJ(0xb15),g),c[vJ(0x6a1)]['indexOf'](g[vJ(0x454)])>=0x0&&c['ids']['splice'](c[vJ(0x6a1)][vJ(0x3ae)](g[vJ(0x454)]),0x1),c['actives'][vJ(0x3ae)](g)>=0x0&&c['actives']['splice'](c[vJ(0x7b7)][vJ(0x3ae)](g),0x1),/(semi|static)/[vJ(0x2b6)](d[vJ(0x63f)])?c[vJ(0xc0)]['push'](g):c['nipples'][vJ(0x3ae)](g)>=0x0&&c['nipples'][vJ(0x230)](c[vJ(0xe1)][vJ(0x3ae)](g),0x1),c['manager'][vJ(0x2d9)](),/(semi|static)/[vJ(0x2b6)](d['mode'])&&(c['manager']['ids'][h['id']]=h[vJ(0x454)]));},ae['prototype']['onDestroyed']=function(b,c){const vL=a0bL;var d=this;d[vL(0xe1)][vL(0x3ae)](c)>=0x0&&d['nipples'][vL(0x230)](d['nipples']['indexOf'](c),0x1),d['actives'][vL(0x3ae)](c)>=0x0&&d[vL(0x7b7)][vL(0x230)](d['actives'][vL(0x3ae)](c),0x1),d['idles'][vL(0x3ae)](c)>=0x0&&d[vL(0xc0)][vL(0x230)](d['idles'][vL(0x3ae)](c),0x1),d[vL(0x6a1)][vL(0x3ae)](c[vL(0x454)])>=0x0&&d['ids'][vL(0x230)](d['ids'][vL(0x3ae)](c['identifier']),0x1),d[vL(0x17e)][vL(0x6d2)](c[vL(0x454)]),d['manager'][vL(0x2d9)]();},ae[a0bL(0x9e4)]['destroy']=function(){const vM=a0bL;var b=this;b[vM(0x87f)](b[vM(0x15b)][vM(0x9f2)],vM(0x511)),b['nipples'][vM(0xb8)](function(d){const vN=vM;d[vN(0x221)]();});for(var c in b[vM(0x3cc)])b[vM(0x3cc)]['hasOwnProperty'](c)&&clearInterval(b['pressureIntervals'][c]);b['trigger']('destroyed',b['nipples']),b[vM(0x17e)]['unbindDocument'](),b['off']();};function pe(b){const vO=a0bL;var c=this;c['ids']={},c['index']=0x0,c[vO(0x1fc)]=[],c['scroll']=sa(),c[vO(0x3a6)](b),c['prepareCollections']();var d=function(){var g;c['collections']['forEach'](function(h){const vP=a0b;h[vP(0xb8)](function(i){const vQ=vP;g=i['el'][vQ(0x38d)](),i['position']={'x':c['scroll']['x']+g[vQ(0x5df)],'y':c['scroll']['y']+g['top']};});});};Zs(window,vO(0x49a),function(){ta(d);});var f=function(){const vR=vO;c[vR(0x4f7)]=sa();};return Zs(window,'scroll',function(){ta(f);}),c[vO(0x1fc)];}pe['prototype']=new wt(),pe['constructor']=pe,pe[a0bL(0x9e4)][a0bL(0x8d)]=function(){const vS=a0bL;var b=this;b[vS(0x1fc)][vS(0x88e)]=b['create']['bind'](b),b[vS(0x1fc)]['on']=b['on']['bind'](b),b['collections'][vS(0x11d)]=b[vS(0x11d)][vS(0x450)](b),b[vS(0x1fc)][vS(0x221)]=b['destroy'][vS(0x450)](b),b['collections']['get']=function(c){const vT=vS;var d;return b['collections'][vT(0x42c)](function(f){return d=f['get'](c),!d;}),d;};},pe['prototype'][a0bL(0x88e)]=function(b){const vU=a0bL;return this[vU(0x755)](b);},pe['prototype'][a0bL(0x755)]=function(b){const vV=a0bL;var c=this,d=new ae(c,b);return c[vV(0xa64)](d),c['collections'][vV(0x4f5)](d),d;},pe['prototype'][a0bL(0xa64)]=function(b){const vX=a0bL;var c=this,d,f=function(g,h){const vW=a0b;d=g['type']+'\x20'+h['id']+':'+g['type'],c[vW(0x361)](d,h);};b['on']('destroyed',c[vX(0x923)][vX(0x450)](c)),b['on'](vX(0x938),f),b['on']('dir:up\x20dir:right\x20dir:down\x20dir:left',f),b['on'](vX(0x4c3),f);},pe[a0bL(0x9e4)][a0bL(0x8ba)]=function(){const vY=a0bL;var b=this;b['binded']||(b[vY(0x35f)](document,vY(0xa03))[vY(0x35f)](document,'end'),b[vY(0x674)]=!0x0);},pe['prototype'][a0bL(0x2d9)]=function(b){const vZ=a0bL;var c=this;(!Object[vZ(0x557)](c[vZ(0x6a1)])[vZ(0x3ea)]||b===!0x0)&&(c['unbindEvt'](document,'move')['unbindEvt'](document,'end'),c['binded']=!0x1);},pe[a0bL(0x9e4)]['getIdentifier']=function(b){const w0=a0bL;var c;return b?(c=b['identifier']===void 0x0?b['pointerId']:b[w0(0x454)],c===void 0x0&&(c=this[w0(0x81b)]||0x0)):c=this[w0(0x9ee)],this[w0(0x6a1)][c]===void 0x0&&(this[w0(0x6a1)][c]=this[w0(0x9ee)],this['index']+=0x1),this['latest']=c,this[w0(0x6a1)][c];},pe[a0bL(0x9e4)][a0bL(0x6d2)]=function(b){const w1=a0bL;var c={};for(var d in this['ids'])if(this[w1(0x6a1)][d]===b){c['id']=d,c[w1(0x454)]=this[w1(0x6a1)][d],delete this[w1(0x6a1)][d];break;}return c;},pe[a0bL(0x9e4)]['onmove']=function(b){const w2=a0bL;var c=this;return c[w2(0x585)]('move',b),!0x1;},pe[a0bL(0x9e4)][a0bL(0x75e)]=function(b){const w3=a0bL;var c=this;return c[w3(0x585)](w3(0x854),b),!0x1;},pe[a0bL(0x9e4)]['oncancel']=function(b){const w4=a0bL;var c=this;return c[w4(0x585)](w4(0x854),b),!0x1;},pe['prototype'][a0bL(0x585)]=function(b,c){var d=this,f,g='processOn'+b['charAt'](0x0)['toUpperCase']()+b['slice'](0x1);c=_c(c);var h=function(j,k,m){const w5=a0b;m['ids']['indexOf'](k)>=0x0&&(m[g](j),j[w5(0x7e2)]=!0x0);},i=function(j){const w6=a0b;f=d['getIdentifier'](j),Pr(d[w6(0x1fc)],h['bind'](null,j,f)),j[w6(0x7e2)]||d['removeIdentifier'](f);};return Pr(c,i),!0x1;},pe[a0bL(0x9e4)][a0bL(0x221)]=function(){const w7=a0bL;var b=this;b['unbindDocument'](!0x0),b['ids']={},b[w7(0x9ee)]=0x0,b[w7(0x1fc)]['forEach'](function(c){const w8=w7;c[w8(0x221)]();}),b[w7(0x11d)]();},pe[a0bL(0x9e4)][a0bL(0x923)]=function(b,c){const w9=a0bL;var d=this;if(d[w9(0x1fc)]['indexOf'](c)<0x0)return!0x1;d['collections']['splice'](d[w9(0x1fc)]['indexOf'](c),0x1);};const ra=new pe(),Xu={'create':function(b){return ra['create'](b);},'factory':ra};class eo{constructor(b){const wb=a0bL;C(this,'manager',null),C(this,'isMoving',!0x1),C(this,wb(0x206),null),C(this,'currentSpeed',0x0),C(this,wb(0x3a6));if(!b[wb(0x9f2)])throw new Error('Missing\x20required\x20option:\x20zone');this['config']={'size':0x64,'color':'#DDD','speedMultiplier':0x5,'threshold':0.2,'position':{'left':'50%','top':'50%'},'onMove':()=>{},'onEnd':()=>{},'onUp':()=>{},'onDown':()=>{},...b},this['initialize']();}[a0bL(0x4c0)](){const wf=a0bL;this[wf(0x47a)](),this['createManager'](),this['bindEvents']();}['createUpDown'](){const wj=a0bL,b=document[wj(0x86)](wj(0x521));b['className']='up-down-container';const f=document['createElement'](wj(0x521));f[wj(0x9a8)]='btn\x20btn-top',f[wj(0xa38)]='<span\x20class=\x22svg\x22><svg\x20style=\x22width:\x2016px\x22\x20t=\x221745992124576\x22\x20class=\x22icon\x22\x20viewBox=\x220\x200\x201024\x201024\x22\x20version=\x221.1\x22\x20xmlns=\x22http://www.w3.org/2000/svg\x22\x20p-id=\x223565\x22\x20width=\x2222\x22\x20height=\x2222\x22><path\x20d=\x22M512\x2073.143l512\x20877.714H0z\x22\x20fill=\x22#dddddd\x22\x20p-id=\x223566\x22></path></svg></span>';const g=document[wj(0x86)](wj(0x521));g['className']=wj(0x308),g['innerHTML']='<span\x20class=\x22svg\x22><svg\x20style=\x22width:\x2016px\x22\x20\x20t=\x221745992141596\x22\x20class=\x22icon\x22\x20viewBox=\x220\x200\x201024\x201024\x22\x20version=\x221.1\x22\x20xmlns=\x22http://www.w3.org/2000/svg\x22\x20p-id=\x223871\x22\x20width=\x2222\x22\x20height=\x2222\x22><path\x20d=\x22M512\x20950.855L0\x2073.141h1024z\x22\x20fill=\x22#dddddd\x22\x20p-id=\x223872\x22></path></svg></span>';let i,j;const k=()=>this[wj(0x3a6)]['onUp'](),m=()=>this[wj(0x3a6)][wj(0x9c3)](),p=()=>{k();const z=()=>{k(),i=requestAnimationFrame(z);};i=requestAnimationFrame(z);},v=()=>{cancelAnimationFrame(i);},w=z=>{z['preventDefault'](),m();const B=()=>{m(),j=requestAnimationFrame(B);};j=requestAnimationFrame(B);},x=z=>{z['preventDefault'](),cancelAnimationFrame(j);},y={'passive':!0x1};f[wj(0x696)]('mousedown',p,y),f[wj(0x696)](wj(0x34d),p,y),f['addEventListener'](wj(0xdb),v,y),f['addEventListener'](wj(0xab),v,y),f['addEventListener']('touchend',v,y),f[wj(0x696)](wj(0x72c),v,y),g[wj(0x696)](wj(0x94a),w,y),g[wj(0x696)]('touchstart',w,y),g[wj(0x696)]('mouseup',x,y),g[wj(0x696)](wj(0xab),x,y),g[wj(0x696)]('touchend',x,y),g[wj(0x696)]('touchcancel',x,y),b['appendChild'](f),b[wj(0x2cf)](g),this['config'][wj(0x9f2)]['appendChild'](b);}[a0bL(0x2d5)](){const wk=a0bL,b=document['createElement']('div');b[wk(0x9a8)]='jsk-container',this[wk(0x3a6)][wk(0x9f2)]['appendChild'](b),this['manager']=Xu[wk(0x88e)]({'zone':b,'mode':wk(0x81f),'restOpacity':0.8,'size':this[wk(0x3a6)][wk(0x410)],'color':this['config'][wk(0x66e)],'position':this['config'][wk(0x1b7)],'threshold':this[wk(0x3a6)][wk(0x7ae)]});}[a0bL(0xa93)](){const wm=a0bL;this['manager']&&this['manager']['on']('move',(b,c)=>this[wm(0x1e0)](c))['on'](wm(0x854),()=>this[wm(0x5f0)]());}['handleMove'](b){const wp=a0bL;if(!b[wp(0x794)])return;const c=b['angle']['degree'];this['currentDirection']=eo['getEightDirection'](c),this['currentSpeed']=b[wp(0x9f0)]*this['config'][wp(0x968)],this['config'][wp(0xb5)](this['currentDirection'],this['currentSpeed']),this[wp(0xb22)]||(this['isMoving']=!0x0,this['startAnimationLoop']());}['handleEnd'](){const wq=a0bL;this['isMoving']=!0x1,this['currentSpeed']=0x0,this['config'][wq(0x9bb)]();}['startAnimationLoop'](){const b=()=>{const wv=a0b;this['isMoving']&&(this['config']['onMove'](this[wv(0x206)],this[wv(0x227)]),requestAnimationFrame(b));};requestAnimationFrame(b);}[a0bL(0x221)](){const ww=a0bL;this[ww(0x17e)]&&(this[ww(0x17e)][ww(0x221)](),this['manager']=null),this['isMoving']=!0x1;}static['getEightDirection'](b){const wx=a0bL;return b>=337.5||b<22.5?'right':b<67.5?wx(0x568):b<112.5?'up':b<157.5?'up_left':b<202.5?'left':b<247.5?wx(0x28a):b<292.5?wx(0xa92):wx(0x8d7);}['toggle'](){const wy=a0bL;this[wy(0x3a6)]['zone']['style'][wy(0x46e)]==='none'?this[wy(0x3a6)]['zone']['style'][wy(0x46e)]=wy(0x27c):this['config'][wy(0x9f2)]['style']['display']='none';}[a0bL(0x6dc)](){const wz=a0bL;this['config'][wz(0x9f2)][wz(0xa1a)]['display']=wz(0x4b9);}[a0bL(0x422)](){const wB=a0bL;this['config'][wB(0x9f2)]['style']['display']=wB(0x27c);}[a0bL(0x236)](){const wC=a0bL;this[wC(0x3a6)][wC(0x9f2)]['style'][wC(0x46e)];}}class $u{constructor(b=0x1){const wD=a0bL;C(this,wD(0x410)),C(this,wD(0x552)),C(this,'isVisible'),(this[wD(0x410)]=b,this[wD(0x552)]=new a0ay(),this['group']['name']='CUSTOM_AXES',this['createAxes']());}['createAxes'](){const wE=a0bL;this['createAxis'](new a0c(this[wE(0x410)],0x0,0x0),0xff6666),this[wE(0x346)](new a0c(0x0,this['size'],0x0),0x6666ff),this['createAxis'](new a0c(0x0,0x0,-this['size']),0x66bb66),this['createAxis'](new a0c(-this[wE(0x410)],0x0,0x0),0xffaaaa,!0x0),this['createAxis'](new a0c(0x0,-this['size'],0x0),0xccccff,!0x0),this['createAxis'](new a0c(0x0,0x0,this['size']),0x99dd99,!0x0);}[a0bL(0x346)](b,d,f=!0x1){const wF=a0bL,g=[new a0c(0x0,0x0,0x0),b],h=new a0j()[wF(0x72f)](g);let i;f?i=new a0bl({'color':d,'dashSize':0.1,'gapSize':0.1,'linewidth':0x1}):i=new a0i({'color':d,'linewidth':0x1});const j=new a0ao(h,i);this[wF(0x552)][wF(0x577)](j);}[a0bL(0x92f)](){const wG=a0bL;return this['isVisible']=!this['isVisible'],this[wG(0x552)][wG(0x12e)]=this[wG(0x236)],this[wG(0x236)];}['getObject'](){return this['group'];}['setVisible'](b){const wH=a0bL;this[wH(0x552)][wH(0x12e)]=b;}['dispose'](){this['group']['traverse'](b=>{const wI=a0b;b instanceof a0ao&&(b['geometry']['dispose'](),b['material'][wI(0x1a5)]());});}}var Et;(function(b){const wJ=a0bL;b[wJ(0x604)]=wJ(0x5bd),b[wJ(0x1da)]=wJ(0x160),b['HOLDING']=wJ(0x6d3);}(Et||(Et={})));class Zu{constructor(){this['_listeners']={};}[a0bL(0x696)](b,c){const wK=a0bL,d=this[wK(0x8a7)];d[b]===void 0x0&&(d[b]=[]),d[b]['indexOf'](c)===-0x1&&d[b]['push'](c);}['removeEventListener'](b,c){const d=this['_listeners'][b];if(d!==void 0x0){const f=d['indexOf'](c);f!==-0x1&&d['splice'](f,0x1);}}[a0bL(0x769)](b){const wL=a0bL,c=this['_listeners'][b['type']];if(c!==void 0x0){b['target']=this;const d=c['slice'](0x0);for(let e=0x0,f=d[wL(0x3ea)];e<f;e++)d[e]['call'](this,b);}}}class eg extends Zu{constructor(b){const wM=a0bL;super(),this[wM(0x54e)]=!0x0,this[wM(0x5d8)]=!0x1,this[wM(0x2e8)]=-0x1,this['_deltaTime']=0x0,this[wM(0x8f5)]=0x0,this['_lastTime']=0x0,this[wM(0x42b)]=c=>{const wN=wM;if(!this[wN(0x54e)]||this[wN(0x5d8)])return;this['_deltaTime']=0x0,this[wN(0x8f5)]=0x0,this[wN(0x451)]=performance[wN(0x6b5)](),this[wN(0x769)]({'type':Et[wN(0x604)],'deltaTime':this['_deltaTime'],'elapsedTime':this[wN(0x8f5)],'originalEvent':c}),this[wN(0x5d8)]=!0x0;const d=()=>{const wO=wN;this['_intervalId']=this['holdIntervalDelay']?window['setTimeout'](d,this['holdIntervalDelay']):window[wO(0x719)](d);const f=performance['now']();this[wO(0xa0b)]=f-this['_lastTime'],this[wO(0x8f5)]+=this['_deltaTime'],this['_lastTime']=performance[wO(0x6b5)](),this[wO(0x769)]({'type':Et[wO(0x84)],'deltaTime':this[wO(0xa0b)],'elapsedTime':this[wO(0x8f5)],'originalEvent':c});};this[wN(0x2e8)]=this[wN(0xb01)]?window['setTimeout'](d,this['holdIntervalDelay']):window[wN(0x719)](d);},this['_holdEnd']=c=>{const wP=wM;if(!this['_enabled']||!this['_holding'])return;const d=performance[wP(0x6b5)]();this[wP(0xa0b)]=d-this[wP(0x451)],this[wP(0x8f5)]+=this[wP(0xa0b)],this['_lastTime']=performance[wP(0x6b5)](),this[wP(0x769)]({'type':Et['HOLD_END'],'deltaTime':this[wP(0xa0b)],'elapsedTime':this[wP(0x8f5)],'originalEvent':c}),window['clearTimeout'](this['_intervalId']),window[wP(0x68d)](this[wP(0x2e8)]),this['_holding']=!0x1;},this[wM(0xb01)]=b;}get[a0bL(0x2d3)](){const wQ=a0bL;return this[wQ(0x54e)];}set[a0bL(0x2d3)](b){const wR=a0bL;this['_enabled']!==b&&(this['_enabled']=b,this[wR(0x54e)]||this['_holdEnd']());}get['holding'](){const wS=a0bL;return this[wS(0x5d8)];}}class tg extends eg{constructor(b,c){const wT=a0bL;if(typeof b!=wT(0x45f)){console['error']('KeyboardKeyHold:\x20the\x20first\x20argument\x20has\x20to\x20be\x20a\x20KeyboardEvent.code\x20string.');return;}super(c),this[wT(0x42b)]=this['_holdStart']['bind'](this),this['_holdEnd']=this[wT(0x7ea)][wT(0x450)](this);const d=g=>{const wU=wT;ig(g)||g[wU(0xf3)]===b&&this[wU(0x42b)](g);},f=g=>{const wV=wT;g[wV(0xf3)]===b&&this[wV(0x7ea)](g);};document['addEventListener']('keydown',d),document[wT(0x696)](wT(0x120),f),window[wT(0x696)]('blur',this[wT(0x7ea)]);}}function ig(b){const wW=a0bL,c=b[wW(0x4b7)];return c[wW(0x9eb)]==='INPUT'||c['tagName']==='SELECT'||c['tagName']===wW(0xa45)||c['isContentEditable'];}const sg=16.666,oa=0.05;class aa{constructor(b,c=[]){const wX=a0bL;C(this,'shortcuts'),C(this,'listeners'),C(this,wX(0x658)),C(this,'logger'),C(this,wX(0x2ee));if(!b)throw new Error('ShortcutManager:\x20viewer不能为空');this['viewer']=b,this['shortcuts']=new Map(),this[wX(0x188)]=new Map(),this['isEnabled']=!0x0,this[wX(0x52e)]=new on(wX(0x39a),{'minimumLevel':D[wX(0x9c5)]}),Array['isArray'](c)&&c['length']>0x0&&c[wX(0xb8)](d=>{const wY=wX;try{this[wY(0x8ae)](d);}catch(f){this['logger']['warn'](wY(0x1fe),{'error':f,'config':d});}});}[a0bL(0x809)](b){const wZ=a0bL;if(typeof b!=wZ(0x652))throw new Error('createWrappedCallback:\x20callback必须是函数');return c=>{const x0=wZ;if(this[x0(0x658)]&&b)try{b(c);}catch(d){this[x0(0x52e)][x0(0x644)]('快捷键回调执行失败',{'error':d,'event':c});}};}['getEventNameByType'](b){const x1=a0bL;switch(b){case x1(0x1ba):return Et['HOLDING'];case'press':return Et['HOLD_START'];case x1(0x854):return Et[x1(0x1da)];default:return this['logger']['warn'](x1(0x200),{'type':b}),Et['HOLDING'];}}['addShortcut'](b){const x2=a0bL;if(!b)throw new Error(x2(0x71a));if(typeof b[x2(0x382)]!=x2(0x45f)||!b[x2(0x382)][x2(0x135)]())throw new Error('addShortcut:\x20key必须是非空字符串');if(typeof b[x2(0x36f)]!=x2(0x652))throw new Error('addShortcut:\x20callback必须是函数');b['interval']!==void 0x0&&(typeof b['interval']!=x2(0x4ed)||b[x2(0x573)]<=0x0)&&this['logger']['warn']('addShortcut:\x20interval无效,使用默认值',{'key':b[x2(0x382)],'interval':b[x2(0x573)]}),b[x2(0x736)]&&![x2(0x1ba),'press',x2(0x854)][x2(0xa1c)](b['type'])&&this[x2(0x52e)]['warn']('addShortcut:\x20type无效,使用默认值',{'key':b['key'],'type':b[x2(0x736)]});const {key:d,callback:f,interval:g=sg,type:i='hold'}=b;try{let j=this[x2(0x7fa)][x2(0x7d7)](d);j||(j=new tg(d,g),this[x2(0x7fa)][x2(0x9fd)](d,j));const k=this[x2(0x27f)](i),m=this[x2(0x809)](f);j[x2(0x696)](k,m);const p=this[x2(0x188)]['get'](d)||[];p['push']({'type':i,'eventName':k,'wrappedCallback':m}),this['listeners'][x2(0x9fd)](d,p),this['logger']['debug']('添加快捷键成功',{'key':d,'type':i,'eventName':k});}catch(u){throw this['logger'][x2(0x644)]('添加快捷键失败',{'error':u,'config':b}),u;}}[a0bL(0x19f)](b,c){const x3=a0bL;if(typeof b!='string'||!b['trim']()){this['logger']['warn'](x3(0x53b),{'key':b});return;}if(c&&![x3(0x1ba),x3(0x89b),'end']['includes'](c)){this[x3(0x52e)][x3(0x5fb)]('removeShortcut:\x20type无效',{'key':b,'type':c});return;}const d=this['shortcuts'][x3(0x7d7)](b);if(!d){this['logger'][x3(0x25c)]('removeShortcut:\x20快捷键不存在',{'key':b});return;}try{const f=(this[x3(0x188)]['get'](b)||[])[x3(0x2e7)](g=>{const x4=x3;if(c===void 0x0||g[x4(0x736)]===c){try{d[x4(0xcf)](g[x4(0x7b0)],g[x4(0x7a3)]),this[x4(0x52e)][x4(0x25c)](x4(0x9a0),{'key':b,'type':g['type']});}catch(h){this['logger']['warn']('移除快捷键监听器失败',{'error':h,'key':b,'type':g[x4(0x736)]});}return!0x1;}return!0x0;});f['length']===0x0?(this['shortcuts'][x3(0x393)](b),this[x3(0x188)][x3(0x393)](b),this[x3(0x52e)][x3(0x25c)](x3(0x11f),{'key':b})):(this['listeners'][x3(0x9fd)](b,f),this['logger']['debug']('部分移除快捷键监听器',{'key':b,'removedType':c,'remainingCount':f['length']}));}catch(g){this['logger']['error']('移除快捷键失败',{'error':g,'key':b,'type':c});}}['toggleShortcuts'](b){const x5=a0bL;if(typeof b!=x5(0x708)){this['logger']['warn']('toggleShortcuts:\x20enabled必须是布尔值',{'enabled':b});return;}const c=this[x5(0x658)];this['isEnabled']=b,this[x5(0x52e)]['debug']('切换快捷键状态',{'previousState':c,'newState':b});}['getEnabled'](){const x6=a0bL;return this[x6(0x658)];}[a0bL(0x373)](){const x7=a0bL;try{this[x7(0x7fa)][x7(0xb8)]((b,c)=>{(this['listeners']['get'](c)||[])['forEach'](d=>{const x8=a0b;try{b['removeEventListener'](d['eventName'],d[x8(0x7a3)]);}catch(f){this[x8(0x52e)][x8(0x5fb)]('清除快捷键监听器失败',{'error':f,'key':c});}});}),this['shortcuts'][x7(0x752)](),this['listeners'][x7(0x752)](),this['logger'][x7(0xbc)]('清除所有快捷键成功');}catch(b){this['logger']['error']('清除所有快捷键失败',{'error':b});}}[a0bL(0xb17)](){const x9=a0bL;if(!this[x9(0x2ee)]){this['logger']['error'](x9(0x5e0));return;}this[x9(0x2ee)]['controls']||this['logger'][x9(0x5fb)](x9(0xa55));try{['KeyW',x9(0xf8),'KeyS',x9(0xacc),x9(0x74e),x9(0x9fa),'KeyE','KeyQ'][x9(0xb8)](c=>{const xb=x9;try{this[xb(0x8ae)]({'key':c,'type':xb(0x89b),'callback':()=>{const xf=xb;this[xf(0x2ee)]&&(this['viewer'][xf(0x104)]=!0x1);}}),this[xb(0x8ae)]({'key':c,'type':xb(0x854),'callback':()=>{const xj=xb;this[xj(0x2ee)]&&(this['viewer']['needUpdatePivotPoint']=!0x0);}});}catch(d){this['logger']['warn']('设置状态更新快捷键失败',{'error':d,'key':c});}});const b=[{'key':'KeyW','type':'hold','callback':c=>{const xk=x9;this[xk(0x2ee)]?.['controls']&&typeof this[xk(0x2ee)][xk(0x9ad)]=='number'&&c?.['deltaTime']&&this['viewer']['controls'][xk(0x5dc)](this['viewer'][xk(0x9ad)]*c['deltaTime'],!0x1);}},{'key':'KeyS','type':'hold','callback':c=>{const xm=x9;this[xm(0x2ee)]?.[xm(0x9e0)]&&typeof this['viewer']['controlSpeed']==xm(0x4ed)&&this['viewer'][xm(0x9e0)]['forward'](-this[xm(0x2ee)]['controlSpeed']*c['deltaTime'],!0x1);}},{'key':x9(0xf8),'type':'hold','callback':c=>{const xp=x9;this['viewer']?.[xp(0x9e0)]&&typeof this[xp(0x2ee)][xp(0x9ad)]=='number'&&this[xp(0x2ee)][xp(0x9e0)][xp(0x7c)](-this['viewer']['controlSpeed']*c['deltaTime'],0x0,!0x1);}},{'key':'KeyD','type':x9(0x1ba),'callback':c=>{const xq=x9;this[xq(0x2ee)]?.[xq(0x9e0)]&&typeof this[xq(0x2ee)][xq(0x9ad)]==xq(0x4ed)&&this[xq(0x2ee)][xq(0x9e0)][xq(0x7c)](this['viewer'][xq(0x9ad)]*c['deltaTime'],0x0,!0x1);}},{'key':x9(0x746),'type':'hold','callback':c=>{const xv=x9;this[xv(0x2ee)]?.[xv(0x9e0)]&&typeof this['viewer']['controlSpeed']==xv(0x4ed)&&this['viewer']['controls'][xv(0xa67)](this['viewer'][xv(0x9ad)]*c['deltaTime'],!0x1);}},{'key':'KeyR','type':'hold','callback':c=>{const xw=x9;this[xw(0x2ee)]?.[xw(0x9e0)]&&typeof this[xw(0x2ee)][xw(0x9ad)]=='number'&&this[xw(0x2ee)][xw(0x9e0)][xw(0xa67)](this['viewer']['controlSpeed']*c[xw(0x259)],!0x1);}},{'key':'KeyT','type':'hold','callback':c=>{const xx=x9;this['viewer']?.[xx(0x9e0)]&&typeof this['viewer'][xx(0x9ad)]==xx(0x4ed)&&this['viewer'][xx(0x9e0)][xx(0xa67)](-this[xx(0x2ee)][xx(0x9ad)]*c['deltaTime'],!0x1);}},{'key':x9(0x66b),'type':'hold','callback':c=>{const xy=x9;this['viewer']?.[xy(0x9e0)]&&typeof this['viewer']['controlSpeed']=='number'&&this[xy(0x2ee)][xy(0x9e0)][xy(0xa67)](-this[xy(0x2ee)]['controlSpeed']*c['deltaTime'],!0x1);}},{'key':x9(0x90e),'type':x9(0x1ba),'callback':c=>{const xz=x9;this['viewer']?.['controls']&&this['viewer']['setOrbitPointByCamera']&&c?.['deltaTime']&&(this['viewer']['setOrbitPointByCamera'](),this['viewer']['controls']['rotate'](-oa*a0A['DEG2RAD']*c[xz(0x259)],0x0,!0x1));}},{'key':x9(0x921),'type':x9(0x1ba),'callback':c=>{const xB=x9;this['viewer']?.['controls']&&this['viewer'][xB(0x99f)]&&c?.[xB(0x259)]&&(this['viewer']['setOrbitPointByCamera'](),this[xB(0x2ee)]['controls']['rotate'](oa*a0A['DEG2RAD']*c[xB(0x259)],0x0,!0x1));}}];this['addShortcut']({'key':x9(0xf4),'type':x9(0x89b),'callback':()=>{const xC=x9;this[xC(0x2ee)]?.['zoomRange']&&this[xC(0x2ee)]['zoomRange'](!0x0);}}),this['addShortcut']({'key':'Digit1','type':x9(0x89b),'callback':()=>{const xD=x9;this['viewer']?.[xD(0x33c)]&&this[xD(0x2ee)]['cameraView'](xD(0x29e));}}),this[x9(0x8ae)]({'key':x9(0x86c),'type':x9(0x89b),'callback':()=>{const xE=x9;this['viewer']?.[xE(0x33c)]&&this[xE(0x2ee)][xE(0x33c)](xE(0x2dc));}}),b['forEach'](c=>{const xF=x9;try{this[xF(0x8ae)](c);}catch(d){this[xF(0x52e)][xF(0x5fb)]('设置持续触发快捷键失败',{'error':d,'config':c});}}),this[x9(0x52e)][x9(0xbc)](x9(0x103),{'totalShortcuts':this[x9(0x7fa)]['size']});}catch(c){this['logger']['error'](x9(0x55a),{'error':c});}}}class ng{constructor(b){this['secretKey']=b||'rotateSpeed';}[a0bL(0x9b6)](b,d){const xG=a0bL;try{const f=this[xG(0x30f)](b),[g,i]=f['split']('|'),j=this[xG(0xbe)](g+this[xG(0xa11)]);if(i!==j)return{'valid':!0x1,'message':'0'};const k=JSON['parse'](g),m=new Date(),p=new Date(k['expiry']);return m>p?{'valid':!0x1,'message':'4','data':k}:d&&k['domains']!=='*'&&d!='localhost'&&!k[xG(0x7eb)]['split'](',')[xG(0xaa5)](v=>v[xG(0x9ff)]('*.')?d['endsWith'](v[xG(0x504)](0x1)):d===v)?{'valid':!0x1,'message':'3','data':k}:{'valid':!0x0,'message':'2','data':k};}catch{return{'valid':!0x1,'message':'1'};}}['_base64Decode'](b){return decodeURIComponent(escape(atob(b)));}['_simpleHash'](b){const xH=a0bL;let c=0x0;for(let d=0x0;d<b['length'];d++){const f=b[xH(0x5c0)](d);c=(c<<0x5)-c+f,c=c&c;}return c['toString'](0x10);}}const rg=['B','kB','MB','GB','TB','PB','EB','ZB','YB'],og=['B','KiB',a0bL(0x23a),a0bL(0x46a),'TiB',a0bL(0xa9d),'EiB',a0bL(0x559),a0bL(0x8c8)],ag=['b','kbit',a0bL(0x9b1),'Gbit',a0bL(0x484),a0bL(0x781),'Ebit',a0bL(0x912),a0bL(0xee)],cg=['b',a0bL(0x4b3),'Mibit',a0bL(0x540),'Tibit',a0bL(0x8b8),'Eibit','Zibit',a0bL(0x30a)],ca=(b,c,d)=>{const xI=a0bL;let f=b;return typeof c==xI(0x45f)||Array['isArray'](c)?f=b[xI(0x5a6)](c,d):(c===!0x0||d!==void 0x0)&&(f=b['toLocaleString'](void 0x0,d)),f;};function la(b,d){const xJ=a0bL;if(!Number[xJ(0x6ba)](b))throw new TypeError(xJ(0x5b1)+typeof b+':\x20'+b);d={'bits':!0x1,'binary':!0x1,'space':!0x0,...d};const f=d[xJ(0x276)]?d['binary']?cg:ag:d['binary']?og:rg,g=d[xJ(0x782)]?'\x20':'';if(d['signed']&&b===0x0)return'\x200'+g+f[0x0];const i=b<0x0,j=i?'-':d[xJ(0x82b)]?'+':'';i&&(b=-b);let k;if(d['minimumFractionDigits']!==void 0x0&&(k={'minimumFractionDigits':d[xJ(0x129)]}),d['maximumFractionDigits']!==void 0x0&&(k={'maximumFractionDigits':d['maximumFractionDigits'],...k}),b<0x1){const v=ca(b,d[xJ(0x2d2)],k);return j+v+g+f[0x0];}const m=Math[xJ(0x5d2)](Math[xJ(0xb11)](d[xJ(0x54b)]?Math[xJ(0x15e)](b)/Math['log'](0x400):Math[xJ(0xaa0)](b)/0x3),f[xJ(0x3ea)]-0x1);b/=(d['binary']?0x400:0x3e8)**m,k||(b=b['toPrecision'](0x3));const p=ca(Number(b),d['locale'],k),u=f[m];return j+p+g+u;}class lg{constructor(){C(this,'container',null),C(this,'messages',[]);}[a0bL(0x542)](){const xK=a0bL;this[xK(0xa49)]||(this[xK(0xa49)]=document['createElement']('div'),this['container']['className']='bmv-message-container',this[xK(0xa49)]['style']['cssText']='\x0a\x20\x20\x20\x20\x20\x20position:\x20fixed;\x0a\x20\x20\x20\x20\x20\x20top:\x2020px;\x0a\x20\x20\x20\x20\x20\x20left:\x2050%;\x0a\x20\x20\x20\x20\x20\x20transform:\x20translateX(-50%);\x0a\x20\x20\x20\x20\x20\x20z-index:\x2010000;\x0a\x20\x20\x20\x20\x20\x20pointer-events:\x20none;\x0a\x20\x20\x20\x20',document['body'][xK(0x2cf)](this[xK(0xa49)]));}[a0bL(0x422)](b){const xL=a0bL;if(this['initContainer'](),!this['container'])return;const {message:c,type:f='info',duration:g=0xbb8,showClose:i=!0x1}=b,j=document[xL(0x86)]('div');j[xL(0x9a8)]=xL(0x5aa)+f,j[xL(0xa1a)]['cssText']='\x0a\x20\x20\x20\x20\x20\x20min-width:\x20300px;\x0a\x20\x20\x20\x20\x20\x20max-width:\x20500px;\x0a\x20\x20\x20\x20\x20\x20padding:\x2012px\x2016px;\x0a\x20\x20\x20\x20\x20\x20margin-bottom:\x2010px;\x0a\x20\x20\x20\x20\x20\x20background-color:\x20#fff;\x0a\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20box-shadow:\x200\x204px\x2012px\x20rgba(0,\x200,\x200,\x200.15);\x0a\x20\x20\x20\x20\x20\x20pointer-events:\x20auto;\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20animation:\x20bmv-message-fade-in\x200.3s\x20ease-out;\x0a\x20\x20\x20\x20\x20\x20transition:\x20all\x200.3s\x20ease;\x0a\x20\x20\x20\x20';const k={'success':{'borderLeft':xL(0x307),'icon':'✓'},'warning':{'borderLeft':xL(0x745),'icon':'⚠'},'info':{'borderLeft':'4px\x20solid\x20#409eff','icon':'ℹ'},'error':{'borderLeft':'4px\x20solid\x20#f56c6c','icon':'✕'}}[f];j[xL(0xa1a)][xL(0x992)]=k['borderLeft'];const m=document[xL(0x86)](xL(0x785));m['className']=xL(0x16e),m['textContent']=k[xL(0xa13)],m[xL(0xa1a)]['cssText']=xL(0x5d3)+(f===xL(0x46f)?xL(0x78d):f===xL(0x8c6)?'#e6a23c':f==='error'?'#f56c6c':'#409eff')+xL(0x6b1);const p=document[xL(0x86)](xL(0x785));if(p[xL(0x9a8)]=xL(0x1f9),p['textContent']=c,p[xL(0xa1a)][xL(0x4ef)]=xL(0x446),i){const u=document[xL(0x86)]('span');u['className']='bmv-message-close',u[xL(0xa38)]='×',u['style'][xL(0x4ef)]=xL(0x4d6),u[xL(0x8b5)]=()=>{const xM=xL;u[xM(0xa1a)]['color']='#606266';},u[xL(0x36a)]=()=>{u['style']['color']='#909399';},u[xL(0x6d8)]=()=>{const xN=xL;this[xN(0x753)](j);},j['appendChild'](u);}j[xL(0x2cf)](m),j['appendChild'](p),this[xL(0xa49)][xL(0x2cf)](j),this['messages'][xL(0x4f5)](j),g>0x0&&setTimeout(()=>{this['close'](j);},g);}[a0bL(0x753)](b){const xO=a0bL;!this['container']||!b['parentNode']||(b['style']['animation']=xO(0xacb),b[xO(0xa1a)][xO(0x6fb)]='0',b[xO(0xa1a)]['transform']=xO(0x4cc),setTimeout(()=>{const xP=xO;b['parentNode']&&b['parentNode'][xP(0x197)](b);const c=this[xP(0x7d2)]['indexOf'](b);c>-0x1&&this[xP(0x7d2)][xP(0x230)](c,0x1);},0x12c));}[a0bL(0x2e6)](){const xQ=a0bL;this['messages'][xQ(0xb8)](b=>this['close'](b));}}const ai=new lg(),Pe={'success':(b,c)=>{const xR=a0bL;ai[xR(0x422)]({'message':b,'type':'success','duration':c});},'warning':(b,c)=>{const xS=a0bL;ai[xS(0x422)]({'message':b,'type':'warning','duration':c});},'info':(b,c)=>{const xT=a0bL;ai[xT(0x422)]({'message':b,'type':'info','duration':c});},'error':(b,c)=>{const xU=a0bL;ai[xU(0x422)]({'message':b,'type':xU(0x644),'duration':c});},'show':b=>{const xV=a0bL;ai[xV(0x422)](b);},'closeAll':()=>{const xW=a0bL;ai[xW(0x2e6)]();}};if(!document[a0bL(0x4b8)](a0bL(0x13c))){const a=document[a0bL(0x86)](a0bL(0xa1a));a['id']=a0bL(0x13c),a[a0bL(0x209)]='\x0a\x20\x20\x20\x20@keyframes\x20bmv-message-fade-in\x20{\x0a\x20\x20\x20\x20\x20\x20from\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20transform:\x20translateY(-20px);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20to\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20transform:\x20translateY(0);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20@keyframes\x20bmv-message-fade-out\x20{\x0a\x20\x20\x20\x20\x20\x20from\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20transform:\x20translateY(0);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20to\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20transform:\x20translateY(-20px);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a\x20\x20',document['head']['appendChild'](a);}const ci=0xa,zs=0xf,ha=0xf,Aa=0x28,hg=0xc8;class Se extends a0bm{constructor(b){const xX=a0bL;super(),C(this,xX(0x11a),!0x1),C(this,'_isActive',!0x1),C(this,xX(0xb3)),C(this,'_options',{'unit':'m'}),C(this,'_isMouseDown',!0x1),C(this,xX(0xf9),null),C(this,'_isDragging',!0x1),C(this,xX(0x1e4),0x0),C(this,'_startX',0x0),C(this,xX(0x67b)),C(this,'_tooltip',''),C(this,xX(0x35d),null),C(this,'_helperTip',''),C(this,'helperTipElement',null),C(this,xX(0x9e6)),C(this,xX(0x595)),C(this,'message'),(this['_viewer']=b,this[xX(0x366)]=this['onMouseDownRaw']['bind'](this),this['onMouseMoveRaw']=this['onMouseMoveRaw']['bind'](this),this['onMouseUpRaw']=this[xX(0x747)][xX(0x450)](this),this[xX(0x298)]=this[xX(0x298)][xX(0x450)](this),this['onTouchMoveRaw']=this['onTouchMoveRaw']['bind'](this),this['onTouchEndRaw']=this['onTouchEndRaw']['bind'](this),this[xX(0x76e)]=this['onTouchCancelRaw'][xX(0x450)](this),this['initTooltipElement'](),this[xX(0x4ee)](),this['guideLineMaterial']=new ne({'color':0xff0000,'depthTest':!0x1,'linewidth':2.5,'opacity':0.55,'resolution':new a0l(window['innerWidth'],window[xX(0x349)])}),this[xX(0x595)]=new a0g({'color':0x377ee8,'depthTest':!0x1,'side':a0at,'transparent':!0x0,'opacity':0.4}),this[xX(0x193)]=Pe);}[a0bL(0x676)](){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i['test'](navigator['userAgent'])||'ontouchstart'in window;}[a0bL(0x457)](){const xY=a0bL;this['tooltipElement']=document['createElement'](xY(0x521)),this['tooltipElement']['className']='tool-tooltip';const b=this[xY(0x676)]();Object['assign'](this['tooltipElement']['style'],{'position':'absolute','pointerEvents':xY(0x4b9),'padding':b?xY(0x693):'6px\x2012px','backgroundColor':'rgba(0,\x200,\x200,\x200.85)','color':'white','borderRadius':'8px','fontSize':b?'14px':xY(0x8c1),'fontWeight':'500','zIndex':xY(0xd0),'display':'none','boxShadow':xY(0x347),'backdropFilter':'blur(10px)','transition':'opacity\x200.2s\x20ease,\x20transform\x200.2s\x20ease','whiteSpace':'nowrap','userSelect':'none','WebkitUserSelect':xY(0x4b9),'touchAction':xY(0x4b9)}),this[xY(0x2ee)]['el'][xY(0x2cf)](this['tooltipElement']);}['initHelperTipElement'](){const xZ=a0bL;this[xZ(0x85a)]=document['createElement']('div'),this[xZ(0x85a)][xZ(0x9a8)]='tool-helper-tip';const b=this['isMobileDevice']();Object[xZ(0x4e5)](this[xZ(0x85a)][xZ(0xa1a)],{'position':xZ(0x7fd),'pointerEvents':'none','padding':b?xZ(0x405):'4px\x208px','backgroundColor':'rgba(0,\x200,\x200,\x200.6)','color':xZ(0x220),'borderRadius':xZ(0x1fb),'fontSize':b?xZ(0x383):xZ(0x987),'fontWeight':xZ(0x20b),'zIndex':'999','display':'none','boxShadow':xZ(0x5b2),'backdropFilter':'blur(5px)','whiteSpace':xZ(0x96c),'userSelect':xZ(0x4b9),'WebkitUserSelect':xZ(0x4b9),'touchAction':xZ(0x4b9)}),this[xZ(0x2ee)]['el'][xZ(0x2cf)](this[xZ(0x85a)]);}set[a0bL(0x34c)](b){const y0=a0bL;this[y0(0x7e5)]=b,this[y0(0x35d)]&&(this[y0(0x35d)][y0(0x209)]=b,b?(this[y0(0x35d)]['style']['display']=y0(0x27c),this['tooltipElement']['style'][y0(0x6fb)]='0',requestAnimationFrame(()=>{const y1=y0;this[y1(0x35d)]&&(this[y1(0x35d)]['style'][y1(0x6fb)]='1',this['tooltipElement'][y1(0xa1a)][y1(0xd1)]='translateY(0)');})):(this['tooltipElement']['style'][y0(0x6fb)]='0',this['tooltipElement']['style'][y0(0xd1)]='translateY(-5px)',setTimeout(()=>{const y2=y0;this[y2(0x35d)]&&!this['_tooltip']&&(this['tooltipElement'][y2(0xa1a)]['display']='none');},hg)));}get['tooltip'](){return this['_tooltip'];}set['helperTip'](b){const y3=a0bL;this[y3(0x148)]=b,this[y3(0x85a)]&&(this['helperTipElement']['textContent']=b,b?(this['helperTipElement']['style'][y3(0x46e)]=y3(0x27c),this['helperTipElement']['style'][y3(0x6fb)]='0',requestAnimationFrame(()=>{const y4=y3;this[y4(0x85a)]&&(this['helperTipElement'][y4(0xa1a)][y4(0x6fb)]='0.8',this[y4(0x85a)]['style']['transform']=y4(0x862));})):(this['helperTipElement']['style'][y3(0x6fb)]='0',this[y3(0x85a)]['style']['transform']='translateY(0px)',this[y3(0x85a)]&&!this['_helperTip']&&(this[y3(0x85a)]['style']['display']='none')));}get['helperTip'](){return this['_helperTip'];}get[a0bL(0x8d3)](){return this['_isRunning'];}get['isActive'](){const y5=a0bL;return this[y5(0x2cc)];}get['options'](){const y6=a0bL;return this[y6(0x5c5)];}get['unit'](){const y7=a0bL;return this['_options'][y7(0xf2)];}get['viewer'](){const y8=a0bL;return this[y8(0xb3)];}get['camera'](){return this['_viewer']['camera'];}get['scene'](){const y9=a0bL;return this['_viewer'][y9(0x440)];}get[a0bL(0x9b)](){return this['_viewer']?.['renderer'];}get['controls'](){const yb=a0bL;return this['_viewer']?.[yb(0x9e0)];}[a0bL(0x9ed)](b){const yf=a0bL;return b?b[yf(0x40e)]:window['event']?.[yf(0x40e)]||!0x1;}[a0bL(0xaef)](){const yj=a0bL;return this['_isRunning']?(console['warn'](yj(0x615)),!0x1):(this[yj(0x11a)]=!0x0,this[yj(0x34c)]='工具运行中...(按ESC取消)',this['dispatchEvent']({'type':'start','tool':this}),!0x0);}['stopTool'](){const yk=a0bL;this['_isRunning']&&(this['_isRunning']=!0x1,this[yk(0x769)]({'type':'stop','tool':this}),this[yk(0x34c)]='');}[a0bL(0x125)](){const ym=a0bL;this['tooltipElement']&&(this[ym(0x35d)]['style']['display']='none');}['hideHelperTip'](){const yp=a0bL;this['helperTipElement']&&(this['helperTipElement']['style']['display']=yp(0x4b9));}[a0bL(0x366)](b){const yq=a0bL;if(!this['_isActive']||this[yq(0x11a)])return;const c=this[yq(0x2ee)]?.[yq(0x7e0)]?.['getBoundingClientRect'](),d=new a0l();c&&(d['x']=b[yq(0x4f8)]-c[yq(0x5df)],d['y']=b['clientY']-c[yq(0x29e)]),this[yq(0xaf6)]=b['clientX'],this['_startY']=b[yq(0x5ab)],this[yq(0x18b)]=!0x1;const f={'tool':this,'unit':this[yq(0xf2)],'canvasRect':c,'screen':{'point':d}};this[yq(0xa46)]=!0x0,this[yq(0xf9)]=b[yq(0x4b7)],this['onMouseDown'](b,f);}[a0bL(0x478)](b,c){}['onMouseMoveRaw'](b){const yv=a0bL,d=b['target'],f=this[yv(0x2ee)]?.[yv(0x7e0)];if(!f||d!==f&&!f['contains'](d)){this[yv(0x125)](),this['hideHelperTip']();return;}const g=this['viewer']?.[yv(0x7e0)]?.[yv(0x38d)](),h=new a0l();g&&(h['x']=b[yv(0x4f8)]-g[yv(0x5df)],h['y']=b[yv(0x5ab)]-g['top']),(Math[yv(0x855)](b[yv(0x4f8)]-this[yv(0xaf6)])>ci||Math['abs'](b[yv(0x5ab)]-this[yv(0x1e4)])>ci)&&(this['_isDragging']=!0x0,b['isDragging']=!0x0),this['updateTooltipPosition'](b['clientX'],b[yv(0x5ab)]),this[yv(0x9f7)](b[yv(0x4f8)],b[yv(0x5ab)]);const i={'tool':this,'unit':this[yv(0xf2)],'canvasRect':g,'screen':{'point':h}};this['onMouseMove'](b,i);}[a0bL(0xb19)](b,d){const yw=a0bL;if(!this['tooltipElement']||!this[yw(0x7e5)])return;this[yw(0x35d)][yw(0xa1a)]['display']='block',this['tooltipElement']['style'][yw(0x6fb)]='1',this['tooltipElement'][yw(0xa1a)]['transform']=yw(0x140);const f=this[yw(0x35d)]['getBoundingClientRect'](),g=window[yw(0x7e7)],h=window['innerHeight'];let i=b+zs,j=d+ha;i+f['width']>g&&(i=b-f['width']-zs),j+f['height']>h&&(j=d-f['height']-ha),this[yw(0x35d)]['style'][yw(0x5df)]=i+'px',this[yw(0x35d)][yw(0xa1a)]['top']=j+'px';}['updateHelperTipPosition'](b,d){const yx=a0bL;if(!this[yx(0x85a)]||!this[yx(0x148)])return;this[yx(0x85a)][yx(0xa1a)][yx(0x46e)]=yx(0x27c),this[yx(0x85a)]['style'][yx(0x6fb)]='0.8',this[yx(0x85a)]['style'][yx(0xd1)]='translateY(-60px)';const f=this[yx(0x85a)][yx(0x38d)](),g=window['innerWidth'],h=window['innerHeight'];let i=b+zs,j=d+Aa;i+f['width']>g&&(i=b-f[yx(0xb1f)]-zs),j+f['height']>h&&(j=d-f[yx(0x19e)]-Aa),this[yx(0x85a)][yx(0xa1a)]['left']=i+'px',this['helperTipElement'][yx(0xa1a)]['top']=j+'px';}['onMouseMove'](b,c){}[a0bL(0x747)](b,d){const yy=a0bL,f=this['viewer']?.[yy(0x7e0)]?.['getBoundingClientRect'](),g=new a0l();f&&(g['x']=b[yy(0x4f8)]-f[yy(0x5df)],g['y']=b[yy(0x5ab)]-f['top']);const h=d?.[yy(0x7f2)]||[],i={'tool':this,'unit':this[yy(0xf2)],'hits':h,'canvasRect':f,'screen':{'point':g}};this['onMouseUp'](b,i),this['_isMouseDown']&&this['_mouseDownTarget']===b['target']&&b['button']===0x0&&!this['_isDragging']&&Math[yy(0x855)](b[yy(0x4f8)]-this[yy(0xaf6)])<=ci&&Math[yy(0x855)](b['clientY']-this['_startY'])<=ci&&this[yy(0x583)](b,i),this['_isMouseDown']=!0x1,this[yy(0xf9)]=null,this['_isDragging']=!0x1;}[a0bL(0xad9)](b,c){}[a0bL(0x583)](b,c){}[a0bL(0x298)](b){const yz=a0bL,d=this['viewer']?.[yz(0x7e0)]?.['getBoundingClientRect'](),f=new a0l();let g=0x0,h=0x0;if(d&&b[yz(0x30e)]['length']>0x0){const j=b[yz(0x30e)][0x0];g=j[yz(0x4f8)],h=j[yz(0x5ab)],f['x']=g-d['left'],f['y']=h-d[yz(0x29e)];}if(b[yz(0x30e)][yz(0x3ea)]>0x0){const k=b[yz(0x30e)][0x0];this['_startX']=k['clientX'],this['_startY']=k['clientY'],this['_isDragging']=!0x1;}this['updateTooltipPosition'](g,h),this['updateHelperTipPosition'](g,h);const i={'tool':this,'unit':this[yz(0xf2)],'canvasRect':d,'screen':{'point':f}};this['onTouchStart'](b,i);}[a0bL(0x857)](b,c){}[a0bL(0x45d)](b){const yB=a0bL,d=this[yB(0x2ee)]?.['canvas']?.[yB(0x38d)](),f=new a0l();let g=0x0,i=0x0;if(d&&b[yB(0x30e)][yB(0x3ea)]>0x0){const k=b['touches'][0x0];g=k[yB(0x4f8)],i=k['clientY'],f['x']=g-d['left'],f['y']=i-d[yB(0x29e)];const m=this['isMobileDevice']()?0x5:ci;(Math[yB(0x855)](g-this[yB(0xaf6)])>m||Math['abs'](i-this['_startY'])>m)&&(this['_isDragging']=!0x0);}this['updateTooltipPosition'](g,i),this[yB(0x9f7)](g,i);const j={'tool':this,'unit':this[yB(0xf2)],'canvasRect':d,'screen':{'point':f}};this[yB(0x9cd)](b,j);}[a0bL(0x9cd)](b,c){}[a0bL(0x24f)](b){const yC=a0bL,d=this['viewer']?.[yC(0x7e0)]?.[yC(0x38d)](),f=new a0l();if(d&&b[yC(0x453)]['length']>0x0){const h=b['changedTouches'][0x0];f['x']=h['clientX']-d[yC(0x5df)],f['y']=h[yC(0x5ab)]-d[yC(0x29e)];}const g={'tool':this,'unit':this['unit'],'canvasRect':d,'screen':{'point':f}};if(!this[yC(0x18b)]&&b['changedTouches'][yC(0x3ea)]>0x0){const i=b[yC(0x453)][0x0],j=this[yC(0x676)]()?0x5:ci;Math[yC(0x855)](i['clientX']-this[yC(0xaf6)])<=j&&Math[yC(0x855)](i[yC(0x5ab)]-this['_startY'])<=j;}this[yC(0x18b)]=!0x1,this['_startX']=0x0,this['_startY']=0x0,this['onTouchEnd'](b,g);}['onTouchEnd'](b,c){}[a0bL(0x76e)](b){const yD=a0bL,c=this[yD(0x2ee)]?.['canvas']?.[yD(0x38d)](),d={'tool':this,'unit':this[yD(0xf2)],'canvasRect':c};this[yD(0x16f)](b,d);}['onTouchCancel'](b,c){}['showLoading'](){const yE=a0bL;if(document['getElementById']('tool-loading-overlay'))return;const b=document[yE(0x86)](yE(0x521));b['id']=yE(0x681),b['style']['cssText']=yE(0xa90);const c=document['createElement'](yE(0x521));c[yE(0xa1a)]['cssText']='\x0a\x20\x20\x20\x20\x20\x20background:\x20#1e1e1e;\x0a\x20\x20\x20\x20\x20\x20color:\x20#e0e0e0;\x0a\x20\x20\x20\x20\x20\x20padding:\x2020px\x2040px;\x0a\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20gap:\x2010px;\x0a\x20\x20\x20\x20\x20\x20box-shadow:\x200\x204px\x2012px\x20rgba(0,\x200,\x200,\x200.3);\x0a\x20\x20\x20\x20';const d=document[yE(0x86)](yE(0x521));if(d[yE(0xa1a)][yE(0x4ef)]=yE(0x7bb),!document[yE(0x4b8)]('tool-loading-style')){const g=document['createElement'](yE(0xa1a));g['id']=yE(0x2ac),g[yE(0x209)]=yE(0x371),document['head']['appendChild'](g);}const f=document['createElement'](yE(0x521));f['textContent']='加载中...',f['style'][yE(0x4ef)]=yE(0x489),c[yE(0x2cf)](d),c[yE(0x2cf)](f),b['appendChild'](c),document[yE(0x279)]['appendChild'](b);}['hideLoading'](){const b=document['getElementById']('tool-loading-overlay');b&&document['body']['removeChild'](b);}[a0bL(0x86a)](){const yF=a0bL;if(!this['_viewer']||!this['_viewer']['controls'])return{'success':!0x1,'message':'viewer未初始化'};const {x:b,y:d,z:f}=this['_viewer']['controls'][yF(0xa89)](),{x:g,y:h,z:i}=this[yF(0xb3)]['controls'][yF(0x67)](),j=[b,-f,d,g,-i,h][yF(0x428)](k=>parseFloat((k*39.3701)['toFixed'](0x3)));return j[yF(0x4f5)](0x0),j[yF(0x4f5)](0x0),j['push'](0x1),j[yF(0x4f5)](this['_viewer'][yF(0x710)]?.['isPerspectiveCamera']?0x1:0x0),j['push'](this['_viewer']['camera']?.[yF(0x73c)]||0x0),{'success':!0x0,'data':j['join'](':')};}async[a0bL(0x84f)](b){const yG=a0bL;if(!this[yG(0xb3)]||!this['_viewer'][yG(0x9e0)])return{'success':!0x1,'message':'viewer未初始化'};try{const c=b[yG(0x110)](':');return c['length']<0x6?{'success':!0x1,'message':yG(0x6d4)}:(await this[yG(0xb3)][yG(0x9e0)][yG(0x149)](0x0,0x0,0x0),this[yG(0xb3)][yG(0x9e0)]['setLookAt'](parseFloat(c[0x0])*0.0254,parseFloat(c[0x2])*0.0254,-parseFloat(c[0x1])*0.0254,parseFloat(c[0x3])*0.0254,parseFloat(c[0x5])*0.0254,-parseFloat(c[0x4])*0.0254,!0x0),{'success':!0x0});}catch(d){return console[yG(0x644)](yG(0x260),d),{'success':!0x1,'message':yG(0xa24)};}}['registerEventListeners'](){const yH=a0bL,b=this['_viewer']?.[yH(0x7e0)];b&&(b['addEventListener'](yH(0x94a),this['onMouseDownRaw']),window['addEventListener'](yH(0x986),this[yH(0x849)]),this[yH(0x2ee)][yH(0x696)]('mouseup',this['onMouseUpRaw']),b[yH(0x696)]('touchstart',this[yH(0x298)],{'passive':!0x1}),b[yH(0x696)]('touchmove',this[yH(0x45d)],{'passive':!0x1}),b['addEventListener']('touchend',this['onTouchEndRaw']),b['addEventListener'](yH(0x72c),this['onTouchCancelRaw']));}[a0bL(0x4b0)](){const yI=a0bL,b=this[yI(0xb3)]?.[yI(0x7e0)];b&&(b['removeEventListener']('mousedown',this[yI(0x366)]),window[yI(0xcf)]('mousemove',this[yI(0x849)]),this['viewer'][yI(0xcf)]('mouseup',this[yI(0x747)]),b['removeEventListener']('touchstart',this['onTouchStartRaw']),b['removeEventListener']('touchmove',this[yI(0x45d)]),b['removeEventListener'](yI(0x4a8),this['onTouchEndRaw']),b['removeEventListener']('touchcancel',this['onTouchCancelRaw']));}[a0bL(0xa6e)](){const yJ=a0bL;this['removeElement'](this['tooltipElement']),this[yJ(0x35d)]=null,this[yJ(0x2f0)](this['helperTipElement']),this[yJ(0x85a)]=null;}['removeElement'](b){const yK=a0bL;b&&b[yK(0x1d0)]&&b[yK(0x1d0)][yK(0x197)](b);}['activate'](b){const yL=a0bL;this[yL(0x11a)]||this[yL(0x2cc)]||(this['_isActive']=!0x0,this['_options']={...this['_options'],...b},this['registerEventListeners'](),this[yL(0x2ee)]['shortcutManager']['addShortcut']({'key':'Escape','type':'press','callback':()=>{this['deactivate']();}}),this['onActivate'](),this[yL(0x67b)]&&this['viewer']['canvas']['classList']['add'](this['cursor']),this[yL(0x769)]({'type':'activate','tool':this}));}['deactivate'](){const yM=a0bL;this[yM(0x2cc)]&&(this[yM(0x2cc)]=!0x1,this['unregisterEventListeners'](),this['viewer'][yM(0x2bb)][yM(0x19f)](yM(0x6da)),this[yM(0x67b)]&&this[yM(0x2ee)]['canvas']['classList'][yM(0x592)](this[yM(0x67b)]),this[yM(0x35d)]&&(this[yM(0x35d)][yM(0xa1a)][yM(0x46e)]='none'),this[yM(0x85a)]&&(this[yM(0x85a)][yM(0xa1a)]['display']='none'),this[yM(0x34c)]='',this[yM(0xa9f)]='',this[yM(0x510)](),this[yM(0x73f)](),this[yM(0x769)]({'type':'deactivate','tool':this}));}[a0bL(0x92f)](b){const yN=a0bL;this['_isActive']?this['deactivate']():this[yN(0x9b2)](b);}[a0bL(0x1a5)](){const yO=a0bL;this[yO(0x79f)](),this[yO(0xa6e)]();}['on'](b,c){return this['addEventListener'](b,c),this;}[a0bL(0x11d)](b,c){return this['removeEventListener'](b,c),this;}['emit'](b,c){return this['dispatchEvent']({'type':b,'tool':this,...c}),this;}}class Ag extends Se{constructor(b){const yP=a0bL;super(b),C(this,yP(0x90f),[]),C(this,yP(0x72a),[]),C(this,yP(0x459),!0x0),C(this,yP(0x32e)),C(this,yP(0x5ce),null),C(this,yP(0x2fe),null),C(this,'sectionBoxGroup'),C(this,'isSectionBoxActive',!0x1),C(this,yP(0x7db)),C(this,yP(0x8c0),!0x1),C(this,'uiPanel',null),C(this,'slidersContainer',null),C(this,'selectedPlaneIndex',0x0),C(this,'planeSelect',null),C(this,yP(0x548),0x6),C(this,'HIGHLIGHT_OFFSET',0.012),C(this,yP(0x802),0.25),C(this,'PLANE_CONSTANT_OFFSET',0.01),C(this,yP(0x774),0.000001),C(this,'NORMAL_ALIGNMENT_THRESHOLD',0.9),C(this,yP(0xadd),0.5),C(this,yP(0x60d),'--clip'),(this['cursor']=this[yP(0x60d)],this['renderer'][yP(0x703)]=!0x0);}['onActivate'](){const yQ=a0bL,b=new a0as(0x1,0x1);this['highlightPlane']=new a0e(b,this['planeMaterial']),this['highlightPlane']['visible']=!0x1,this[yQ(0x440)][yQ(0x577)](this[yQ(0x7db)]),this[yQ(0x34c)]='点选目标截面',this['updateUIPanel']();}['onDeactivate'](){const yR=a0bL;this[yR(0x7db)]&&this[yR(0x440)]['remove'](this[yR(0x7db)]),this[yR(0x868)](),this['tooltip']='';}[a0bL(0x538)](b,c){const yS=a0bL;b['isDragging']!==void 0x0&&(this[yS(0x8c0)]=b['isDragging']),this[yS(0x2ee)][yS(0x3aa)][yS(0xfc)](this[yS(0x2ee)][yS(0x916)],this[yS(0x2ee)]['camera']);const d=this[yS(0x2ee)]['raycaster']['intersectObjects'](Array['from'](this[yS(0x2ee)]['visibleObjects']));d['length']>0x0&&d[0x0][yS(0x3b8)]?this['updateHighlightPlane'](d[0x0]):this[yS(0x7db)]['visible']=!0x1;}['onMouseDown'](b,c){const yT=a0bL;this[yT(0x8c0)]=!0x1;}[a0bL(0xad9)](b,c){const yU=a0bL,{hits:d}=c;this['highlightPlane']['visible']&&!this['isDragging']&&d&&d['length']>0x0&&(this[yU(0x8bc)](d[0x0]),this[yU(0x563)](),this['selectedPlaneIndex']=this['clippingPlanes'][yU(0x3ea)]-0x1,this[yU(0xf7)]());}['updateHighlightPlane'](b){const yV=a0bL;if(!b[yV(0x3b8)])return;this['highlightPlane'][yV(0x12e)]=!0x0;const c=b['face'][yV(0x83)]['clone']()[yV(0x433)](this['HIGHLIGHT_OFFSET']);this[yV(0x7db)]['position'][yV(0x3fe)](b[yV(0x883)]['clone']()['add'](c));const d=b['point']['clone']()['add'](b[yV(0x3b8)][yV(0x83)]);this['highlightPlane']['lookAt'](d);const f=this['viewer'][yV(0x710)]['position']['distanceTo'](b[yV(0x883)])*this[yV(0x802)];this[yV(0x7db)]['scale']['set'](f,f,0x1);}['createClippingPlaneFromHit'](b){const yW=a0bL;if(!b[yW(0x3b8)]||!b['point'])return;const c=b['face']['normal'][yW(0x471)]();if(b[yW(0x3e3)]&&b['object'][yW(0x14e)]){const u=new a0ax()[yW(0x370)](b['object'][yW(0x14e)]);c['applyNormalMatrix'](u)['normalize']();}const f=this[yW(0x2ee)][yW(0x6f4)]||new a0c(0x0,0x0,0x0),i=b['point']['clone']()['sub'](f);c[yW(0x7c9)](i);const j=this[yW(0x2ee)]['camera']['position'][yW(0x471)]()['sub'](b[yW(0x883)]);j[yW(0x6ff)]();const k=c['dot'](j)>0x0?c['clone']()[yW(0x1cf)]():c[yW(0x471)](),m=k['clone']()['negate']()['multiplyScalar'](this['PLANE_CONSTANT_OFFSET']),p=b['point'][yW(0x471)]()['add'](m),t=new a0aq();t['setFromNormalAndCoplanarPoint'](k,p),this['addClippingPlaneByPlane'](t);}[a0bL(0x302)](){const yX=a0bL;if(this['isSectionBoxActive']){this[yX(0x38f)]();return;}}['setConstantByPlaneRange'](b='x',d=0x0){const yY=a0bL;if(!this['sectionBox']){console['warn']('[ModelClipperTool]\x20sectionBox\x20未初始化');return;}const f=this['getPlaneByType'](b);if(!f){console[yY(0x5fb)](yY(0x68c)+b);return;}const {min:g,max:h}=this['getAxisRange'](b),i=h-g,j=g+d*i;f['constant']=j,this['updatePlaneHelper']();}['getPlaneByType'](b){const yZ=a0bL,c={'x':0x0,'-x':0x1,'y':0x2,'-y':0x3,'z':0x4,'-z':0x5}[b];return this[yZ(0x72a)][c]||null;}['getAxisRange'](b){const z0=a0bL;switch(b){case'x':case'-x':return{'min':this[z0(0x32e)][z0(0x5d2)]['x'],'max':this['sectionBox'][z0(0x36b)]['x']};case'y':case'-y':return{'min':this['sectionBox']['min']['y'],'max':this['sectionBox'][z0(0x36b)]['y']};case'z':case'-z':return{'min':this['sectionBox']['min']['z'],'max':this['sectionBox'][z0(0x36b)]['z']};default:throw new Error('Unknown\x20plane\x20type:\x20'+b);}}['deactivateSectionBox'](){const z1=a0bL;this[z1(0xada)]&&(this[z1(0x5f3)]&&(this['scene'][z1(0x592)](this['sectionBoxGroup']),this[z1(0x5f3)]=null),this[z1(0x72a)]=[],this['resetList'](),this['updateAllMaterials'](),this['sectionBox']=null,this[z1(0x5ce)]=null,this[z1(0x2fe)]=null,this['isSectionBoxActive']=!0x1);}[a0bL(0x391)](b,c){const z2=a0bL;if(this[z2(0x72a)]['length']>=this[z2(0x548)]){this[z2(0x193)]['warning']('已达到最大剖切平面数量:\x20'+this[z2(0x548)]+z2(0x452),0xbb8);return;}const d=new a0aq();return d[z2(0x64a)](b,c),this[z2(0x72a)]['push'](d),this['resetList'](),d;}['addClippingPlaneByPlane'](b){const z3=a0bL;if(this['clippingPlanes']['some'](c=>c['normal'][z3(0x39f)](b['normal'])&&Math[z3(0x855)](c['constant']-b[z3(0x953)])<this[z3(0x774)]))return console[z3(0x5fb)]('[ModelClipperTool]\x20检测到重复的剖切平面,已跳过'),b;if(this[z3(0x72a)][z3(0x3ea)]>=this['MAX_CLIPPING_PLANES']){this['message'][z3(0x8c6)](z3(0x94e)+this['MAX_CLIPPING_PLANES']+z3(0x452),0xbb8);return;}return this['clippingPlanes']['push'](b),this['resetList'](),b;}[a0bL(0xb07)](){this['lists']=[],this['clippingPlanes']['forEach'](b=>{const z4=a0b;try{const {min:c,max:d}=ic(this[z4(0x2ee)]['boundingBox'],b);this['lists'][z4(0x4f5)]({'plane':b,'min':c,'max':d});}catch(f){console['error']('[ModelClipperTool]\x20计算裁剪范围失败:',f,b);}});}['updateMaterialForClipping'](b){const z5=a0bL;b['clippingPlanes']=this[z5(0x72a)],b[z5(0x879)]=!0x0,b[z5(0xab1)]=!0x1;}[a0bL(0x969)](b){const z6=a0bL;this[z6(0x72a)]=[],b['forEach'](c=>{const z7=z6;try{const {point:d,normal:f}=Wa(c);this[z7(0x391)](f,d);}catch(g){console['error'](z7(0xa9b),g,c);}}),this['resetList'](),this[z6(0x563)]();}['updateAllMaterials'](){const z8=a0bL;this['updateModelMaterials'](),this['updateEdgeMeshMaterials'](),this[z8(0x72a)]['length']>0x0&&this['viewer'][z8(0x4cd)][z8(0xc4)]('ssao',!0x1,this[z8(0x2ee)]['options'][z8(0xa1a)]['ssao']);}['updateModelMaterials'](){const z9=a0bL;this['viewer'][z9(0x838)]['traverse'](b=>{const zb=z9;(b['isMesh']||b['material'])&&(Array['isArray'](b['material'])?b[zb(0x690)][zb(0xb8)](c=>this['updateMaterialForClipping'](c)):this[zb(0xa83)](b[zb(0x690)]));});}['updateEdgeMeshMaterials'](){const zf=a0bL;if(!this['viewer']['edgeMesh'])return;const {material:b}=this['viewer']['edgeMesh'];if(!(!b||!b[zf(0x526)])){if(this['clippingPlanes'][zf(0x3ea)]>0x0){this['viewer']['renderer'][zf(0x703)]=!0x0;for(let c=0x0;c<this[zf(0x72a)]['length'];c++){const d=this['clippingPlanes'][c];b['uniforms'][zf(0x423)][zf(0xaa2)][c]=new a0y(d[zf(0x83)]['x'],d[zf(0x83)]['y'],d['normal']['z'],d[zf(0x953)]);}for(let f=this['clippingPlanes']['length'];f<this[zf(0x548)];f++)b[zf(0x526)][zf(0x423)][zf(0xaa2)][f]=new a0y(0x0,0x0,0x0,0x0);}else b[zf(0x526)]['cps'][zf(0xaa2)]=Array['from']({'length':this['MAX_CLIPPING_PLANES']},()=>new a0y(0x0,0x0,0x0,0x0));}}[a0bL(0x475)](b){const zj=a0bL;if(b<0x0||b>=this['clippingPlanes'][zj(0x3ea)]){console[zj(0x5fb)](zj(0x85e)+b+zj(0x894)+this['clippingPlanes'][zj(0x3ea)]);return;}this[zj(0x90f)]['splice'](b,0x1),this['clippingPlanes'][zj(0x230)](b,0x1),this[zj(0xb07)](),this['updateAllMaterials'](),this['updateUIPanel']();}['setPlanePositionByIndex'](b,d){const zk=a0bL;if(b<0x0||b>=this[zk(0x72a)][zk(0x3ea)]){console['warn']('[ModelClipperTool]\x20无效的索引:\x20'+b+zk(0x894)+this[zk(0x72a)]['length']);return;}if(b>=this[zk(0x90f)][zk(0x3ea)]){console['warn'](zk(0x45e)+b+',\x20列表长度:\x20'+this['lists'][zk(0x3ea)]);return;}const f=this[zk(0x90f)][b],{min:g,max:h}=f,i=h-g,j=g+d*i;f[zk(0x3ab)]['constant']=j,this['updateAllMaterials']();}['getPlanePositionByIndex'](b){const zm=a0bL;if(b<0x0||b>=this[zm(0x90f)][zm(0x3ea)])return 0x0;const d=this['lists'][b],{min:f,max:g,plane:h}=d,i=g-f;if(i===0x0)return 0x0;const j=(h[zm(0x953)]-f)/ i;return Math[zm(0x36b)](0x0,Math['min'](0x1,j));}['clear'](){const zp=a0bL;this['lists']=[],this[zp(0x72a)]=[],this['resetList'](),this['updateAllMaterials'](),this[zp(0xf7)]();}[a0bL(0x5f9)](){const zq=a0bL;if(!this[zq(0x5f3)]){console[zq(0x5fb)](zq(0x12b));return;}if(this['sectionBoxGroup'][zq(0x56d)][zq(0x3ea)]>0x0&&this['sectionBoxGroup'][zq(0x752)](),!this[zq(0x32e)]){console[zq(0x5fb)](zq(0x6db));return;}const b=this['sectionBox'][zq(0x7af)](new a0c());this['sectionBox'][zq(0x248)](new a0c()),this['clippingPlanes']['forEach'](c=>{const zv=zq,{width:d,height:f}=this[zv(0xb16)](c,b),g=Xa(c,d,f);this['sectionBoxGroup']['add'](g);});}['calculatePlaneDimensions'](b,c){const zw=a0bL,d=this[zw(0x941)];return Math[zw(0x855)](b[zw(0x83)]['x'])>d?{'width':c['z'],'height':c['y']}:Math[zw(0x855)](b[zw(0x83)]['y'])>d?{'width':c['x'],'height':c['z']}:{'width':c['x'],'height':c['y']};}[a0bL(0x56c)](b){const zx=a0bL;this[zx(0x459)]=b,a0x[zx(0xad1)]=a0w['merge']([a0x['common'],a0x['specularmap'],a0x[zx(0x1a1)],a0x[zx(0x306)],a0x[zx(0x3e8)],a0x[zx(0x8b2)],{'clippingPlanes':{'value':b?this[zx(0x72a)]:null},'clipIntersection':{'value':!0x1}}]);}['createVisualPlanesFromBoundingBox'](b,d=this['DEFAULT_PLANE_OPACITY']){const zy=a0bL,f=Ja(b),g=new a0ay(),h=b[zy(0x7af)](new a0c()),i=b[zy(0x248)](new a0c()),j=(k,t,v,w,x,y)=>{const zz=zy,z=new a0as(w,x),B=new a0g({'color':t,'side':a0at,'transparent':!0x0,'opacity':d}),F=new a0e(z,B);F['name']=v;const H=k[zz(0x83)];return F[zz(0x122)]['setFromUnitVectors'](new a0c(0x0,0x0,0x1),H),F[zz(0x1b7)][zz(0x3fe)](i[zz(0x471)]()[zz(0x577)](y)),F;};return g['add'](j(f['left'],new a0G(0xff0000),'left',h['y'],h['z'],new a0c(-h['x']/0x2,0x0,0x0))),g['add'](j(f[zy(0x9ca)],new a0G(0xff0000),'right',h['y'],h['z'],new a0c(h['x']/0x2,0x0,0x0))),g[zy(0x577)](j(f[zy(0x342)],new a0G(0xff00),'bottom',h['x'],h['z'],new a0c(0x0,-h['y']/0x2,0x0))),g['add'](j(f[zy(0x29e)],new a0G(0xff00),'top',h['x'],h['z'],new a0c(0x0,h['y']/0x2,0x0))),g[zy(0x577)](j(f['front'],new a0G(0xff),'front',h['x'],h['y'],new a0c(0x0,0x0,h['z']/0x2))),g['add'](j(f[zy(0x17a)],new a0G(0xff),'back',h['x'],h['y'],new a0c(0x0,0x0,-h['z']/0x2))),g;}[a0bL(0x9c9)](){const zB=a0bL;if(this['uiPanel'])return;this['uiPanel']=document[zB(0x86)]('div'),this[zB(0x649)]['className']=zB(0x876);const b=document['createElement'](zB(0x521));b[zB(0x9a8)]=zB(0x92e),this[zB(0x3b1)]=document[zB(0x86)](zB(0xa4c)),this['planeSelect'][zB(0x9a8)]='plane-select',this[zB(0x3b1)]['addEventListener']('change',()=>{const zC=zB,g=parseInt(this['planeSelect'][zC(0xaa2)]);this['selectedPlaneIndex']=g,this[zC(0xf7)]();}),b['appendChild'](this['planeSelect']),this['uiPanel'][zB(0x2cf)](b),this['slidersContainer']=document[zB(0x86)]('div'),this[zB(0x76b)][zB(0x9a8)]='sliders-container',this['uiPanel']['appendChild'](this['slidersContainer']);const c=document['createElement']('div');c[zB(0x9a8)]=zB(0xad6);const d=document['createElement']('button');d['textContent']='清除所有',d[zB(0x9a8)]='danger',d['addEventListener'](zB(0x9e),()=>{const zD=zB;this[zD(0x752)](),this[zD(0xf7)]();});const f=document['createElement'](zB(0x954));f[zB(0x209)]='退出',f[zB(0x696)](zB(0x9e),()=>{this['deactivate']();}),c['appendChild'](d),c['appendChild'](f),this['uiPanel'][zB(0x2cf)](c),this['viewer']['el'][zB(0x2cf)](this[zB(0x649)]);}[a0bL(0xf7)](){const zE=a0bL;if(this[zE(0x9c9)](),!this['slidersContainer']||!this['planeSelect'])return;if(this['planeSelect']['innerHTML']='',this['clippingPlanes'][zE(0x3ea)]===0x0){this['planeSelect']['style']['display']=zE(0x4b9),this[zE(0x76b)][zE(0xa38)]='';const B=document[zE(0x86)](zE(0x521));B['className']=zE(0x625),B['textContent']=zE(0x195),this[zE(0x76b)][zE(0x2cf)](B);return;}this[zE(0x3b1)][zE(0xa1a)][zE(0x46e)]='block',this[zE(0x72a)]['forEach']((E,F)=>{const zF=zE,H=document[zF(0x86)](zF(0x83f));H[zF(0xaa2)]=F['toString'](),H[zF(0x209)]='剖切面\x20#'+(F+0x1),this['planeSelect'][zF(0x2cf)](H);}),this['selectedPlaneIndex']>=this['clippingPlanes']['length']&&(this['selectedPlaneIndex']=this['clippingPlanes'][zE(0x3ea)]-0x1),this[zE(0x19b)]<0x0&&(this[zE(0x19b)]=0x0),this[zE(0x3b1)][zE(0xaa2)]=this['selectedPlaneIndex']['toString'](),this[zE(0x76b)][zE(0xa38)]='';const b=this['selectedPlaneIndex'],i=this['getPlanePositionByIndex'](b),j=Math['round'](i*0x64),k=document['createElement']('div');k[zE(0x9a8)]=zE(0x4a2);const m=document['createElement']('div');m[zE(0x9a8)]='plane-control-header';const p=document['createElement']('span');p[zE(0x9a8)]=zE(0x118),p['textContent']=zE(0x1ee)+(b+0x1);const t=document[zE(0x86)]('span');t[zE(0x9a8)]=zE(0x698),t[zE(0x209)]=j+'%',m[zE(0x2cf)](p),m['appendChild'](t),k[zE(0x2cf)](m);const v=document['createElement'](zE(0x521));v['className']='slider-wrapper';const w=document[zE(0x86)]('input');w['type']=zE(0x81c),w[zE(0xe4)](zE(0x5d2),'0'),w['setAttribute']('max','1'),w['setAttribute'](zE(0x1ec),'0.01'),w['value']=i[zE(0x2d7)](),w[zE(0x696)]('input',F=>{const zG=zE,H=F['target'],L=parseFloat(H['value']);this['setPlanePositionByIndex'](b,L);const N=Math[zG(0x43f)](L*0x64);t[zG(0x209)]=N+'%';}),v[zE(0x2cf)](w),k[zE(0x2cf)](v);const x=document['createElement'](zE(0x521));x['className']=zE(0x584);const y=document['createElement']('button');y['textContent']='重置',y[zE(0x696)]('click',()=>{const zH=zE;this[zH(0x91a)](b,0.5),w[zH(0xaa2)]='0.5',t['textContent']=zH(0x863);});const z=document['createElement']('button');z[zE(0x209)]='删除',z['className']=zE(0xac4),z['addEventListener'](zE(0x9e),()=>{const zI=zE;this[zI(0x475)](b),this['clippingPlanes']['length']>0x0&&this['selectedPlaneIndex']>=this[zI(0x72a)][zI(0x3ea)]&&(this['selectedPlaneIndex']=this['clippingPlanes'][zI(0x3ea)]-0x1),this[zI(0xf7)]();}),x['appendChild'](y),x[zE(0x2cf)](z),k[zE(0x2cf)](x),this[zE(0x76b)][zE(0x2cf)](k);}[a0bL(0x868)](){const zJ=a0bL;this['uiPanel']&&this[zJ(0x649)][zJ(0x237)]&&this[zJ(0x649)][zJ(0x237)]['removeChild'](this[zJ(0x649)]),this['uiPanel']=null,this[zJ(0x76b)]=null,this['planeSelect']=null,this[zJ(0x19b)]=0x0;}[a0bL(0xa6e)](){this['removeUIPanel']();}}class dg extends Se{constructor(b){const zK=a0bL;super(b),C(this,zK(0x649),null),C(this,zK(0x5de),null),C(this,zK(0x40d),null),C(this,zK(0x599),null),this[zK(0x67b)]=zK(0x6c5);}['createUIPanel'](){const zL=a0bL;if(this['uiPanel'])return;this[zL(0x649)]=document['createElement'](zL(0x521)),this['uiPanel']['className']='explosion-tool-panel';const b=document['createElement']('div');b[zL(0x9a8)]='slider-container';const c=document['createElement']('label');c['textContent']=zL(0x448);const d=document['createElement'](zL(0x521));d['className']='slider-wrapper',this[zL(0x5de)]=document[zL(0x86)](zL(0x678)),this[zL(0x5de)][zL(0x736)]=zL(0x81c),this[zL(0x5de)]['setAttribute'](zL(0x5d2),'0'),this[zL(0x5de)]['addEventListener']('input',f=>{const zM=zL,g=f[zM(0x4b7)],i=parseFloat(g['value']),j=parseFloat(g['max']),k=Math[zM(0x36b)](0x0,Math['min'](i,j));this['applyIntensity'](k);}),d['appendChild'](this['intensitySlider']),b['appendChild'](c),b['appendChild'](d),this['resetButton']=document[zL(0x86)]('button'),this['resetButton']['textContent']='复位',this['resetButton']['addEventListener'](zL(0x9e),()=>{this['reset']();}),this[zL(0x599)]=document[zL(0x86)](zL(0x954)),this['exitButton'][zL(0x209)]='退出',this[zL(0x599)]['addEventListener'](zL(0x9e),()=>{this['deactivate']();}),b[zL(0x2cf)](this['resetButton']),b[zL(0x2cf)](this['exitButton']),this[zL(0x649)]['appendChild'](b),this['viewer']['el']['appendChild'](this[zL(0x649)]);}[a0bL(0x357)](){const zN=a0bL;if(!this['intensitySlider']||!this[zN(0x2ee)][zN(0x3c5)])return;const b=this[zN(0x2ee)][zN(0x3c5)]['getMaxIntensity'](),c=this['viewer']['explosion']['getStep'](),d=this['viewer'][zN(0x3c5)]['getCurrentIntensity']();this[zN(0x5de)]['setAttribute'](zN(0x5d2),'0'),this[zN(0x5de)]['setAttribute']('max',b['toString']());const f=Math[zN(0x5d2)](c,b/0x64);this[zN(0x5de)][zN(0xe4)]('step',f[zN(0x2d7)]()),this['intensitySlider'][zN(0x5d2)]='0',this[zN(0x5de)][zN(0x36b)]=b['toString'](),this['intensitySlider']['step']=f[zN(0x2d7)]();const g=Math['max'](0x0,Math[zN(0x5d2)](d,b));this[zN(0x5de)]['value']=g[zN(0x2d7)]();}['removeUIPanel'](){const zO=a0bL;this['uiPanel']&&this[zO(0x649)][zO(0x237)]&&this['uiPanel']['parentElement']['removeChild'](this[zO(0x649)]),this[zO(0x649)]=null,this['intensitySlider']=null,this[zO(0x40d)]=null,this[zO(0x599)]=null;}[a0bL(0xa6e)](){const zP=a0bL;this[zP(0x868)]();}[a0bL(0x7d3)](){const zQ=a0bL;if(!this['viewer'][zQ(0x3c5)]){if(!this[zQ(0x2ee)][zQ(0x6f4)]||!this['viewer']['boxSize']){this['message'][zQ(0x644)]('模型未加载,无法使用爆炸视图工具',0xbb8),this[zQ(0x79f)]();return;}i;try{this['viewer'][zQ(0xa6f)]();}catch(b){console['error']('[ExplosionTool]\x20初始化爆炸控制器失败:',b),this[zQ(0x193)]['error']('初始化爆炸控制器失败',0xbb8),this['deactivate']();return;}}this[zQ(0x9c9)](),setTimeout(()=>{const zR=zQ;this[zR(0x357)](),this[zR(0x2ee)][zR(0x3c5)]&&this[zR(0x95a)](zR(0x3db));},0x0);}['onDeactivate'](){const zS=a0bL;this[zS(0x2ee)]['explosion']&&this['viewer']['explosion']['resetExplosion'](),this[zS(0x868)](),this[zS(0x34c)]='';}['applyIntensity'](b){const zT=a0bL;if(!this['viewer']['explosion']){this['message']['warning'](zT(0x47c),0x7d0);return;}this[zT(0x2ee)][zT(0x3c5)][zT(0x320)](b);}['reset'](){const zU=a0bL;if(!this['viewer'][zU(0x3c5)]){this[zU(0x193)][zU(0x8c6)]('爆炸控制器未初始化',0x7d0);return;}if(this['viewer'][zU(0x3c5)]['resetExplosion'](),this['intensitySlider']){const b=this['viewer']['explosion']['getCurrentIntensity']();this[zU(0x5de)]['value']=b['toString']();}}[a0bL(0x95a)](b){const zV=a0bL;if(this['viewer'][zV(0x3c5)]&&(this[zV(0x2ee)][zV(0x3c5)][zV(0x95a)](b),this['intensitySlider'])){const c=this['viewer']['explosion'][zV(0x890)]();this['intensitySlider'][zV(0xaa2)]=c['toString']();}}['getMaxIntensity'](){const zW=a0bL;return this['viewer']['explosion']?this[zW(0x2ee)]['explosion']['getMaxIntensity']():0x0;}[a0bL(0x408)](){const zX=a0bL;return this['viewer']['explosion']?this[zX(0x2ee)][zX(0x3c5)]['getStep']():0.1;}['getCurrentIntensity'](){const zY=a0bL;return this[zY(0x2ee)]['explosion']?this['viewer'][zY(0x3c5)][zY(0x890)]():0x0;}}const or=0xaaaaaa,ar=0x1,cr=0.8,ug=0x808080;class gg extends Se{constructor(b){const zZ=a0bL;super(b),C(this,zZ(0x3a4),[]),C(this,'anchorPoint',null),C(this,zZ(0xa43),null),C(this,zZ(0x850),null),C(this,zZ(0x555),null),C(this,'inputElement',null),C(this,'isInputMode',!0x1),C(this,zZ(0x7a9),null),(this['cursor']=zZ(0x82a),this['viewer'][zZ(0x2bb)]['addShortcut']({'key':zZ(0x229),'type':'press','callback':()=>{const A0=zZ;this['selectedIndex']!=null&&this[A0(0x475)](this[A0(0x7a9)]);}}));}[a0bL(0x7d3)](){const A1=a0bL;this[A1(0x34c)]='点击模型上的点开始标注,再次点击确定文本位置',this[A1(0x193)][A1(0xbc)](A1(0x7dc),0xbb8);}['onDeactivate'](){const A2=a0bL;this['clearDraw'](),this[A2(0x572)]();}['clearDraw'](){const A3=a0bL;this[A3(0x440)]&&(this[A3(0xa43)]&&(this[A3(0x440)]['remove'](this['guideLine']),this['guideLine']=null),this[A3(0x850)]&&(this[A3(0x440)]['remove'](this[A3(0x850)]),this[A3(0x850)]=null),this[A3(0x91c)]=null,this['isInputMode']=!0x1,this[A3(0xa9f)]='');}[a0bL(0x301)](b){const A4=a0bL;if(!(b?.['face']&&b[A4(0x3e3)]))return!0x1;const c=b[A4(0x3e3)];if(!(c instanceof a0e)||!c['geometry'])return!0x1;const {face:f,point:i}=b,j=c['geometry']['attributes']['position'],k=[f['a'],f['b'],f['c']]['map'](x=>{const A5=A4,y=new a0c();return y['fromBufferAttribute'](j,x),c[A5(0x265)](y),y;}),m=[[k[0x0],k[0x1]],[k[0x1],k[0x2]],[k[0x2],k[0x0]]];this[A4(0x710)]&&this[A4(0x710)]['updateMatrixWorld']();const p=this['viewer']['getWidth'](i)*0x7,t=this['viewer']['getWidth'](i)*0x5;let v=0x1/0x0,w=null;return k['forEach'](x=>{const y=i['distanceTo'](x);y<=p&&y<v&&(v=y,w=x['clone']());}),w||m['forEach'](([x,y])=>{const A6=A4,z=this[A6(0x204)](i,x,y),B=i[A6(0x5a8)](z);B<=t&&B<v&&(v=B,w=z['clone']());}),w?(b['point']=w,!0x0):!0x1;}['getClosestPointOnLineSegment'](b,d,f){const A7=a0bL,g=new a0c()['subVectors'](f,d),i=new a0c()[A7(0x642)](b,d),j=g['length'](),k=g[A7(0x6ff)]();let m=i['dot'](k);return m=Math[A7(0x36b)](0x0,Math['min'](m,j)),new a0c()[A7(0x3fe)](d)['add'](k['multiplyScalar'](m));}['onMouseMove'](b,c){const A8=a0bL;if(!(!this[A8(0x77f)]||!this['viewer']['camera'])&&!this['isInputMode']){if(this[A8(0x91c)])this[A8(0x34c)]=A8(0x288);else{this[A8(0x34c)]=A8(0x6d1);return;}if(this['anchorPoint']){this[A8(0x2ee)]['raycaster'][A8(0xfc)](this['viewer']['mouse'],this['viewer']['camera']);const d=this[A8(0x2ee)]['camera']['getWorldDirection'](new a0c())[A8(0x6ff)](),f=new a0aq(d,-this['anchorPoint'][A8(0x7c9)](d)),g=new a0c();this['viewer']['raycaster'][A8(0x715)][A8(0x3c1)](f,g)&&(this[A8(0x440)]&&this[A8(0xa43)]&&(this['scene']['remove'](this[A8(0xa43)]),this[A8(0xa43)]=null),this[A8(0x7e3)](g));}}}[a0bL(0x583)](b,f){const A9=a0bL;if(this[A9(0x7a0)])return;const {hits:g}=f;if(this[A9(0x91c)]){if(!this['anchorPoint']||!this[A9(0x2ee)][A9(0x710)])return;this[A9(0x2ee)]['raycaster']['setFromCamera'](this[A9(0x2ee)]['mouse'],this[A9(0x2ee)][A9(0x710)]);const h=this[A9(0x2ee)]['camera']['getWorldDirection'](new a0c())['normalize'](),i=new a0aq(h,-this[A9(0x91c)]['dot'](h)),j=new a0c();if(this[A9(0x2ee)][A9(0x3aa)][A9(0x715)]['intersectPlane'](i,j)){const k=new a0c()[A9(0x642)](j,this['anchorPoint'])['length'](),m=new a0c(0x0,0x1,0x0)[A9(0x433)](Math[A9(0x36b)](this['viewer'][A9(0x283)](this['anchorPoint'])*0x2,k*0.2)),p=new a0c()[A9(0x3fe)](j)[A9(0x577)](m);p['y']<=this['anchorPoint']['y']&&(p['y']=this['anchorPoint']['y']+this[A9(0x2ee)]['getWidth'](this[A9(0x91c)])*0x5),this['showInput'](p);}}else{if(!g||g[A9(0x3ea)]===0x0)return;this['snapToFaceEdgeOrCorner'](g[0x0]),this[A9(0x91c)]=g[0x0][A9(0x883)]['clone'](),this['tooltip']=A9(0x288);}}[a0bL(0x7e3)](b){const Ab=a0bL;if(!this['anchorPoint']||!this[Ab(0x440)])return;const c=new Ae();c[Ab(0x64b)]([this['anchorPoint']['x'],this['anchorPoint']['y'],this['anchorPoint']['z'],b['x'],b['y'],b['z']]);const d=new ne({'color':or,'depthTest':!0x1,'linewidth':ar,'opacity':cr,'resolution':new a0l(window[Ab(0x7e7)],window['innerHeight'])});this['guideLine']=new de(c,d),this['scene'][Ab(0x577)](this['guideLine']);}['showInput'](b){const Af=a0bL;if(!this['anchorPoint']||!this['scene'])return;this[Af(0x7a0)]=!0x0,this['hideInput'](),this['inputContainer']=document['createElement'](Af(0x521)),this['inputContainer'][Af(0xa1a)][Af(0x4ef)]='\x0a\x20\x20\x20\x20\x20\x20position:\x20fixed;\x0a\x20\x20\x20\x20\x20\x20background:\x20white;\x0a\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20#377ee8;\x0a\x20\x20\x20\x20\x20\x20border-radius:\x204px;\x0a\x20\x20\x20\x20\x20\x20padding:\x202px;\x0a\x20\x20\x20\x20\x20\x20box-shadow:\x200\x202px\x208px\x20rgba(0,\x200,\x200,\x200.15);\x0a\x20\x20\x20\x20\x20\x20z-index:\x2010000;\x0a\x20\x20\x20\x20\x20\x20min-width:\x20200px;\x0a\x20\x20\x20\x20',this[Af(0x2fc)]=document['createElement'](Af(0x678)),this[Af(0x2fc)]['type']=Af(0x280),this[Af(0x2fc)]['placeholder']=Af(0x1dd),this[Af(0x2fc)]['style'][Af(0x4ef)]=Af(0x5c6),this['inputContainer']['appendChild'](this['inputElement']),document[Af(0x279)][Af(0x2cf)](this[Af(0x555)]);const c=this[Af(0x866)](b);this[Af(0x555)]['style'][Af(0x5df)]=c['x']+'px',this['inputContainer']['style']['top']=c['y']-0xa+'px',setTimeout(()=>{const Aj=Af;this[Aj(0x2fc)]?.['focus']();},0x64),this[Af(0x2fc)][Af(0x696)]('keydown',d=>{const Ak=Af;d[Ak(0x382)]===Ak(0x9a4)?(d[Ak(0x58c)](),this[Ak(0x2ff)](b)):d[Ak(0x382)]===Ak(0x6da)&&(d['preventDefault'](),this['cancelAnnotation']());}),this[Af(0x2fc)][Af(0x696)](Af(0x161),()=>{setTimeout(()=>{this['isInputMode']&&this['completeAnnotation'](b);},0xc8);});}[a0bL(0x572)](){const Am=a0bL;this[Am(0x555)]&&(document[Am(0x279)][Am(0x197)](this[Am(0x555)]),this[Am(0x555)]=null,this['inputElement']=null);}['completeAnnotation'](b){const An=a0bL;if(!this['anchorPoint']||!this[An(0x2fc)]||!this[An(0x440)])return;const c=this[An(0x2fc)]['value']['trim']();if(!c){this[An(0xab5)]();return;}const d=this['drawLine'](this['anchorPoint'],b),f=J({'className':'bmv-su-annotation-label','html':c+'\x20<span\x20title=\x22删除\x22\x20class=\x22bmv-measure-label-delete\x22>×</span>','click':({event:i})=>{const Ap=An;i[Ap(0xa8e)]();const j=i[Ap(0x4b7)],k=this[Ap(0x3a4)][Ap(0x2ab)](m=>m[Ap(0x5ff)]===f);j&&(j['tagName']==='SPAN'||j[Ap(0x240)][Ap(0x96b)]('bmv-measure-label-delete')||j[Ap(0x1ff)](Ap(0x34b)))?k!==-0x1&&this[Ap(0x475)](k):k!==-0x1&&this['selectAnnotation'](k);}});setTimeout(()=>{const Aq=An,h=f[Aq(0x1de)];if(h){const i=h[Aq(0xa3d)]('.bmv-measure-label-delete');i&&(i[Aq(0xa1a)]['pointerEvents']='auto',i[Aq(0xa1a)]['cursor']=Aq(0x1fa));}},0x0);const g=b[An(0x471)]();g['y']+=0.1,f['position']['copy'](g),this[An(0x440)]['add'](f),this[An(0x3a4)]['push']({'anchorPoint':this['anchorPoint']['clone'](),'textPoint':b[An(0x471)](),'line':d,'label':f,'text':c}),this[An(0x616)](),this['hideInput'](),this['tooltip']=An(0x6d1);}[a0bL(0xab5)](){const Av=a0bL;this['clearDraw'](),this['hideInput'](),this[Av(0x34c)]=Av(0x6d1);}['drawLine'](b,d,f=or){const Aw=a0bL;if(!this['scene'])throw new Error('Scene\x20is\x20not\x20available');const g=new Ae();g[Aw(0x64b)]([b['x'],b['y'],b['z'],d['x'],d['y'],d['z']]);const h=new ne({'color':f,'depthTest':!0x0,'linewidth':ar,'opacity':cr,'resolution':new a0l(window['innerWidth'],window['innerHeight'])}),i=new de(g,h);return i['userData'][Aw(0x88c)]=!0x0,i['userData']['markupIndex']=this[Aw(0x3a4)][Aw(0x3ea)],i['userData']['isMainLine']=!0x0,this[Aw(0x440)][Aw(0x577)](i),i;}[a0bL(0xab0)](b){const Ax=a0bL;if(!(b<0x0||b>=this[Ax(0x3a4)][Ax(0x3ea)])){if(this['selectedIndex']===b){this[Ax(0x509)](b,!0x1),this['selectedIndex']=null;return;}this[Ax(0x7a9)]!==null&&this['highlightAnnotation'](this['selectedIndex'],!0x1),this['selectedIndex']=b,this[Ax(0x509)](b,!0x0);}}['highlightAnnotation'](b,c){const Ay=a0bL;if(b<0x0||b>=this[Ay(0x3a4)]['length'])return;const {line:d}=this[Ay(0x3a4)][b],f=d[Ay(0x690)];c?(f[Ay(0x66e)]['setHex'](0xff00),f['linewidth']=0x4,f['opacity']=0x1):(f['color'][Ay(0x720)](or),f['linewidth']=ar,f['opacity']=cr);}[a0bL(0x475)](b){const Az=a0bL;if(b<0x0||b>=this['annotations'][Az(0x3ea)]||!this['scene'])return;const c=this['annotations'][b];this[Az(0x440)]['remove'](c['line']),this['scene'][Az(0x592)](c['label']),this['annotations'][Az(0x230)](b,0x1),this['selectedIndex']===b?this['selectedIndex']=null:this[Az(0x7a9)]!==null&&this[Az(0x7a9)]>b&&this[Az(0x7a9)]--,this['annotations'][Az(0xb8)]((d,f)=>{const AB=Az;d[AB(0x50a)][AB(0x6f)]&&(d['line'][AB(0x6f)]['markupIndex']=f);});}['removeLast'](){const AC=a0bL;this['annotations']['length']>0x0&&this['removeByIndex'](this[AC(0x3a4)]['length']-0x1);}['getAnnotations'](){return this['annotations'];}['clear'](){const AD=a0bL;if(!this[AD(0x440)])return;const b=this[AD(0x440)];this[AD(0x3a4)][AD(0xb8)](c=>{const AE=AD;b[AE(0x592)](c['line']),b['remove'](c[AE(0x5ff)]);}),this['annotations']=[],this[AD(0x7a9)]=null,this[AD(0x616)](),this[AD(0x572)]();}['worldToScreen'](b){const AF=a0bL;if(!this['camera']||!this['renderer'])return new a0l(0x0,0x0);const c=b['clone']();c[AF(0x3e5)](this['camera']);const d=this[AF(0x9b)]['domElement']['getBoundingClientRect'](),f=(c['x']*0.5+0.5)*d['width'],g=(-c['y']*0.5+0.5)*d[AF(0x19e)];return new a0l(f,g);}['isPointInViewport'](b,d=0x0){const AG=a0bL;if(!this[AG(0x710)]||!this[AG(0x9b)])return!0x1;const f=b['clone']();if(f[AG(0x3e5)](this[AG(0x710)]),f['z']>0x1)return!0x1;const g=this[AG(0x9b)]['domElement'][AG(0x38d)](),h=(f['x']*0.5+0.5)*g[AG(0xb1f)],i=(-f['y']*0.5+0.5)*g[AG(0x19e)];return h>=d&&h<=g['width']-d&&i>=d&&i<=g[AG(0x19e)]-d;}[a0bL(0x5ee)](b,c=0x14){const AH=a0bL;return this[AH(0x312)](b['textPoint'],c);}[a0bL(0x612)](b=0x14){const AI=a0bL;this['scene']&&this[AI(0x3a4)][AI(0xb8)](c=>{const AJ=AI,d=this[AJ(0x5ee)](c,b);c['line']['visible']=d,c[AJ(0x5ff)]['visible']=d;});}[a0bL(0x92c)](b){const AK=a0bL;!b||b['length']===0x0||!this['scene']||b[AK(0xb8)](d=>{const AL=AK;try{const f=new a0c(d[AL(0x883)][0x0],d['point'][0x1],d['point'][0x2]),g=new a0c(d[AL(0x883)][0x0]+d[AL(0x38b)][0x0],d['point'][0x1]+d['vector'][0x1],d['point'][0x2]+d['vector'][0x2]),h=this[AL(0x613)](f,g,ug),i=J({'className':'bmv-su-annotation-label','html':d['text']});setTimeout(()=>{const AM=AL,k=i['element'];if(k){k['style']['pointerEvents']='none';const m=k['querySelector'](AM(0x427));m&&(m[AM(0xa1a)]['pointerEvents']=AM(0x4b9));}},0x0);const j=g[AL(0x471)]();j['y']+=0.1,i['position'][AL(0x3fe)](j),this['scene']&&this['scene']['add'](i),this[AL(0x3a4)]['push']({'anchorPoint':f['clone'](),'textPoint':g[AL(0x471)](),'line':h,'label':i,'text':d['text'],'isFromModel':!0x0});}catch(k){console['error']('加载标注失败:',k);}});}[a0bL(0x2ba)](b){const AN=a0bL;this[AN(0x440)]&&this[AN(0x3a4)]['forEach'](c=>{c['line']['visible']=b,c['label']['visible']=b;});}}const fg=0x377ee8;class pg extends Se{constructor(b){const AO=a0bL;super(b),C(this,'annotations',[]),C(this,AO(0x91c),null),C(this,'inputContainer',null),C(this,'inputElement',null),C(this,AO(0x818),null),C(this,AO(0xaa3),null),C(this,'fileInput',null),C(this,AO(0x8a),null),C(this,'isInputMode',!0x1),C(this,AO(0x75b),null),C(this,AO(0x505),null),C(this,'currentImageUrls',[]),C(this,AO(0x150),0x438),C(this,AO(0xaf2),0x5),C(this,AO(0x664),null),(this['cursor']='--label',this[AO(0xa10)]());}['initSpeechRecognition'](){const AP=a0bL;if('SpeechRecognition'in window||'webkitSpeechRecognition'in window){const b=window[AP(0x1d1)]||window[AP(0x5d7)];this[AP(0x75b)]=new b(),this['recognition'][AP(0x345)]=!0x1,this['recognition']['interimResults']=!0x1,this['recognition']['lang']=AP(0x53c),this[AP(0x75b)]['onresult']=c=>{const AQ=AP,d=c[AQ(0x262)][0x0][0x0]['transcript'];this[AQ(0x2fc)]&&(this['inputElement']['value']=d);},this[AP(0x75b)][AP(0x9d0)]=c=>{const AR=AP;console['error']('语音识别错误:',c[AR(0x644)]),Pe[AR(0x644)](AR(0x468));},this[AP(0x75b)][AP(0x75e)]=()=>{const AS=AP;this[AS(0x818)]&&(this[AS(0x818)][AS(0xa1a)][AS(0x291)]='');};}}['onActivate'](){const AT=a0bL;this[AT(0x34c)]=AT(0x8db),this[AT(0x193)]['info'](AT(0x7bd),0xbb8);}['setBeforeAddCallback'](b){this['beforeAddCallback']=b;}[a0bL(0x73f)](){this['clearInput'](),this['hideLoading']();}[a0bL(0x583)](b,c){const AU=a0bL;if(this['isInputMode'])return;const {hits:d}=c;if(!d||d[AU(0x3ea)]===0x0){Pe[AU(0xbc)]('未选到任何东西,请点击模型上的点');return;}const f=d[0x0];this[AU(0x91c)]=f[AU(0x883)]['clone'](),this[AU(0x9fc)]();const g=this['worldToScreen'](this[AU(0x91c)]);this['showInput'](g);}['showInput'](b){const AV=a0bL;if(!this['anchorPoint'])return;this['clearInput'](),this['isInputMode']=!0x0,this['tooltip']=AV(0x107),this['inputContainer']=document[AV(0x86)](AV(0x521)),this[AV(0x555)][AV(0xa1a)]['cssText']='\x0a\x20\x20\x20\x20\x20\x20position:\x20fixed;\x0a\x20\x20\x20\x20\x20\x20z-index:\x2010000;\x0a\x20\x20\x20\x20\x20\x20background:\x20rgba(0,\x200,\x200,\x200.5);\x0a\x20\x20\x20\x20\x20\x20backdrop-filter:\x20blur(8px);\x0a\x20\x20\x20\x20\x20\x20border-radius:\x206px;\x0a\x20\x20\x20\x20\x20\x20padding:\x208px\x2012px;\x0a\x20\x20\x20\x20\x20\x20color:\x20#fff;\x0a\x20\x20\x20\x20\x20\x20font-family:\x20-apple-system,\x20BlinkMacSystemFont,\x20\x22Segoe\x20UI\x22,\x20Roboto,\x20sans-serif;\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20gap:\x208px;\x0a\x20\x20\x20\x20\x20\x20box-shadow:\x200\x202px\x2012px\x20rgba(0,\x200,\x200,\x200.3);\x0a\x20\x20\x20\x20\x20\x20min-width:\x20280px;\x0a\x20\x20\x20\x20\x20\x20max-width:\x20450px;\x0a\x20\x20\x20\x20',this['inputElement']=document['createElement'](AV(0x7be)),this['inputElement'][AV(0x852)]=0x4,this[AV(0x2fc)][AV(0x12c)]='输入批注文字...\x0a支持复制粘贴图片\x20\x0a截图\x20ctrl+v',this['inputElement'][AV(0x9a8)]=AV(0x55e),this['inputElement'][AV(0x696)](AV(0xa41),E=>{const AW=AV;this[AW(0x72b)](E);});const i=document['createElement'](AV(0x521));i[AV(0xa1a)]['cssText']=AV(0x4d8);const j=document[AV(0x86)]('div');j[AV(0xa1a)]['cssText']=AV(0x5dd);const k=document['createElement'](AV(0x521));k['style']['cssText']=AV(0x5dd),this[AV(0x818)]=document['createElement'](AV(0x954)),this[AV(0x818)]['innerHTML']='🎤',this[AV(0x818)][AV(0x243)]='语音输入',this[AV(0x818)][AV(0xa1a)][AV(0x4ef)]=AV(0x487),this[AV(0x818)]['addEventListener']('mouseover',()=>{const AX=AV;this[AX(0x818)]['style']['backgroundColor']=AX(0x7b8);}),this['voiceButton'][AV(0x696)](AV(0x5e5),()=>{const AY=AV;this['voiceButton']['style'][AY(0x291)]='rgba(255,\x20255,\x20255,\x200.1)';}),this[AV(0x818)][AV(0x696)](AV(0x9e),E=>{E['preventDefault'](),this['startVoiceRecognition']();}),this['imageButton']=document['createElement'](AV(0x954)),this[AV(0xaa3)][AV(0xa38)]='🖼️',this[AV(0xaa3)][AV(0x243)]=AV(0x416),this[AV(0xaa3)]['style'][AV(0x4ef)]='\x0a\x20\x20\x20\x20\x20\x20padding:\x204px\x2010px;\x0a\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20rgba(255,\x20255,\x20255,\x200.2);\x0a\x20\x20\x20\x20\x20\x20background:\x20rgba(255,\x20255,\x20255,\x200.1);\x0a\x20\x20\x20\x20\x20\x20color:\x20#fff;\x0a\x20\x20\x20\x20\x20\x20border-radius:\x203px;\x0a\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20transition:\x20all\x200.2s;\x0a\x20\x20\x20\x20\x20\x20font-family:\x20inherit;\x0a\x20\x20\x20\x20',this[AV(0xaa3)][AV(0x696)](AV(0x266),()=>{const AZ=AV;this['imageButton'][AZ(0xa1a)][AZ(0x291)]=AZ(0x7b8);}),this[AV(0xaa3)]['addEventListener']('mouseout',()=>{const B0=AV;this[B0(0xaa3)][B0(0xa1a)]['backgroundColor']=B0(0x641);}),this[AV(0x4ce)]=document['createElement'](AV(0x678)),this['fileInput'][AV(0x736)]='file',this[AV(0x4ce)]['accept']='image/*',this['fileInput'][AV(0x5b7)]=!0x0,this['fileInput']['style']['display']=AV(0x4b9),this['fileInput']['addEventListener'](AV(0xae8),E=>{this['handleImageUpload'](E);}),this[AV(0xaa3)][AV(0x696)]('click',E=>{const B1=AV;E[B1(0x58c)](),this[B1(0x4ce)]?.[B1(0x9e)]();});const m=document[AV(0x86)](AV(0x954));m['innerHTML']='确定',m['title']='完成批注',m['style']['cssText']=AV(0x257),m['addEventListener']('mouseover',()=>{const B2=AV;m['style'][B2(0x291)]=B2(0x7fc);}),m[AV(0x696)]('mouseout',()=>{const B3=AV;m[B3(0xa1a)]['backgroundColor']='rgba(30,\x20136,\x20229,\x200.2)';}),m[AV(0x696)](AV(0x9e),E=>{E['preventDefault'](),this['completeAnnotation']();});const p=document['createElement']('button');p['innerHTML']='关闭',p['title']='取消批注',p['style']['cssText']='\x0a\x20\x20\x20\x20\x20\x20padding:\x204px\x2010px;\x0a\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20rgba(255,\x20255,\x20255,\x200.2);\x0a\x20\x20\x20\x20\x20\x20background:\x20rgba(255,\x20255,\x20255,\x200.1);\x0a\x20\x20\x20\x20\x20\x20color:\x20#fff;\x0a\x20\x20\x20\x20\x20\x20border-radius:\x203px;\x0a\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20transition:\x20all\x200.2s;\x0a\x20\x20\x20\x20\x20\x20font-family:\x20inherit;\x0a\x20\x20\x20\x20',p[AV(0x696)](AV(0x266),()=>{const B4=AV;p['style']['backgroundColor']=B4(0x7b8);}),p['addEventListener'](AV(0x5e5),()=>{const B5=AV;p['style']['backgroundColor']=B5(0x641);}),p['addEventListener'](AV(0x9e),E=>{const B6=AV;E[B6(0x58c)](),this['cancelAnnotation']();}),j['appendChild'](this['voiceButton']),j[AV(0x2cf)](this[AV(0xaa3)]),k['appendChild'](p),k['appendChild'](m),i[AV(0x2cf)](j),i['appendChild'](k),this[AV(0x555)]['appendChild'](this[AV(0x2fc)]),this[AV(0x8a)]=document[AV(0x86)]('div'),this[AV(0x8a)][AV(0xa1a)][AV(0x4ef)]='\x0a\x20\x20\x20\x20\x20\x20display:\x20none;\x0a\x20\x20\x20\x20\x20\x20position:\x20relative;\x0a\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20overflow:\x20hidden;\x0a\x20\x20\x20\x20\x20\x20border-radius:\x203px;\x0a\x20\x20\x20\x20\x20\x20background:\x20rgba(255,\x20255,\x20255,\x200.05);\x0a\x20\x20\x20\x20\x20\x20margin:\x208px\x200;\x0a\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20rgba(255,\x20255,\x20255,\x200.1);\x0a\x20\x20\x20\x20';const t=document['createElement']('div');t['style']['cssText']='\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20gap:\x208px;\x0a\x20\x20\x20\x20\x20\x20flex-wrap:\x20wrap;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20padding:\x208px;\x0a\x20\x20\x20\x20',this[AV(0x8a)][AV(0x2cf)](t),this[AV(0x555)]['appendChild'](this[AV(0x8a)]),this[AV(0x555)][AV(0x2cf)](i),this[AV(0x555)]['appendChild'](this[AV(0x4ce)]),document[AV(0x279)]['appendChild'](this[AV(0x555)]);const v=window[AV(0x7e7)],w=window[AV(0x349)],x=Math[AV(0x36b)](0x12c,this[AV(0x555)][AV(0x762)]),y=Math['max'](0x64,this['inputContainer'][AV(0x498)]);let z=b['x'],B=b['y']-y-0xa;z+x>v&&(z=v-x-0xa),z<0xa&&(z=0xa),B<0xa&&(B=b['y']+0xa),B+y>w&&(B=w-y-0xa),this[AV(0x555)]['style'][AV(0x5df)]=z+'px',this['inputContainer']['style']['top']=B+'px',setTimeout(()=>{const B7=AV;this[B7(0x2fc)]?.[B7(0xa30)]();},0x64),this[AV(0x2fc)]['addEventListener']('keydown',E=>{const B8=AV;E[B8(0x382)]===B8(0x9a4)&&!E['shiftKey']?(E['preventDefault'](),this['completeAnnotation']()):E['key']==='Escape'&&(E['preventDefault'](),this['cancelAnnotation']());});}['clearInput'](){const B9=a0bL;this[B9(0x555)]&&(document[B9(0x279)]['removeChild'](this['inputContainer']),this[B9(0x555)]=null,this[B9(0x2fc)]=null,this[B9(0x818)]=null,this[B9(0xaa3)]=null,this['fileInput']=null,this[B9(0x8a)]=null,this['isInputMode']=!0x1);}['startVoiceRecognition'](){const Bb=a0bL;if(!this['recognition']){Pe['error'](Bb(0x68a));return;}try{this[Bb(0x75b)][Bb(0x511)](),this['voiceButton']&&(this[Bb(0x818)][Bb(0xa1a)][Bb(0x291)]='#e6f7ff');}catch(b){console['error'](Bb(0x4c2),b),Pe[Bb(0x644)]('启动语音识别失败,请重试');}}[a0bL(0x569)](b){const Bf=a0bL,c=b[Bf(0x4b7)];if(!c[Bf(0x112)]||c['files']['length']===0x0)return;const d=this['MAX_IMAGES']-this['currentImageUrls']['length'];if(c['files'][Bf(0x3ea)]>d){Pe[Bf(0x644)]('最多只能上传\x20'+this[Bf(0xaf2)]+Bf(0xaa7)+d+'\x20张');return;}const f=Array['from'](c[Bf(0x112)]);this[Bf(0xab2)](f);}['handlePaste'](b){const Bj=a0bL,d=b[Bj(0x9a6)];if(!d)return;const f=d[Bj(0x6b9)];if(!f)return;const g=[];for(let h=0x0;h<f['length'];h++){const i=f[h];if(i['type'][Bj(0x3ae)]('image')===0x0){const j=i['getAsFile']();j&&g[Bj(0x4f5)](j);}}g[Bj(0x3ea)]>0x0&&(b['preventDefault'](),this[Bj(0xab2)](g));}[a0bL(0xab2)](b){const Bk=a0bL,c=this[Bk(0xaf2)]-this['currentImageUrls']['length'];if(b['length']>c){Pe[Bk(0x644)]('最多只能上传\x20'+this['MAX_IMAGES']+'\x20张图片,还可以上传\x20'+c+'\x20张');return;}let d=0x0,f=0x0;b['forEach'](g=>{const Bm=Bk;if(this[Bm(0x593)]['length']>=this['MAX_IMAGES'])return;const h=new FileReader();h[Bm(0x2f2)]=i=>{const Bp=Bm,j=i['target']?.['result'];this['resizeImage'](j,this['MAX_IMAGE_SIZE'])[Bp(0x82c)](k=>{const Bq=Bp;this['currentImageUrls']['push'](k),f++,d++,d===b['length']&&(this['updateImagePreview'](),Pe['info'](Bq(0x447)+f+Bq(0x7d5)));})[Bp(0x217)](k=>{const Bv=Bp;console['error'](Bv(0x7cb),k),d++,d===b[Bv(0x3ea)]&&(this['updateImagePreview'](),Pe[Bv(0xbc)]('成功添加\x20'+f+Bv(0x7d5)));});},h[Bm(0x9d0)]=()=>{const Bw=Bm;console['error']('图片读取失败'),d++,d===b['length']&&(this['updateImagePreview'](),Pe['info'](Bw(0x447)+f+Bw(0x7d5)));},h[Bm(0x1d2)](g);});}['resizeImage'](b,c){return new Promise((d,f)=>{const Bz=a0b,g=document['createElement']('canvas'),h=g['getContext']('2d'),i=new Image();i['onload']=()=>{const Bx=a0b;let {width:j,height:k}=i;if(j>k?j>c&&(k*=c/j,j=c):k>c&&(j*=c/k,k=c),g[Bx(0xb1f)]=j,g[Bx(0x19e)]=k,h){h['drawImage'](i,0x0,0x0,j,k);const m=g[Bx(0x102)]('image/jpeg',0.8);d(m);}else f(new Error(Bx(0xa22)));},i['onerror']=()=>{const By=a0b;f(new Error(By(0x927)));},i[Bz(0x6c9)]=b;});}[a0bL(0x734)](){const BB=a0bL;if(!this[BB(0x8a)])return;if(this['imagePreviewContainer'][BB(0xa38)]='',this['currentImageUrls'][BB(0x3ea)]===0x0){this['imagePreviewContainer'][BB(0xa1a)]['display']=BB(0x4b9);return;}const b=document[BB(0x86)](BB(0x521));b[BB(0xa1a)][BB(0x4ef)]='\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20gap:\x208px;\x0a\x20\x20\x20\x20\x20\x20flex-wrap:\x20wrap;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20padding:\x208px;\x0a\x20\x20\x20\x20',this[BB(0x593)][BB(0xb8)]((d,f)=>{const BC=BB,g=document['createElement']('div');g['style']['cssText']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20position:\x20relative;\x0a\x20\x20\x20\x20\x20\x20\x20\x20width:\x2080px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20height:\x2080px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x203px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20overflow:\x20hidden;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20rgba(255,\x20255,\x20255,\x200.1);\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20rgba(255,\x20255,\x20255,\x200.2);\x0a\x20\x20\x20\x20\x20\x20';const h=document[BC(0x86)](BC(0x271));h[BC(0x6c9)]=d,h[BC(0xa1a)][BC(0x4ef)]=BC(0x424);const i=document[BC(0x86)](BC(0x954));i['innerHTML']='✕',i['title']='删除图片',i['style'][BC(0x4ef)]='\x0a\x20\x20\x20\x20\x20\x20\x20\x20position:\x20absolute;\x0a\x20\x20\x20\x20\x20\x20\x20\x20top:\x202px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20right:\x202px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20rgba(244,\x2067,\x2054,\x200.2);\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20white;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20rgba(244,\x2067,\x2054,\x200.4);\x0a\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20width:\x2018px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20height:\x2018px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x203px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20transition:\x20all\x200.2s;\x0a\x20\x20\x20\x20\x20\x20\x20\x20z-index:\x202;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20inherit;\x0a\x20\x20\x20\x20\x20\x20',i[BC(0x696)](BC(0x266),()=>{const BD=BC;i[BD(0xa1a)]['backgroundColor']='rgba(244,\x2067,\x2054,\x200.3)';}),i[BC(0x696)]('mouseout',()=>{const BE=BC;i[BE(0xa1a)][BE(0x291)]='rgba(244,\x2067,\x2054,\x200.2)';}),i['addEventListener']('click',k=>{const BF=BC;k[BF(0x58c)](),this['removeImage'](f);});const j=document['createElement']('div');j['textContent']=''+(f+0x1),j['style']['cssText']=BC(0x368),g[BC(0x2cf)](h),g[BC(0x2cf)](i),g['appendChild'](j),b[BC(0x2cf)](g);}),this['imagePreviewContainer']['appendChild'](b),this['imagePreviewContainer'][BB(0xa1a)][BB(0x46e)]=BB(0x27c);}[a0bL(0xda)](b){const BG=a0bL;b>=0x0&&b<this[BG(0x593)]['length']&&(this[BG(0x593)][BG(0x230)](b,0x1),this['updateImagePreview'](),Pe[BG(0xbc)]('图片已删除'));}['clearImages'](){const BH=a0bL;this[BH(0x593)]=[],this['updateImagePreview']();}[a0bL(0x3a7)](i,j){const BI=a0bL,k=document[BI(0x86)](BI(0x521));k[BI(0xa1a)][BI(0x4ef)]='\x0a\x20\x20\x20\x20\x20\x20position:\x20fixed;\x0a\x20\x20\x20\x20\x20\x20top:\x200;\x0a\x20\x20\x20\x20\x20\x20left:\x200;\x0a\x20\x20\x20\x20\x20\x20right:\x200;\x0a\x20\x20\x20\x20\x20\x20bottom:\x200;\x0a\x20\x20\x20\x20\x20\x20background:\x20rgba(0,\x200,\x200,\x200.85);\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20z-index:\x2010001;\x0a\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20';const t=document[BI(0x86)](BI(0x521));t[BI(0xa1a)]['cssText']=BI(0x1a7);const v=document['createElement'](BI(0x521));v['style']['cssText']='\x0a\x20\x20\x20\x20\x20\x20position:\x20relative;\x0a\x20\x20\x20\x20\x20\x20max-width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20max-height:\x2070vh;\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20gap:\x2010px;\x0a\x20\x20\x20\x20';const w=document[BI(0x86)]('button');w['innerHTML']='‹',w[BI(0x243)]=BI(0x7c8),w[BI(0xa1a)]['cssText']=BI(0x3a5),w[BI(0x696)](BI(0x266),()=>{const BJ=BI;w['style'][BJ(0x291)]=BJ(0x86e);}),w[BI(0x696)]('mouseout',()=>{const BK=BI;w[BK(0xa1a)][BK(0x291)]='rgba(255,\x20255,\x20255,\x200.2)';});const x=document['createElement']('button');x[BI(0xa38)]='›',x['title']='下一张',x['style'][BI(0x4ef)]=BI(0x3a5),x[BI(0x696)]('mouseover',()=>{const BL=BI;x['style']['backgroundColor']=BL(0x86e);}),x['addEventListener']('mouseout',()=>{const BM=BI;x['style']['backgroundColor']=BM(0x7b8);});const y=document[BI(0x86)](BI(0x521));y[BI(0xa1a)]['cssText']='\x0a\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20max-width:\x2080%;\x0a\x20\x20\x20\x20\x20\x20max-height:\x20100%;\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20position:\x20relative;\x0a\x20\x20\x20\x20';const z=document['createElement'](BI(0x271));z[BI(0x6c9)]=i[0x0],z['style'][BI(0x4ef)]='\x0a\x20\x20\x20\x20\x20\x20max-width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20max-height:\x2070vh;\x0a\x20\x20\x20\x20\x20\x20object-fit:\x20contain;\x0a\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20box-shadow:\x200\x204px\x2020px\x20rgba(0,\x200,\x200,\x200.5);\x0a\x20\x20\x20\x20';const B=document['createElement']('div');B['textContent']=BI(0x974)+i['length'],B['style'][BI(0x4ef)]=BI(0x441),y['appendChild'](z),y['appendChild'](B);const F=document['createElement']('div');F['style']['cssText']=BI(0xa16),i[BI(0xb8)]((U,a0)=>{const BN=BI,a1=document['createElement'](BN(0x521));a1['style'][BN(0x4ef)]='\x0a\x20\x20\x20\x20\x20\x20\x20\x20width:\x2060px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20height:\x2060px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20overflow:\x20hidden;\x0a\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x202px\x20solid\x20'+(a0===0x0?'#377ee8':BN(0xa5c))+';\x0a\x20\x20\x20\x20\x20\x20\x20\x20transition:\x20border-color\x200.2s;\x0a\x20\x20\x20\x20\x20\x20';const a2=document['createElement'](BN(0x271));a2['src']=U,a2['style'][BN(0x4ef)]='\x0a\x20\x20\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20height:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20object-fit:\x20cover;\x0a\x20\x20\x20\x20\x20\x20',a1['addEventListener']('click',()=>{const BO=BN;z['src']=U,B['textContent']=a0+0x1+BO(0x655)+i[BO(0x3ea)],F[BO(0xa2f)]('div')['forEach']((a3,a4)=>{const BP=BO;a3['style']['borderColor']=a4===a0?BP(0x34e):BP(0xa5c);});}),a1[BN(0x2cf)](a2),F['appendChild'](a1);});const H=document[BI(0x86)](BI(0x521));H['textContent']=j,H[BI(0xa1a)][BI(0x4ef)]='\x0a\x20\x20\x20\x20\x20\x20color:\x20#fff;\x0a\x20\x20\x20\x20\x20\x20font-size:\x2016px;\x0a\x20\x20\x20\x20\x20\x20text-align:\x20center;\x0a\x20\x20\x20\x20\x20\x20padding:\x208px;\x0a\x20\x20\x20\x20\x20\x20background:\x20rgba(255,\x20255,\x20255,\x200.1);\x0a\x20\x20\x20\x20\x20\x20border-radius:\x204px;\x0a\x20\x20\x20\x20\x20\x20max-width:\x2080%;\x0a\x20\x20\x20\x20\x20\x20align-self:\x20center;\x0a\x20\x20\x20\x20';const L=document[BI(0x86)](BI(0x954));L[BI(0xa38)]='✕',L[BI(0x243)]='关闭',L['style']['cssText']='\x0a\x20\x20\x20\x20\x20\x20align-self:\x20center;\x0a\x20\x20\x20\x20\x20\x20background:\x20rgba(220,\x2038,\x2038,\x200.9);\x0a\x20\x20\x20\x20\x20\x20color:\x20white;\x0a\x20\x20\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20font-size:\x2020px;\x0a\x20\x20\x20\x20\x20\x20width:\x2040px;\x0a\x20\x20\x20\x20\x20\x20height:\x2040px;\x0a\x20\x20\x20\x20\x20\x20border-radius:\x2050%;\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20transition:\x20background-color\x200.2s;\x0a\x20\x20\x20\x20',L[BI(0x696)](BI(0x266),()=>{const BQ=BI;L[BQ(0xa1a)][BQ(0x291)]='rgba(185,\x2028,\x2028,\x200.95)';}),L['addEventListener']('mouseout',()=>{const BR=BI;L['style'][BR(0x291)]='rgba(220,\x2038,\x2038,\x200.9)';}),L[BI(0x696)]('click',U=>{const BS=BI;U['stopPropagation'](),document['body'][BS(0x197)](k);});let N=0x0;const R=U=>{const BT=BI;U>=0x0&&U<i[BT(0x3ea)]&&(N=U,z[BT(0x6c9)]=i[U],B['textContent']=U+0x1+BT(0x655)+i['length'],F['querySelectorAll'](BT(0x521))[BT(0xb8)]((a0,a1)=>{a0['style']['borderColor']=a1===U?'#377ee8':'transparent';}));};w[BI(0x696)]('click',()=>{const BU=BI;R((N-0x1+i['length'])%i[BU(0x3ea)]);}),x[BI(0x696)]('click',()=>{R((N+0x1)%i['length']);});const S=U=>{const BV=BI;U['key']===BV(0x564)?R((N-0x1+i['length'])%i['length']):U['key']===BV(0x856)&&R((N+0x1)%i['length']);};document[BI(0x696)]('keydown',S),v[BI(0x2cf)](w),v['appendChild'](y),v[BI(0x2cf)](x),t[BI(0x2cf)](v),t['appendChild'](F),t[BI(0x2cf)](H),t[BI(0x2cf)](L),k[BI(0x2cf)](t),k[BI(0x696)]('click',U=>{const BW=BI;U[BW(0x4b7)]===k&&(document[BW(0x279)][BW(0x197)](k),document[BW(0xcf)](BW(0x137),S));});const T=U=>{const BX=BI;U['key']==='Escape'&&(document[BX(0xcf)](BX(0x137),T),document['removeEventListener']('keydown',S),document[BX(0x279)]['contains'](k)&&document[BX(0x279)]['removeChild'](k));};document[BI(0x696)](BI(0x137),T),document['body'][BI(0x2cf)](k);}async[a0bL(0x2ff)](){const BY=a0bL;if(!this[BY(0x91c)]||!this[BY(0x2fc)]){this[BY(0xab5)]();return;}const b=this['inputElement']['value'][BY(0x135)]();if(!b){this[BY(0xab5)]();return;}if(this[BY(0x505)])try{this[BY(0x394)]();const s=await this[BY(0x505)]({'text':b,'anchorPoint':this[BY(0x91c)][BY(0x471)](),'imageUrls':this['currentImageUrls']['length']>0x0?this['currentImageUrls']:void 0x0});if(this['hideLoading'](),!s){this[BY(0xab5)]();return;}}catch(t){console['error']('批注添加回调失败:',t),Pe['error'](BY(0x1d3)),this[BY(0x8c9)](),this[BY(0xab5)]();return;}const f=new a0c(0x0,0x1,0x0)['multiplyScalar'](this['viewer'][BY(0x283)](this['anchorPoint'])*0x5),g=this['anchorPoint'][BY(0x471)]()['add'](f),i=this['getCurrentView'](),j=i['success']?i[BY(0x340)]:void 0x0,k=this[BY(0x613)](this['anchorPoint'],g);let m=b;this['currentImageUrls']['length']>0x0&&(m='\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22bmv-annotation-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22bmv-annotation-text\x22>'+b+BY(0x2c6)+this[BY(0x593)]['length']+BY(0x888));const p=J({'className':BY(0x860),'html':m,'click':({event:v})=>{const BZ=BY;v['stopPropagation']();const w=p['userData']?.[BZ(0x899)],x=p['userData']?.['text']||b;w&&w['length']>0x0&&this[BZ(0x3a7)](w,x),j&&this[BZ(0x84f)](j)['then'](y=>{const C0=BZ;y[C0(0x46f)]||console[C0(0x644)](C0(0x260),y['message']);});}});p[BY(0x6f)]={'imageUrls':this['currentImageUrls'][BY(0x3ea)]>0x0?[...this[BY(0x593)]]:void 0x0,'text':b},p[BY(0x1de)]&&p['element'][BY(0x696)](BY(0x6cd),v=>{const C1=BY;v[C1(0x58c)]();},{'passive':!0x1}),p[BY(0x1b7)][BY(0x3fe)](g),this[BY(0x440)]?.['add'](p),this['annotations']['push']({'anchorPoint':this['anchorPoint'][BY(0x471)](),'textPoint':g['clone'](),'line':k,'label':p,'text':b,'imageUrls':this[BY(0x593)][BY(0x3ea)]>0x0?[...this['currentImageUrls']]:void 0x0,'viewCoordinates':j}),this[BY(0x48e)](),this[BY(0x91c)]=null,this['currentImageUrls']=[],this['tooltip']=BY(0x8db),this[BY(0x7b5)]();}[a0bL(0xab5)](){const C2=a0bL;this['clearInput'](),this['anchorPoint']=null,this[C2(0x593)]=[],this['tooltip']=C2(0x8db),this['removeTempAnchorMarker']();}[a0bL(0x9fc)](){const C3=a0bL;if(!this['anchorPoint']||!this[C3(0x440)])return;this[C3(0x7b5)]();const b=J({'className':'bmv-annotation-anchor-marker','html':'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20height:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#ff4757;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x202px\x20solid\x20white;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2050%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20transform:\x20translate(-50%,\x20-50%);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20box-shadow:\x200\x200\x2010px\x20rgba(255,\x2071,\x2087,\x200.8);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20animation:\x20pulse\x202s\x20infinite;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<style>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@keyframes\x20pulse\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x200%\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20transform:\x20translate(-50%,\x20-50%)\x20scale(1);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x2050%\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20transform:\x20translate(-50%,\x20-50%)\x20scale(1.5);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x200.7;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20100%\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20transform:\x20translate(-50%,\x20-50%)\x20scale(1);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20</style>\x0a\x20\x20\x20\x20\x20\x20'});b[C3(0x1b7)]['copy'](this[C3(0x91c)]),this['scene']['add'](b),this[C3(0x664)]=b;}[a0bL(0x7b5)](){const C4=a0bL;this['tempAnchorMarker']&&this['scene']&&(this[C4(0x440)]['remove'](this[C4(0x664)]),this[C4(0x664)]=null);}['drawLine'](b,c){const C5=a0bL;if(!this[C5(0x440)])throw new Error('Scene\x20is\x20not\x20available');const d=new Ae();d['setPositions']([b['x'],b['y'],b['z'],c['x'],c['y'],c['z']]);const f=new ne({'color':fg,'depthTest':!0x0,'linewidth':0x3,'opacity':0x1,'resolution':new a0l(window['innerWidth'],window['innerHeight']),'transparent':!0x0}),g=new de(d,f);return g['userData']['isAnnotationLine']=!0x0,g['userData']['annotationIndex']=this[C5(0x3a4)]['length'],this[C5(0x440)]['add'](g),g;}['worldToScreen'](b){const C6=a0bL;if(!this['camera']||!this[C6(0x9b)])return new a0l(0x0,0x0);const c=b[C6(0x471)]();c['project'](this['camera']);const d=this['renderer'][C6(0x9da)]['getBoundingClientRect'](),f=(c['x']*0.5+0.5)*d[C6(0xb1f)],g=(-c['y']*0.5+0.5)*d[C6(0x19e)];return new a0l(f,g);}['clear'](){const C7=a0bL;this[C7(0x440)]&&(this[C7(0x3a4)]['forEach'](b=>{const C8=C7;this[C8(0x440)]?.[C8(0x592)](b['line']),this[C8(0x440)]?.['remove'](b['label']);}),this[C7(0x3a4)]=[],this[C7(0x48e)]());}['removeLast'](){const C9=a0bL;if(this['annotations'][C9(0x3ea)]>0x0){const b=this[C9(0x3a4)][C9(0x249)]();b&&(this[C9(0x440)]?.[C9(0x592)](b[C9(0x50a)]),this['scene']?.['remove'](b['label']));}}[a0bL(0x2ba)](b){const Cb=a0bL;this[Cb(0x440)]&&this['annotations']['forEach'](c=>{const Cf=Cb;c['line'][Cf(0x12e)]=b,c['label'][Cf(0x12e)]=b;});}[a0bL(0xa1d)](){return this['annotations'];}async[a0bL(0x1eb)](b){const Cj=a0bL;if(b<0x0||b>=this[Cj(0x3a4)][Cj(0x3ea)])return{'success':!0x1,'message':Cj(0x355)};const c=this['annotations'][b];return c[Cj(0xac8)]?await this[Cj(0x84f)](c['viewCoordinates']):{'success':!0x1,'message':Cj(0x9a9)};}async['restoreViewByAnnotation'](b){const Ck=a0bL;return b['viewCoordinates']?this['restoreView'](b[Ck(0xac8)]):{'success':!0x1,'message':'该批注没有视角信息'};}['restoreAnnotations'](b){const Cm=a0bL;if(!Array['isArray'](b))return{'success':!0x1,'message':Cm(0x8a6),'restoredCount':0x0};try{this[Cm(0x65f)]();let d=0x0;for(const f of b){if(!f[Cm(0x280)]||!f[Cm(0x91c)]||!f['textPoint'])continue;const g=new a0c(f['anchorPoint']['x'],f['anchorPoint']['y'],f[Cm(0x91c)]['z']),i=new a0c(f[Cm(0x50f)]['x'],f[Cm(0x50f)]['y'],f['textPoint']['z']),j=this['drawLine'](g,i);let k=f['text'];f['imageUrls']&&f[Cm(0x899)]['length']>0x0&&(k='\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22bmv-annotation-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22bmv-annotation-text\x22>'+f['text']+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22bmv-annotation-image-indicator\x22>🖼️×'+f['imageUrls']['length']+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20');const m=J({'className':'bmv-annotation-label','html':k,'click':({event:p})=>{const Cn=Cm;p[Cn(0xa8e)]();const t=m[Cn(0x6f)]?.['imageUrls'],v=m['userData']?.[Cn(0x280)]||f['text'];t&&t[Cn(0x3ea)]>0x0&&this[Cn(0x3a7)](t,v),f[Cn(0xac8)]&&this['restoreView'](f['viewCoordinates'])[Cn(0x82c)](w=>{const Cp=Cn;w[Cp(0x46f)]||console[Cp(0x644)]('恢复视角失败:',w[Cp(0x193)]);});}});m[Cm(0x6f)]={'imageUrls':f['imageUrls']&&f[Cm(0x899)]['length']>0x0?[...f['imageUrls']]:void 0x0,'text':f['text']},m[Cm(0x1de)]&&m[Cm(0x1de)]['addEventListener'](Cm(0x6cd),p=>{const Cq=Cm;p[Cq(0x58c)]();},{'passive':!0x1}),m[Cm(0x1b7)]['copy'](i),this['scene']?.['add'](m),this[Cm(0x3a4)]['push']({'anchorPoint':g[Cm(0x471)](),'textPoint':i['clone'](),'line':j,'label':m,'text':f[Cm(0x280)],'imageUrls':f[Cm(0x899)]&&f['imageUrls'][Cm(0x3ea)]>0x0?[...f['imageUrls']]:void 0x0,'viewCoordinates':f['viewCoordinates']}),d++;}return{'success':!0x0,'message':Cm(0x832)+d+'\x20条批注','restoredCount':d};}catch(p){return console[Cm(0x644)]('恢复批注失败:',p),{'success':!0x1,'message':Cm(0x76),'restoredCount':0x0};}}['clearAnnotations'](){const Cv=a0bL;for(const b of this[Cv(0x3a4)])this['scene']?.[Cv(0x592)](b[Cv(0x50a)]),this[Cv(0x440)]?.['remove'](b['label']);this[Cv(0x3a4)]=[];}}const Hs=0x808080,mg=0x2,bg=0.8;class Eg extends Se{constructor(b){const Cw=a0bL;super(b),C(this,Cw(0x9c6),[]),C(this,'visible',!0x0);}['onActivate'](){}['onDeactivate'](){}['drawLine'](b,d,f=Hs){const Cx=a0bL;if(!this[Cx(0x440)])throw new Error('Scene\x20is\x20not\x20available');const g=new Ae();g['setPositions']([b['x'],b['y'],b['z'],d['x'],d['y'],d['z']]);const h=new ne({'color':f,'depthTest':!0x0,'linewidth':mg,'opacity':bg,'resolution':new a0l(window[Cx(0x7e7)],window['innerHeight'])}),i=new de(g,h);return i[Cx(0x6f)]['isDimensionLine']=!0x0,this[Cx(0x440)]['add'](i),i;}[a0bL(0x820)](b){const Cy=a0bL;!b||b['length']===0x0||!this[Cy(0x440)]||b[Cy(0xb8)](i=>{const Cz=Cy;try{const j=new a0c(i['start'][0x0],i['start'][0x1],i['start'][0x2]),k=new a0c(i['end'][0x0],i['end'][0x1],i[Cz(0x854)][0x2]),t=new a0c(j['x']+i['offset_vector'][0x0],j['y']+i[Cz(0x6a0)][0x1],j['z']+i['offset_vector'][0x2]),z=new a0c()['subVectors'](k,j),F=z[Cz(0x3ea)]();if(F<0.0001){console['warn'](Cz(0x825));return;}const H=z[Cz(0x471)]()[Cz(0x6ff)](),L=new a0c()[Cz(0x642)](t,j),N=L['clone']()[Cz(0x7c9)](H),R=L[Cz(0x471)]()['sub'](H[Cz(0x471)]()['multiplyScalar'](N));let U;if(R[Cz(0x3ea)]()>0.0001)U=R['normalize']();else{const ab=new a0c(0x0,0x1,0x0),aj=new a0c()['crossVectors'](H,ab);if(aj[Cz(0x3ea)]()>0.0001)U=aj[Cz(0x6ff)]();else{const ak=new a0c(0x1,0x0,0x0);U=new a0c()[Cz(0x9f3)](H,ak)['normalize']();}}let a0;if(i[Cz(0x812)]!==void 0x0&&i[Cz(0x812)]!==null){const am=typeof i['offset_distance']=='string'?parseFloat(i['offset_distance']):i['offset_distance'];if(!isNaN(am)&&am>0x0)a0=am;else{const an=Math[Cz(0x855)](R['length']()),ap=F*0.2;a0=Math['max'](an,ap);}}else{const aq=Math['abs'](R['length']()),av=F*0.2;a0=Math[Cz(0x36b)](aq,av);}const a1=j[Cz(0x471)]()[Cz(0x577)](U['clone']()[Cz(0x433)](a0)),a2=k[Cz(0x471)]()['add'](U[Cz(0x471)]()['multiplyScalar'](a0)),a3=this[Cz(0x613)](j,a1,Hs),a4=this[Cz(0x613)](k,a2,Hs),a5=this['drawLine'](a1,a2,Hs),a6=J({'className':'dimension-endpoint'});a6[Cz(0x1b7)][Cz(0x3fe)](a1),this['scene']&&this['scene']['add'](a6),setTimeout(()=>{const CB=Cz,aw=a6[CB(0x1de)];aw&&(aw[CB(0xa1a)]['pointerEvents']='none');},0x0);const a7=J({'className':Cz(0x956)});a7['position'][Cz(0x3fe)](a2),this[Cz(0x440)]&&this[Cz(0x440)][Cz(0x577)](a7),setTimeout(()=>{const aw=a7['element'];aw&&(aw['style']['pointerEvents']='none');},0x0);const a8=new a0c()['addVectors'](a1,a2)['multiplyScalar'](0.5),a9=J({'className':Cz(0x634),'html':i[Cz(0x280)]});a9[Cz(0x1b7)][Cz(0x3fe)](a8),this[Cz(0x440)]&&this['scene']['add'](a9),setTimeout(()=>{const CC=Cz,aw=a9['element'];if(aw){aw[CC(0xa1a)]['pointerEvents']=CC(0x4b9);const ax=aw['querySelector'](CC(0x427));ax&&(ax['style']['pointerEvents']=CC(0x4b9));}},0x0),this[Cz(0x9c6)][Cz(0x4f5)]({'startPoint':j[Cz(0x471)](),'endPoint':k[Cz(0x471)](),'textPoint':a8['clone'](),'dimensionLine':a5,'startExtensionLine':a3,'endExtensionLine':a4,'startEndpointMarker':a6,'endEndpointMarker':a7,'label':a9,'text':i['text']});}catch(aw){console['error']('加载尺寸标注失败:',aw,i);}});}['setVisible'](b){this['visible']=b,this['dimensions']['forEach'](c=>{const CD=a0b;c['dimensionLine'][CD(0x12e)]=b,c[CD(0x412)]['visible']=b,c[CD(0x469)][CD(0x12e)]=b,c['startEndpointMarker']['visible']=b,c['endEndpointMarker']['visible']=b,c[CD(0x5ff)][CD(0x12e)]=b;});}['getVisible'](){const CE=a0bL;return this[CE(0x12e)];}[a0bL(0xaaa)](){const CF=a0bL;return this['setVisible'](!this['visible']),this[CF(0x12e)];}['clear'](){const CG=a0bL;if(!this[CG(0x440)])return;const b=this[CG(0x440)];this[CG(0x9c6)][CG(0xb8)](c=>{const CH=CG;b['remove'](c[CH(0x3d6)]),b[CH(0x592)](c[CH(0x412)]),b['remove'](c['endExtensionLine']),b[CH(0x592)](c[CH(0x39d)]),b[CH(0x592)](c[CH(0x83d)]),b['remove'](c['label']);}),this[CG(0x9c6)]=[],this[CG(0x12e)]=!0x0;}}const Qt=class Qt extends a0bm{constructor(b){const CI=a0bL;super(),C(this,CI(0x5f8),[]),C(this,CI(0x67c),null),this[CI(0x2ee)]=b;}[a0bL(0x9fd)](b){this['pages']=b;}[a0bL(0x776)](b){this['pages']['push'](b);}['addPages'](b){const CJ=a0bL;this[CJ(0x5f8)]['push'](...b);}async['activateSceneByName'](b,c=!0x1){const CK=a0bL,d=this[CK(0x5f8)]['find'](f=>f[CK(0x74)]===b);return d?(await this['toPage'](d,c),!0x0):(console['warn'](CK(0xde)+b+'\x22\x20not\x20found'),!0x1);}[a0bL(0x900)](){return this['currentPage']?.['name']||null;}['getAllSceneNames'](){const CL=a0bL;return this[CL(0x5f8)][CL(0x428)](b=>b['name']);}async['toPageCamera'](b){const CM=a0bL,{camera:c}=b;c[CM(0x91)]?(this['viewer'][CM(0x494)][CM(0x851)](),this['viewer']['toggleCamera']('perspective'),this['viewer'][CM(0x710)][CM(0x73c)]!==c[CM(0x73c)]&&(this[CM(0x2ee)]['camera']['fov']=c[CM(0x73c)]),this['viewer']['camera'][CM(0x4d4)]()):(this['viewer'][CM(0x970)](CM(0x3d9)),this['viewer']['updateOrthographicCamera'](c['height']));const d=di(c['position']),f=di(c[CM(0x4b7)]);await this['viewer'][CM(0x9e0)][CM(0x732)](d['x'],d['y'],d['z'],f['x'],f['y'],f['z'],!0x1);}async['toPage'](b,f=!0x1){const CN=a0bL;this[CN(0x769)]({'type':Qt['EVENTS'][CN(0x7b6)],'page':b});try{const {camera:g,hidden_layers_index:i=[],section_planes:j=[],display_section:k}=b,m=this[CN(0x2ee)],p=m[CN(0x9d1)],t=k===!0x0?j:[];p['resetSectionPlanes'](t),m[CN(0xa25)][CN(0x2d0)](i),m['updateMeshVisibleByLayer'](),m['controls']['enabled']=!0x1,this['_configureCamera'](g),this[CN(0x769)]({'type':Qt['EVENTS']['PAGE_CHANGE_PROGRESS'],'stage':CN(0x869),'page':b}),await m[CN(0x9e0)][CN(0x95e)]();const v=di(g['position']),w=di(g['target']);await m[CN(0x9e0)][CN(0x732)](v['x'],v['y'],v['z'],w['x'],w['y'],w['z'],!0x1),this['dispatchEvent']({'type':Qt['EVENTS'][CN(0x619)],'stage':'cameraPositioned','page':b}),this[CN(0x3d3)](),t['length']>0x0&&m[CN(0x4cd)][CN(0xc4)](CN(0x529),!0x1,m[CN(0x15b)][CN(0xa1a)]['ssao']),this[CN(0x67c)]=b;}catch(x){console['error']('Error\x20changing\x20scene\x20page:',x),this[CN(0x769)]({'type':Qt[CN(0x493)]['PAGE_CHANGE_ERROR'],'page':b,'error':x});}finally{this['viewer']['controls']['enabled']=!0x0,this[CN(0x769)]({'type':Qt[CN(0x493)][CN(0x807)],'page':this['currentPage'],'success':!0x0});}}['_configureCamera'](b){const CO=a0bL,c=this[CO(0x2ee)];b['perspective']?(c['toggleCamera'](CO(0x91)),c[CO(0x710)]['fov']!==b[CO(0x73c)]&&(c['camera']['fov']=b[CO(0x73c)])):(c[CO(0x970)]('orthographic'),c[CO(0xa0d)](b['height']));}['_updateOrbitBehavior'](){Promise['resolve']()['then'](()=>{const CP=a0b,b=this['viewer'];b[CP(0x15b)]['camera']['orbitBehavior']===CP(0x2a3)&&b['setOrbitBehavior']('fixed');});}};C(Qt,a0bL(0x493),{'PAGE_CHANGE_START':a0bL(0x670),'PAGE_CHANGE_PROGRESS':a0bL(0x77a),'PAGE_CHANGE_COMPLETE':'pageChangeComplete','PAGE_CHANGE_ERROR':a0bL(0x3f8)});let kr=Qt;class Cg{constructor(b){const CQ=a0bL;C(this,'layers',[]),this[CQ(0x2ee)]=b;}[a0bL(0x9fd)](b){const CR=a0bL;this[CR(0x643)]=b;}[a0bL(0x2d0)](b){this['layers']['forEach']((c,d)=>{const CS=a0b;c[CS(0x12e)]=!b['includes'](d);});}['getHiddenIndices'](){const CT=a0bL;return this[CT(0x643)][CT(0x52f)]((b,c,d)=>(c['visible']===!0x1&&b['push'](d),b),[]);}['getTreeStructure'](){const b=[],c=new Map();return this['layers']['forEach']((f,g)=>{const CU=a0b;let i=[];f[CU(0xc8)]===null||f[CU(0xc8)]===void 0x0?i=[]:typeof f[CU(0xc8)]==CU(0x45f)?i=[f[CU(0xc8)]]:Array[CU(0x335)](f['folder'])&&(i=f['folder']);const j={'type':CU(0x804),'name':f[CU(0xa61)]||f[CU(0x74)]||CU(0x4a3),'layer':f,'layerIndex':g,'id':f['id'],'path':f[CU(0x887)],'display_name':f['display_name'],'folder':f['folder'],'visible':f[CU(0x12e)],'color':f['color']};if(i[CU(0x3ea)]===0x0){b[CU(0x4f5)](j);return;}let k='',m=b;for(let p=0x0;p<i[CU(0x3ea)];p++){const v=i[p],w=k;k=w?w+'/'+v:v;let x=c['get'](k);x||(x={'type':'folder','name':v,'children':[]},c[CU(0x9fd)](k,x),m[CU(0x4f5)](x)),p===i['length']-0x1?x[CU(0x56d)][CU(0x4f5)](j):m=x[CU(0x56d)];}}),b;}['getTreeStructureByPath'](b){const CV=a0bL,c=b[CV(0x110)]('-')['filter'](h=>h[CV(0x3ea)]>0x0);if(c['length']<0x1||c[CV(0x3ea)]>0x2)return console[CV(0x5fb)](CV(0x68b)+b+'\x22'),[];const d=[];if(this[CV(0x643)]['forEach']((i,j)=>{const CW=CV;if(!i['path']||!Array[CW(0x335)](i['path']))return;const k=i['path'];if(k['length']<c['length'])return;let m=!0x0;for(let p=0x0;p<c['length'];p++)if(k[p]?.[CW(0x80b)]()!==c[p]?.[CW(0x80b)]()){m=!0x1;break;}m&&d[CW(0x4f5)]({'layer':i,'index':j,'path':k});}),d[CV(0x3ea)]===0x0)return[];const f=[],g=new Map();return d[CV(0xb8)](({layer:i,index:j,path:k})=>{const CX=CV,m=k[CX(0x504)](c[CX(0x3ea)]),v={'type':CX(0x804),'name':i[CX(0xa61)]||i[CX(0x74)]||'未命名图层','layer':i,'layerIndex':j,'id':i['id'],'path':i[CX(0x887)],'display_name':i[CX(0xa61)],'folder':i['folder'],'visible':i['visible'],'color':i['color']};if(m['length']===0x0){f['push'](v);return;}let w='',x=f;for(let y=0x0;y<m['length'];y++){const z=m[y],B=w;w=B?B+'/'+z:z;let E=g['get'](w);E||(E={'type':'folder','name':z,'children':[]},g['set'](w,E),x['push'](E)),y===m['length']-0x1?E[CX(0x56d)][CX(0x4f5)](v):x=E['children'];}}),f;}}const yg=0.1,wg=0.5,Ig=0.05,Bg=0.5,xg=0x3;class vg{constructor(b,c,d,f=yg,g=wg){const CY=a0bL;this[CY(0x2ee)]=b;const {content:h}=b;if(!h)throw new Error(CY(0x47f));if(!c||!(c instanceof a0c))throw new Error('boxCenter\x20must\x20be\x20a\x20Vector3\x20instance');if(!d||!(d instanceof a0c))throw new Error('boxSize\x20must\x20be\x20a\x20Vector3\x20instance');this['content']=h,this['boxCenter']=c[CY(0x471)](),this[CY(0x661)]=d['clone'](),this[CY(0xb00)]=(d['x']+d['y']+d['z'])/xg,this[CY(0x7ae)]=this['averageSize']*f,this[CY(0x139)]=this['averageSize']*g,this[CY(0x1ec)]=this[CY(0xb00)]*Ig,this[CY(0x337)]=[],this['currentIntensity']=0x0,this['originalEdgeVisible']=null,this[CY(0x14f)]=!0x1,this['presets']={'small':0.25,'medium':0.5,'large':0.75,'max':0x1},this['_tempVector']=new a0c(),this['_tempVector2']=new a0c(),this['_tempVector3']=new a0c(),this[CY(0xb1e)](),this[CY(0x74d)]();}['getMaxIntensity'](){const CZ=a0bL;return this[CZ(0x139)];}[a0bL(0x408)](){return this['step'];}['getThreshold'](){const D0=a0bL;return this[D0(0x7ae)];}['initExplosionData'](){const D1=a0bL;this[D1(0x337)]=[];const b=this[D1(0x903)],c=this['_tempVector2'],d=this['_tempVector3'],f=new a0c(this[D1(0x661)]['x']*0.5,this['boxSize']['y']*0.5,this['boxSize']['z']*0.5);this[D1(0x838)][D1(0x268)](g=>{const D2=D1;if(g[D2(0x356)]&&g['visible']){g['geometry'][D2(0x3dd)]||g[D2(0x813)]['computeBoundingBox'](),g['geometry']['boundingBox'][D2(0x248)](b),g[D2(0x265)](c[D2(0x3fe)](b));const i=new a0c()['subVectors'](c,this[D2(0x6f4)]);i['length']()<0.000001?i[D2(0x9fd)](0x1,0x0,0x0):i[D2(0x6ff)](),d['subVectors'](c,this[D2(0x6f4)]);const j=Math['max'](Math[D2(0x855)](d['x'])/f['x'],Math['abs'](d['y'])/f['y'],Math['abs'](d['z'])/f['z']),k=this[D2(0x139)]*(0x1+j*Bg);this[D2(0x337)]['push']({'mesh':g,'originalWorldCenter':c[D2(0x471)](),'localCenter':b[D2(0x471)](),'baseDirection':i['clone'](),'maxPartIntensity':k});}});}['applyExplosion'](b){const D3=a0bL,f=Math['max'](0x0,Math[D3(0x5d2)](b,this[D3(0x139)])),g=Math[D3(0x855)](this['currentIntensity']-f)>=0.000001,i=Math['abs'](this[D3(0x75)])<0.000001,j=Math[D3(0x855)](f)<0.000001;if(g&&i&&!j){const p=this['viewer']['styleManager'][D3(0x9dc)]();this['originalEdgeVisible']=p,this[D3(0x14f)]=!0x0,p&&this[D3(0x2ee)][D3(0x494)][D3(0x915)](!0x1);}if(g&&!i&&j&&this[D3(0x14f)]&&(this[D3(0x2ee)]['styleManager']['setEdgeVisible'](this['originalEdgeVisible']),this['edgeStateSaved']=!0x1,this['originalEdgeVisible']=null),!g)return;this['currentIntensity']=f;const k=this[D3(0x903)],m=this[D3(0x7ae)];for(let v=0x0;v<this['explosionParts'][D3(0x3ea)];v++){const w=this['explosionParts'][v],x=Math['min'](f,w['maxPartIntensity']);let y;if(x<m){const z=x/m;y=this['easeOutQuad'](z)*m;}else y=m+(x-m);k['copy'](w['baseDirection'])[D3(0x433)](y)[D3(0x577)](w[D3(0x482)]),Yr(w['mesh'],k);}}[a0bL(0x7d9)](b){return b*(0x2-b);}[a0bL(0x88d)](){const D4=a0bL;this['edgeStateSaved']&&(this['viewer'][D4(0x494)][D4(0x915)](this[D4(0x9bd)]),this[D4(0x14f)]=!0x1,this[D4(0x9bd)]=null),this['applyExplosion'](0x0);}[a0bL(0x95a)](b){const D5=a0bL,c=this['presets'][b];if(c===void 0x0){console[D5(0x5fb)](D5(0x8a2)+b+D5(0x4a7)+Object[D5(0x557)](this['presets'])[D5(0x9e5)](',\x20'));return;}const d=this['maxIntensity']*c;this[D5(0x320)](d);}[a0bL(0x74d)](b=a0bL(0x6af)){const D6=a0bL,c=document['getElementById'](b);if(!c)return;c['min']=0x0,c[D6(0x36b)]=this['maxIntensity'],c['value']=0x0,c[D6(0x1ec)]=this[D6(0x1ec)],this['applyExplosion'](0x0);let d=null;c[D6(0x696)](D6(0x678),f=>{const D7=D6,g=parseFloat(f[D7(0x4b7)][D7(0xaa2)]);d!==null&&cancelAnimationFrame(d),d=requestAnimationFrame(()=>{const D8=D7;this[D8(0x320)](g),d=null;});});}[a0bL(0x890)](){return this['currentIntensity'];}['getPreset'](b){const D9=a0bL;if(b)return this[D9(0x5d9)][b]!==void 0x0?this['maxIntensity']*this[D9(0x5d9)][b]:void 0x0;const c={};for(const [d,f]of Object['entries'](this[D9(0x5d9)]))c[d]=this[D9(0x139)]*f;return c;}[a0bL(0x1a5)](){this['explosionParts']=[];}}class _g{constructor(b,c,d){const Db=a0bL;C(this,'scene'),C(this,'options'),C(this,Db(0x6f4)),C(this,Db(0x2cd)),C(this,Db(0x5e6)),C(this,Db(0x824)),(this[Db(0x440)]=b,this['options']=c,this[Db(0x6f4)]=d,this[Db(0x2cd)]=new a0bn(),this[Db(0x5e6)]=new a0bo(),this['_directionalLight']=new a0aS(),this['initLights']());}['initLights'](){const Dc=a0bL,{light:{hemiLight:b,directionalLight:c,ambientLight:d}}=this[Dc(0x15b)];this['_ambientLight']=new a0bn(d['color'],d[Dc(0x364)]),this[Dc(0x440)]['add'](this[Dc(0x2cd)]),this['_ambientLight'][Dc(0x12e)]=d['display'],this['_hemiLight']=new a0bo(),this[Dc(0x5e6)]['position'][Dc(0x9fd)](this[Dc(0x6f4)]['x'],this[Dc(0x6f4)]['y'],0x3e8),this['_hemiLight'][Dc(0x12e)]=b[Dc(0x46e)],this[Dc(0x440)]['add'](this[Dc(0x5e6)]),this[Dc(0x824)]=new a0aS(c['color'],c[Dc(0x364)]),this['_directionalLight']['name']='directionalLight',this[Dc(0x824)][Dc(0x12e)]=c['display'],this['scene'][Dc(0x577)](this['_directionalLight']);}[a0bL(0xa59)](b){const Df=a0bL;if(!this[Df(0x824)])return;const c=new a0c();b['getWorldDirection'](c),c['negate'](),this[Df(0x824)][Df(0x1b7)]['set'](c['x'],c['y'],c['z']);}get['ambientLight'](){return this['_ambientLight'];}get[a0bL(0x980)](){const Di=a0bL;return this[Di(0x5e6)];}get[a0bL(0xafc)](){const Dj=a0bL;return this[Dj(0x824)];}[a0bL(0x6c)](b){const Dk=a0bL;this['boxCenter']=b,this[Dk(0x5e6)][Dk(0x1b7)][Dk(0x9fd)](b['x'],b['y'],0x3e8);}['dispose'](){const Dm=a0bL;this[Dm(0x2cd)]&&this[Dm(0x440)]&&this[Dm(0x440)][Dm(0x592)](this['_ambientLight']),this[Dm(0x5e6)]&&this[Dm(0x440)]&&this[Dm(0x440)]['remove'](this[Dm(0x5e6)]),this['_directionalLight']&&this['scene']&&this[Dm(0x440)][Dm(0x592)](this['_directionalLight']);}}const Tg='eyJ1c2VyIjoiY2xpZW50MSIsImV4cGlyeSI6IicyMDI2LTA0LTI2JyIsImRvbWFpbnMiOiIqIiwidGltZXN0YW1wIjoxNzQ1NTcxNTc0NTE0fXw0NDBlOTNhNQ==',Qg=a0bL(0x5b3);class Zg{constructor(b,c){const Dp=a0bL;C(this,'el'),C(this,'options'),C(this,'renderer'),C(this,'cssRenderer'),C(this,Dp(0x246)),C(this,Dp(0xa63)),C(this,Dp(0x9f9)),C(this,'perspectiveControls'),C(this,Dp(0x7d0)),C(this,'perspectiveEffectManager'),C(this,'rendererManager'),C(this,Dp(0x8fc),!0x1),C(this,'SCENES'),C(this,Dp(0x630)),C(this,'animationsAfter'),C(this,'events',{}),C(this,Dp(0xabc)),C(this,'contextmenuEvents',[]),C(this,Dp(0x336),[]),C(this,Dp(0xa5d)),C(this,'isLargeModel'),C(this,Dp(0x948)),C(this,Dp(0x3f5)),C(this,'rotateSpeed'),C(this,Dp(0x3f7)),C(this,Dp(0x86b)),C(this,'layers'),C(this,'scene'),C(this,Dp(0x6f4),new a0c(0x0,0x0,0x0)),C(this,'mouse',new a0l()),C(this,Dp(0x738)),C(this,Dp(0xa0f)),C(this,'bounds',null),C(this,'lookAtCamera'),C(this,'selectedMaterial'),C(this,'clock',new a0a9()),C(this,'content'),C(this,Dp(0x9e0)),C(this,'modelLoader'),C(this,Dp(0x1b6)),C(this,Dp(0x97b),null),C(this,'intersectedObject',null),C(this,Dp(0x5e1),null),C(this,Dp(0x73),null),C(this,'clips',null),C(this,'mixer',null),C(this,Dp(0x297),null),C(this,Dp(0x70a)),C(this,'cameraManager'),C(this,'styleManager'),C(this,'logger'),C(this,'statistics'),C(this,'hudLabels',[]),C(this,'edgeData',null),C(this,'edgeMesh',null),C(this,'delta'),C(this,Dp(0xa14),null),C(this,Dp(0x710)),C(this,'effectComposer',null),C(this,'effect',null),C(this,'effectManager',null),C(this,Dp(0x2ef)),C(this,Dp(0x579),new a0c()),C(this,'visibleObjects',new Set()),C(this,'cameraSleepListener'),C(this,'needUpdatePivotPoint',!0x0),C(this,'controlSpeed',0.002),C(this,'joystick'),C(this,'clipper'),C(this,'shortcutManager'),C(this,'scenePageManager'),C(this,'layerManager'),C(this,'boundingBox'),C(this,'boxSize'),C(this,'canvas'),C(this,Dp(0x3aa),new a0aJ()),C(this,Dp(0x1ae)),C(this,Dp(0x208)),C(this,Dp(0xa8b)),C(this,'annotationTool'),C(this,'dimensionTool'),C(this,'envMap',null),C(this,Dp(0x3c5),null),C(this,Dp(0x337),[]);if(!b)throw new Error(Dp(0x3df));if(!(b instanceof HTMLElement))throw new Error('Viewer:\x20容器必须是HTMLElement实例');try{const g=new ng()['validate'](Tg,window[Dp(0x5b8)][Dp(0x5da)]);if(!g['valid'])throw new Error(g[Dp(0x193)]);}catch(h){throw new Error('Viewer:\x20许可证验证失败\x20-\x20'+(h instanceof Error?h[Dp(0x193)]:String(h)));}this['el']=b,this['el'][Dp(0x240)][Dp(0x577)](Qg);const d=c?.['style']?.[Dp(0x736)]??sr['style']['type'];this['options']=zr(this['getOptions'](d),c);const {style:{background:f}}=this[Dp(0x15b)];this[Dp(0x99)]={},this[Dp(0x6eb)]=[],this[Dp(0x630)]=[],this[Dp(0x749)]=[],this[Dp(0xabc)]=[],this['dgzSize']=0x0,this['isLargeModel']=!0x1,this[Dp(0x948)]=!0x1,this[Dp(0x3f5)]=!0x1,this['rotateSpeed']=0x2,this['clickedMesh']=null,this[Dp(0x86b)]=[],this[Dp(0x643)]=[],this['scene']=new a0bp(),this['content']=new a0ay(),this[Dp(0x440)]['add'](this['content']),this[Dp(0x738)]=[],this[Dp(0xa0f)]=[],this['lookAtCamera']=[],this[Dp(0x6df)]=new a0g({'color':0xffff00,'opacity':0.5,'transparent':!0x0}),this['visibleObjects']=new Set(),this['pivotPoint']=new a0c(),this['el'][Dp(0x771)]==0x0&&this['el'][Dp(0x240)][Dp(0x577)](Dp(0x59f)),this[Dp(0x733)]=this['cameraSleep'][Dp(0x450)](this),this[Dp(0x52e)]=new on('Viewer',{'minimumLevel':D['INFO']}),this[Dp(0x52e)]['debug'](Dp(0x338),{'container':b['id']||Dp(0x94f)}),this[Dp(0xd9)](),this['logger']['debug']('渲染器管理器已初始化'),this['initCameraControls'](),this['logger']['debug']('相机控制已初始化'),this[Dp(0x848)](),this['logger'][Dp(0x25c)](Dp(0x695)),this[Dp(0x70a)]=new _g(this['scene'],this['options'],this[Dp(0x6f4)]),this[Dp(0x52e)][Dp(0x25c)](Dp(0x231)),this['shortcutManager']=new aa(this),this['shortcutManager'][Dp(0xb17)](),this['clipper']=new Ag(this),this['explosionTool']=new dg(this),this['markupTool']=new gg(this),this['annotationTool']=new pg(this),this['dimensionTool']=new Eg(this),this['scenePageManager']=new kr(this),this[Dp(0xa25)]=new Cg(this),this['logger']['info'](Dp(0x20c)),this['logger']['debug']('场景页面和图层管理器已初始化'),this[Dp(0x479)](),this['logger']['info'](Dp(0x187)),this['animate']=this[Dp(0xdd)][Dp(0x450)](this),this[Dp(0x494)]=new Ld(this),this['styleManager'][Dp(0x92)](f),this['raycaster'][Dp(0x91f)]=!0x0,this[Dp(0x52e)]['info'](Dp(0x6ec));}['initAxes'](){const Dq=a0bL,b=new $u(0x1388);b['setVisible'](!0x1),this['scene']['add'](b['getObject']()),this[Dq(0x2ef)]=b;}['initRendererManager'](){const Dv=a0bL;this[Dv(0x8a0)]=new wd(this['el'],this['options'],this[Dv(0x576)]['bind'](this),()=>{this['logger']['info']('WebGL上下文已恢复');}),this[Dv(0x8d8)]=this['rendererManager']['initCssRenderer'](),this['renderer']=this[Dv(0x8a0)][Dv(0x13a)]();const b=this['rendererManager'][Dv(0x7e0)];if(!b)throw new Error('initRendererManager:\x20canvas未初始化');this[Dv(0x7e0)]=b;}[a0bL(0x576)](b){const Dw=a0bL;if(!b){this['logger']?.['warn']('Context\x20Lost事件为空');return;}b['preventDefault'](),this[Dw(0x52e)]?.[Dw(0x5fb)](Dw(0x74c)),this['disposeScene']();}[a0bL(0x4a1)](){const Dx=a0bL;try{this['logger'][Dx(0xbc)]('开始释放场景资源');let b=0x0,c=0x0;this['scene']['traverse'](d=>{const Dy=Dx;if(d[Dy(0x356)]){const f=d;if(f[Dy(0x813)])try{f['geometry'][Dy(0x1a5)](),b++;}catch(g){this[Dy(0x52e)]['warn']('释放几何体失败',{'error':g,'objectName':d[Dy(0x74)]});}if(f[Dy(0x690)])try{Array[Dy(0x335)](f[Dy(0x690)])?(f['material'][Dy(0xb8)](h=>{h&&h['dispose']();}),c+=f['material']['length']):(f['material'][Dy(0x1a5)](),c++);}catch(h){this['logger'][Dy(0x5fb)](Dy(0x843),{'error':h,'objectName':d[Dy(0x74)]});}}}),this[Dx(0x52e)][Dx(0xbc)](Dx(0x98b),{'disposedGeometries':b,'disposedMaterials':c});}catch(d){this['logger'][Dx(0x644)](Dx(0x65e),{'error':d});}}['initCameraControls'](){const Dz=a0bL;this[Dz(0xa34)]=new vd({'renderer':this[Dz(0x9b)],'el':this['el'],'options':this[Dz(0x15b)]}),this['setControl'](this[Dz(0xa34)][Dz(0x3ed)]()),this['setControl'](this[Dz(0xa34)]['getOrthographicControls']()),this['perspectiveCamera']=this[Dz(0xa34)]['getPerspectiveCamera'](),this[Dz(0x246)]=this['cameraManager'][Dz(0x65d)](),this[Dz(0x9b3)]=this[Dz(0xa34)]['getPerspectiveControls'](),this['orthographicControls']=this['cameraManager'][Dz(0x29d)](),this[Dz(0x710)]=this[Dz(0xa34)][Dz(0x2a9)](),this[Dz(0x9e0)]=this[Dz(0xa34)]['getControls']();}[a0bL(0x970)](b){const DB=a0bL;this['logger'][DB(0xbc)](DB(0x561),{'requestedType':b});const c=this['controls']?.[DB(0x2d3)]??!0x1,i=new a0c(),j=new a0c();this['controls']&&(this['controls']['getPosition'](i),this[DB(0x9e0)]['getTarget'](j));const k=this[DB(0xa34)][DB(0x970)](b);this['camera']=k['camera'],this['controls']=k['controls'];const m=b?b==='orthographic':!(this['camera']instanceof a0aL);if(m&&(this[DB(0x52e)][DB(0xbc)]('设置正交相机模式'),this['options'][DB(0xa1a)]['ssao']['enabled']=!0x1,this['effectManager']=this[DB(0x7d0)],this[DB(0x661)]&&this['updateOrthographicCamera'](),this['logger'][DB(0xbc)](DB(0x885)),this[DB(0x15b)][DB(0xa1a)]['ssao'][DB(0x2d3)]=!0x0,this[DB(0x4cd)]=this['perspectiveEffectManager']),c&&this['controls']&&(this[DB(0x9e0)]['enabled']=!0x0,this['logger']['debug']('新相机控制器已启用')),i[DB(0x5e9)]()>0.01&&j['lengthSq']()>0.01&&i['distanceTo'](j)>0.01)this[DB(0x9e0)][DB(0x732)](i['x'],i['y'],i['z'],j['x'],j['y'],j['z'],!0x1),this['logger']['debug'](DB(0x1f5),{'position':i,'target':j});else{if(this[DB(0x6f4)]&&this[DB(0x661)]){if(this['logger']['debug'](DB(0xaca)),m){const v=Math['max'](this['boxSize']['x'],this[DB(0x661)]['y'],this[DB(0x661)]['z']),w=v*1.5,x=Math['PI']/0x4,y=new a0c(Math[DB(0xa6b)](x)*w,Math['cos'](x)*w,Math['sin'](x)*w),z=this[DB(0x6f4)][DB(0x471)]()['add'](y);this['controls']['setLookAt'](z['x'],z['y'],z['z'],this['boxCenter']['x'],this[DB(0x6f4)]['y'],this[DB(0x6f4)]['z'],!0x1);const B=v*1.2;this[DB(0xa0d)](B);}else this['zoomRange'](!0x1);}}const p=this[DB(0x15b)]['camera'][DB(0x741)];p&&this[DB(0xb23)](p);}[a0bL(0x352)](b){const DC=a0bL;this[DC(0x52e)]['debug']('配置相机控制器参数'),b['smoothTime']=0.15,b['draggingSmoothTime']=0.03,b[DC(0xe9)]=0.15,b['polarRotateSpeed']=0.18,b['dollySpeed']=0.3,b[DC(0x483)]=!0x0,b['restThreshold']=0.5,b['mouseButtons'][DC(0x66)]=Te['ACTION']['TRUCK'];let c=null;b['addEventListener']('controlstart',()=>{const DD=DC;switch(b[DD(0x87d)]){case Te[DD(0x458)][DD(0x9a2)]:case Te['ACTION'][DD(0x841)]:{let d=function(x){return x>=0.7?0.7:x<=-0.7?-0.7:x;},i=function(x){return x>=0.7?0.7:x<=-0.7?-0.7:x;};if(this['options']['camera']['orbitBehavior']!='auto'){this[DD(0x7e0)][DD(0x240)]['add'](DD(0x789)),this[DD(0x7e0)][DD(0x240)]['remove']('--orbit');return;}else this[DD(0x7e0)]['classList'][DD(0x577)](DD(0x905)),this[DD(0x7e0)]['classList'][DD(0x592)](DD(0x789));const j=new a0l();j['x']=d(this[DD(0x916)]['x']),j['y']=i(this[DD(0x916)]['y']);const k=0.85;(j['y']>0x0||j['y']<0x0)&&(j['y']*=k),(j['x']>0x0||j['x']<0x0)&&(j['x']*=k);let m=Xs(this[DD(0x3aa)],this[DD(0x710)],Array['from'](this[DD(0x816)]),j,0.3,0.15);const p=m?m[DD(0x2e7)](x=>!this['isClipped'](x[DD(0x883)])):[],v=this[DD(0x710)]instanceof a0aL?this[DD(0x710)][DD(0x445)]*0.8:0x1/0x0;let w=null;if(p&&p[DD(0x3ea)]>0x0){const x=p[DD(0x5b5)](y=>y[DD(0x488)]<=v)||p[0x0];if(x){const y=new a0c()[DD(0x642)](this['camera'][DD(0x1b7)],x[DD(0x883)])['normalize'](),z=x['point']['distanceTo'](this['camera']['position']),B=0.08-Math[DD(0x5d2)](z/0x3e8,0x1)*0.03,F=z*B;w=x['point']['clone']()['add'](y['clone']()[DD(0x433)](F));}}w||(w=this[DD(0x6f4)]['clone']()),this['pivotPoint']['copy'](w),this[DD(0x9e0)][DD(0x205)](this['pivotPoint']['x'],this['pivotPoint']['y'],this[DD(0x579)]['z']),c=J({'className':'pivot'}),c[DD(0x1b7)]['copy'](this[DD(0x579)]),this['scene']['add'](c);break;}case Te['ACTION'][DD(0x8a5)]:case Te['ACTION']['TOUCH_TRUCK']:{this['canvas']['classList'][DD(0x577)](DD(0x28b));break;}}}),b['addEventListener']('controlend',()=>{const DE=DC;c&&this[DE(0x440)]['remove'](c),this['options']['camera'][DE(0x741)]==='auto'&&this[DE(0x7e0)]['classList']['remove'](DE(0x789)),this['canvas']['classList']['remove']('--orbit','--pan');}),b[DC(0x2d3)]=!0x1,this['logger'][DC(0x25c)](DC(0xa1));}['initEffect'](){const DF=a0bL;this['perspectiveEffectManager']=new ea(this[DF(0x9b)],this['scene'],this['perspectiveCamera'],this['el']['clientWidth'],this['el'][DF(0x771)]),this[DF(0x7d0)]=new ea(this['renderer'],this['scene'],this['orthographicCamera'],this['el'][DF(0x2c5)],this['el'][DF(0x771)]);const {ssao:b}=this['options'][DF(0xa1a)];b?.['enabled']&&(this['perspectiveEffectManager']['toggleEffect'](DF(0x529),b['enabled'],b),this['orthographicEffectManager'][DF(0xc4)]('ssao',b['enabled'],b)),this[DF(0x4cd)]=this['perspectiveEffectManager'];}['isMobileEnhanced'](){return sn();}['getWidth'](b,c=this['camera']){const DG=a0bL;if(!b||!(b instanceof a0c))throw new Error('getWidth:\x20point必须是Vector3实例');if(!c)throw new Error('getWidth:\x20camera不能为空');const d=new a0c()[DG(0x4ec)](c[DG(0x14e)]);return b['distanceTo'](d)/0x12c;}['initEvent'](){const DH=a0bL;document[DH(0x696)]('fullscreenchange',this['resize'][DH(0x450)](this)),document['addEventListener'](DH(0x877),this[DH(0x49a)]['bind'](this)),document[DH(0x696)](DH(0x7d),this['resize']['bind'](this)),this['canvas']['addEventListener']('mousemove',c=>{const DI=DH,d=this['canvas']['getBoundingClientRect']();this['mouse']['x']=(c['clientX']-d[DI(0x5df)])/d['width']*0x2-0x1,this['mouse']['y']=-((c['clientY']-d['top'])/d['height'])*0x2+0x1,this['mousemoveEvents']['forEach'](f=>{f(c);});}),this['canvas']['addEventListener']('contextmenu',this['onContextmenu'][DH(0x450)](this)),window[DH(0x696)](DH(0x49a),this['resize']['bind'](this),!0x1);const b=new Uu(this[DH(0x9b)][DH(0x9da)]);b['on'](DH(0x39b),this['leftMouseDown']['bind'](this)),b['on'](DH(0x972),this['onMouseUp'][DH(0x450)](this)),b['on'](DH(0x13d),this['onDblclick']['bind'](this)),this[DH(0x2bb)]||(this['shortcutManager']=new aa(this),this[DH(0x2bb)][DH(0xb17)]()),this['el'][DH(0x696)](DH(0x174),function(c){const d=c['target'];d&&d['nodeType']===0x3||c['preventDefault']();});}[a0bL(0x273)](b=0x0){const DJ=a0bL;return(typeof b!=DJ(0x4ed)||b<0x0||!Number[DJ(0x688)](b))&&(this['logger'][DJ(0x5fb)](DJ(0x943),{'styleIndex':b}),b=0x0),(!Ut||!Array['isArray'](Ut)||b>=Ut[DJ(0x3ea)])&&(this[DJ(0x52e)][DJ(0x5fb)]('getOptions:\x20样式索引超出范围,使用默认样式',{'styleIndex':b,'stylesLength':Ut?.['length']}),b=0x0),sr['style']=Ut[b],JSON[DJ(0x54a)](JSON['stringify'](sr));}['changeStyle'](b=0x0){const DK=a0bL;if((typeof b!='number'||b<0x0||!Number[DK(0x688)](b))&&(this['logger'][DK(0x5fb)]('changeStyle:\x20styleIndex无效,使用默认值0',{'styleIndex':b}),b=0x0),!this[DK(0x494)]){this[DK(0x52e)][DK(0x644)]('changeStyle:\x20styleManager未初始化');return;}try{this[DK(0x494)]['changeStyle'](b,c=>{const DL=DK;if(!this[DL(0x4cd)]){this[DL(0x52e)][DL(0x5fb)]('changeStyle:\x20effectManager未初始化,跳过效果切换');return;}this['styleManager'][DL(0x851)](c,{'showAxes':d=>this['showAxes'](d),'toggleEffect':(d,f,g)=>{this['effectManager']&&this['effectManager']['toggleEffect'](d,f,g);}});});}catch(c){this[DK(0x52e)][DK(0x644)](DK(0x8dc),{'error':c,'styleIndex':b});}}['enableBlackWhiteMode'](){const DM=a0bL;if(!this['styleManager']){this[DM(0x52e)]['error'](DM(0x7f5));return;}try{this[DM(0x494)][DM(0x8e1)]();}catch(b){this['logger'][DM(0x644)]('enableBlackWhiteMode:\x20启用黑白模式失败',{'error':b});}}['disableBlackWhiteMode'](){const DN=a0bL;if(!this[DN(0x494)]){this['logger'][DN(0x644)]('disableBlackWhiteMode:\x20styleManager未初始化');return;}try{this['styleManager']['disableBlackWhiteMode']();}catch(b){this[DN(0x52e)][DN(0x644)](DN(0x6f6),{'error':b});}}[a0bL(0x7b)](b){const DO=a0bL;if(typeof b!=DO(0x45f)||!b['trim']())throw new Error(DO(0x947));if(!this[DO(0x440)])throw new Error('zoomByNodeName:\x20scene未初始化');if(!this['controls'])throw new Error(DO(0xe6));try{const c=this['scene']['findObjectByPartialName']?.(b);if(!c)throw new Error('zoomByNodeName:\x20未找到名称为\x22'+b+DO(0x18f));const d=new a0c(),f=new a0c();this['controls'][DO(0xa89)](d);const g=Ya(c);f[DO(0x3fe)](g),this[DO(0x9e0)][DO(0x95e)](!0x1),this[DO(0x9e0)][DO(0x732)](d['x'],d['y'],d['z'],f['x'],f['y'],f['z']);}catch(h){throw this['logger'][DO(0x644)]('zoomByNodeName:\x20缩放至节点失败',{'error':h,'nodeName':b}),h;}}['setFogVisible'](b){const DP=a0bL;if(typeof b!=DP(0x708)){this['logger']['warn']('setFogVisible:\x20visible必须是布尔值',{'visible':b});return;}if(!this[DP(0x440)]){this['logger'][DP(0x5fb)](DP(0x263));return;}this['scene'][DP(0x8b2)]?this['scene'][DP(0x8b2)]['visible']=b:b&&this[DP(0x52e)][DP(0x5fb)](DP(0x624));}[a0bL(0xb18)](){const DQ=a0bL;if(!this[DQ(0x9e0)])throw new Error('addScene:\x20controls未初始化');try{const b=DQ(0x440)+Object[DQ(0x557)](this[DQ(0x99)])[DQ(0x3ea)],f=new a0c(),g=new a0c();this[DQ(0x9e0)][DQ(0xa89)](f),this[DQ(0x9e0)]['getTarget'](g);const {x:i,y:j,z:k}=f,{x:m,y:p,z:u}=g,v=[i,j,k,m,p,u,this[DQ(0x15b)]['render'][DQ(0x2fa)]];this[DQ(0x99)][b]=v,this[b]=()=>{const DR=DQ;this[DR(0x9e0)]&&this[DR(0x9e0)][DR(0x732)](...this['SCENES'][b]);};const w='场景'+Object[DQ(0x557)](this[DQ(0x99)])['length'];return this['logger'][DQ(0x25c)](DQ(0x6ce),{'name':w,'key':b,'sceneData':v}),{'name':w,'key':b};}catch(x){throw this[DQ(0x52e)]['error']('addScene:\x20添加场景失败',{'error':x}),x;}}['clear'](){const DS=a0bL;try{if(this['edgeMesh']&&(this['scene']['remove'](this[DS(0x315)]),this[DS(0x315)]=null),!this[DS(0x838)]){this['logger']['warn'](DS(0x979));return;}[...this[DS(0x838)][DS(0x56d)]][DS(0xb8)](b=>{const DT=DS;this[DT(0x838)]['remove'](b);}),this[DS(0x838)][DS(0x268)](b=>{const DU=DS;if(!b[DU(0x356)])return;const c=b;if(c['geometry'])try{c[DU(0x813)][DU(0x1a5)]();}catch(d){this[DU(0x52e)][DU(0x5fb)](DU(0x66c),{'error':d,'nodeName':b[DU(0x74)]});}}),this[DS(0x52e)][DS(0x25c)](DS(0x94c));}catch(b){this['logger'][DS(0x644)]('clear:\x20清空场景失败',{'error':b});}}[a0bL(0x421)](){throw new Error('Method\x20not\x20implemented.');}[a0bL(0x31b)](){const DV=a0bL;return this['camera']?this[DV(0x710)]instanceof a0aL:(this[DV(0x52e)]['warn']('isPerspective:\x20camera未初始化'),!0x1);}[a0bL(0xa4)](){const DW=a0bL;if(!this[DW(0x661)])return this['logger']['warn'](DW(0x341)),0x3e8;const b=h=>h*(Math['PI']/0xb4),{x:d,y:f,z:g}=this['boxSize'];if(this['isPerspective']()){if(!this[DW(0xa63)])return this['logger'][DW(0x5fb)](DW(0xa44)),0x3e8;const h=this['perspectiveCamera'][DW(0xb24)],i=b(this[DW(0xa63)]['fov']),j=0x2*Math[DW(0x44b)](Math['tan'](i/0x2)*h);return Math[DW(0x36b)](d/(0x2*Math[DW(0x3ca)](j/0x2)),f/(0x2*Math[DW(0x3ca)](i/0x2)),g/0x2)*2.2;}else{if(!this['orthographicCamera'])return this[DW(0x52e)]['warn'](DW(0x3c3)),0x3e8;const k=this[DW(0x246)]['zoom'];return k<=0x0?(this['logger']['warn'](DW(0x6b7),{'zoom':k}),0x3e8):Math['max'](d,f,g)*2.2/k;}}[a0bL(0x176)](b=!0x1){const DX=a0bL;if(!this['controls']){this['logger']['error'](DX(0x97c));return;}if(!this['perspectiveControls']){this[DX(0x52e)][DX(0x644)](DX(0x270));return;}if(!this[DX(0x6f4)]){this['logger'][DX(0x644)](DX(0x36d));return;}try{this['controls'][DX(0x149)](0x0,0x0,0x0);const d=k=>k*(Math['PI']/0xb4),f=this[DX(0x6f4)][DX(0x471)](),g=this[DX(0xa4)]();if(!Number['isFinite'](g)||g<=0x0){this[DX(0x52e)]['warn']('zoomRange:\x20计算的距离无效',{'distance':g});return;}const h=d(0x0),i=d(0x2d),j=new a0c()['setFromSphericalCoords'](g,i,h)[DX(0x577)](f);this[DX(0x9b3)]['setLookAt'](j['x'],j['y'],j['z'],this['boxCenter']['x'],this[DX(0x6f4)]['y'],this['boxCenter']['z'],b);}catch(k){this['logger'][DX(0x644)]('zoomRange:\x20缩放范围失败',{'error':k});}}['objectIsVisible'](b){const DY=a0bL;return b?typeof b['name']=='string'&&b['name'][DY(0xa1c)](DY(0x1b1))&&b['parent']?b[DY(0x476)]['visible']:b['visible']:(this[DY(0x52e)]['warn'](DY(0x74b)),!0x1);}[a0bL(0x47e)](b){const DZ=a0bL;if(!b){this[DZ(0x52e)][DZ(0x5fb)]('hideObject:\x20object为空');return;}typeof b[DZ(0x74)]=='string'&&b['name'][DZ(0xa1c)]('ROOT')?b[DZ(0x476)]&&(b['parent']['visible']=!0x1):b['visible']=!0x1,b['layers']&&(b['layers']['set'](0x1),b['layers'][DZ(0x721)](0x1));}['showObject'](b){const E0=a0bL;if(!b){this[E0(0x52e)]['warn']('showObject:\x20object为空');return;}typeof b['name']==E0(0x45f)&&b['name'][E0(0xa1c)]('ROOT')?b['parent']&&(b['parent']['visible']=!0x0):b['visible']=!0x0,b['layers']&&(b['layers'][E0(0x9fd)](0x0),b[E0(0x643)][E0(0x721)](0x0));}['updateMeshVisibleByLayer'](){const E1=a0bL,b=this[E1(0xa25)]['getHiddenIndices']();this['content']['traverse'](c=>{const E2=E1;if(this[E2(0xf1)](c),c instanceof a0aw){const d=c;d['showAllInstances']&&d[E2(0x502)](),b['forEach'](f=>{const E3=E2;d[E3(0x71)]&&d[E3(0x71)](f,!0x1);});}else{const f=c[E2(0x6f)]?.[E2(0x643)];f?.['length']&&f['some'](g=>!this['layerManager']['layers'][g]?.['visible'])&&this['hideObject'](c);}}),this[E1(0x816)][E1(0x752)](),this[E1(0x838)][E1(0x43c)](c=>{const E4=E1;(c['isMesh']||c['type']==='LOD')&&this[E4(0x816)][E4(0x577)](c);}),this['styleManager'][E1(0x5f4)]();}async['loadZipAsync'](b,c=()=>{}){const E5=a0bL;if(!b)throw new Error('loadZipAsync:\x20target不能为空');typeof c!='function'&&(this[E5(0x52e)][E5(0x5fb)](E5(0x6f3)),c=()=>{});const d=Date[E5(0x6b5)]();this['progressBar']=new Nu(this['el'],E5(0x402),0x0),this[E5(0x28e)]=new Ou(this),this[E5(0x7e0)][E5(0x240)]['add']('--wait');const f=typeof b==E5(0x45f)?b:b['toString']();await this[E5(0x28e)][E5(0xb08)](f,g=>{const E6=E5;let {message:i,percentage:j,data:k}=g;if(this[E6(0x1b6)][E6(0x81d)](j),i=='download')this[E6(0x1b6)]['updateMessage']('下载文件\x20'+j+'%\x20('+la(g[E6(0x2cb)])+E6(0x95));else{if(i==E6(0x73b))this[E6(0x1b6)][E6(0x376)](E6(0x892)+j+E6(0x5e4)+la(g[E6(0x6f0)])+')');else{if(i==E6(0x80c)){const {layers:m,pages:p}=k||{};if(this[E6(0x52e)][E6(0xbc)]('解析模型信息完成',{'layerCount':m?.[E6(0x3ea)]||0x0,'pageCount':p?.['length']||0x0}),this['layerManager'][E6(0x9fd)](m),this[E6(0x52e)]['debug'](E6(0x400),{'layerCount':m?.['length']||0x0}),this['layers']=this['layerManager']['layers'],this['scenePageManager']['set'](p),this['logger']['debug']('场景页面信息已设置',{'pageCount':p?.[E6(0x3ea)]||0x0}),this['scenePageManager'][E6(0x5f8)]['length']>0x0){const v=this[E6(0x15b)]['other'];if(v?.['autoSceneIndex']!=-0x1){const w=this[E6(0x6e7)][E6(0x5f8)][v[E6(0x1cc)]];w?(this['logger']['info']('自动跳转到指定场景页面',{'index':v[E6(0x1cc)],'name':w[E6(0x74)]}),this['scenePageManager'][E6(0x40f)](w)):this[E6(0x52e)][E6(0x5fb)](E6(0xa95),{'index':v[E6(0x1cc)]});}}this[E6(0x52e)][E6(0x25c)](E6(0x858)),requestAnimationFrame(this[E6(0xdd)]);}else this[E6(0x52e)][E6(0x25c)](E6(0x39e),{'message':i,'percentage':j}),this['progressBar'][E6(0x376)](i+'\x20'+j+'%');}}}),this[E5(0x52e)][E5(0xbc)]('模型加载完成,准备后处理',{'loadTime':Date['now']()-d}),await this[E5(0x3ec)]();}[a0bL(0x180)](b,c=0x64){const E7=a0bL;if((typeof c!=E7(0x4ed)||c<=0x0)&&(this['logger']['warn']('initJoystick:\x20size无效,使用默认值100',{'size':c}),c=0x64),this[E7(0x9f4)])return this[E7(0x9f4)];let d;b&&b instanceof HTMLElement?d=b:(d=document['createElement'](E7(0x521)),d['id']=E7(0x9f4),this['el'][E7(0x2cf)](d));const f=new eo({'zone':d,'onMove':(g,h)=>{const E8=E7,i=g[E8(0x80b)]()['replace']('\x20',''),j=1.6;switch(i){case'up':this['controls']['forward'](j*this['delta'],!0x1);break;case'down':this[E8(0x9e0)][E8(0x5dc)](-1.6*this[E8(0x4fe)],!0x1);break;case'left':this[E8(0x9e0)][E8(0x7c)](-1.6*this['delta'],0x0,!0x1);break;case'right':this[E8(0x9e0)][E8(0x7c)](j*this['delta'],0x0,!0x1);break;case'up_left':this['controls']['truck'](-1.6*this[E8(0x4fe)],0x0,!0x1),this['controls']['forward'](j*this[E8(0x4fe)],!0x1);break;case E8(0x568):this[E8(0x9e0)][E8(0x5dc)](j*this[E8(0x4fe)],!0x1),this[E8(0x9e0)]['truck'](j*this[E8(0x4fe)],0x0,!0x1);break;case'down_left':this[E8(0x9e0)]['forward'](-1.6*this[E8(0x4fe)],!0x1),this['controls'][E8(0x7c)](-1.6*this['delta'],0x0,!0x1);break;case E8(0x8d7):this[E8(0x9e0)][E8(0x5dc)](-1.6*this['delta'],!0x1),this['controls']['truck'](j*this[E8(0x4fe)],0x0,!0x1);break;default:console['warn']('未知方向:',g);}},'onEnd':()=>{},'onUp':()=>{const E9=E7;this['controls']['elevate'](0x6*this[E9(0x4fe)],!0x1);},'onDown':()=>{const Eb=E7;this[Eb(0x9e0)][Eb(0xa67)](-0x6*this['delta'],!0x1);},'size':c,'speedMultiplier':0x8});this['joystick']=f;}async[a0bL(0x3ec)](){const Ef=a0bL,{control:b}=this['options'];b[Ef(0x3f5)]&&setTimeout(()=>{const Ej=Ef;this[Ej(0x3f5)]=!0x0;},0x1f4),this[Ef(0x816)][Ef(0x752)](),this['content']['traverseVisible'](k=>{const Ek=Ef;(k['isMesh']||k['type']==='LOD')&&this[Ek(0x816)][Ek(0x577)](k);}),this['initEvent'](),this['loaded']=!0x0;const {boundingBox:d,boxCenter:f,boxSize:g}=tc(this[Ef(0x838)]);this[Ef(0x3dd)]=d,this['boxCenter']=f,this['boxSize']=g,this[Ef(0xa34)][Ef(0x85b)](f,g);const {near:h,far:i}=sc(this['boundingBox'],this[Ef(0x710)]);this['camera'][Ef(0x3ad)]=h,this[Ef(0x710)]['far']=i,this[Ef(0x710)][Ef(0x4d4)](),this['logger']['info'](Ef(0x6c3),{'near':h,'far':i}),this[Ef(0xb23)](),this['progressBar']['close'](),this[Ef(0x52e)]['debug'](Ef(0xa5a)),this['canvas']['classList']['remove'](Ef(0x2fb)),this[Ef(0x52e)][Ef(0x25c)](Ef(0x300)),this[Ef(0x6e7)][Ef(0x5f8)]['length']==0x0&&(this['logger']['info']('无场景页面,执行视角适应'),this['zoomRange']());const j=Math[Ef(0x36b)](this[Ef(0x661)]['x'],this[Ef(0x661)]['y'],this[Ef(0x661)]['z']);this['logger']['debug']('模型最大尺寸计算',{'maxSize':j}),j>=0xc8&&(this['logger'][Ef(0xbc)]('大模型检测,调整相机远平面',{'currentFar':this[Ef(0xa63)][Ef(0x445)],'newFar':j*0xa}),this[Ef(0xa63)]['far']=j*0xa,this[Ef(0xa63)]['updateProjectionMatrix']()),this[Ef(0x15d)]=mr(this[Ef(0x440)]),this[Ef(0x52e)][Ef(0xbc)]('几何体统计信息已计算',{'triangles':this[Ef(0x15d)][Ef(0x4a0)],'vertices':this[Ef(0x15d)]['vertices'],'geometries':this[Ef(0x15d)][Ef(0xa09)]}),this[Ef(0x7ff)]&&(this[Ef(0x15d)][Ef(0x518)]=this['edgeData'][Ef(0x60a)][Ef(0x3ea)],this[Ef(0x52e)]['debug']('边线数据统计',{'edgeCount':this[Ef(0x15d)][Ef(0x518)]})),this['controls']['enabled']=!0x0,this[Ef(0x52e)][Ef(0xbc)]('相机控制器已启用'),this[Ef(0x49a)](),this['logger']['debug'](Ef(0xc5));}[a0bL(0x620)](){}['setOrbitBehavior'](b=this[a0bL(0x15b)]['camera'][a0bL(0x741)]){const Em=a0bL;if(!this['controls']){this[Em(0x52e)][Em(0x5fb)]('相机控制器未初始化,无法设置轨道行为');return;}b=b??this[Em(0x15b)][Em(0x710)][Em(0x741)],this['logger']['info']('设置轨道行为模式',{'behavior':b}),b===Em(0x5c9)?(this['logger'][Em(0x25c)]('设置自动轨道行为'),this['controls'][Em(0x696)](Em(0x32c),this['cameraSleepListener']),this['camera']instanceof a0aL?(this[Em(0x9e0)][Em(0x3a3)][Em(0x6cd)]=Te[Em(0x458)][Em(0x245)],this['logger']['debug']('滚轮设置为缩放(Dolly)操作')):(this['controls'][Em(0x3a3)][Em(0x6cd)]=Te[Em(0x458)]['ZOOM'],this[Em(0x52e)][Em(0x25c)]('滚轮设置为缩放(Zoom)操作')),this[Em(0x380)](),this['canvas']['classList'][Em(0x592)]('--look_around')):b===Em(0x2a3)&&(this['logger'][Em(0x25c)]('设置固定轨道行为'),this[Em(0x9e0)][Em(0xcf)](Em(0x32c),this[Em(0x733)]),this['controls']['mouseButtons'][Em(0x6cd)]=Te['ACTION'][Em(0x896)],this[Em(0x52e)][Em(0x25c)](Em(0xa6)),this[Em(0x99f)](),this[Em(0x7e0)]['classList'][Em(0x577)](Em(0x789))),this['options']['camera']['orbitBehavior']=b,this['logger']['debug']('轨道行为模式更新完成');}['setOrbitPointByCamera'](){const En=a0bL,{position:b}=this['camera'];this[En(0x52e)]['debug'](En(0x1a2),{'cameraPosition':{'x':b['x'],'y':b['y'],'z':b['z']},'orbitPoint':{'x':b['x']-0.01,'y':b['y']-0.01,'z':b['z']}}),this[En(0x9e0)][En(0x205)](b['x']-0.01,b['y']-0.01,b['z']);}[a0bL(0x37e)](){const Ep=a0bL;this[Ep(0x52e)]['warn'](Ep(0xa1b));}[a0bL(0x59d)](b){const Eq=a0bL;if(typeof b!=Eq(0x652)){this['logger'][Eq(0x5fb)]('addEvent:\x20func必须是函数',{'func':b});return;}b();}['showAxes'](b){const Ev=a0bL;if(typeof b!=Ev(0x708)){this[Ev(0x52e)][Ev(0x5fb)]('showAxes:\x20show必须是布尔值',{'show':b});return;}this['axes']?this[Ev(0x2ef)][Ev(0x2ba)](b):this[Ev(0x52e)][Ev(0x5fb)](Ev(0x97e));}[a0bL(0x3a9)](){const Ew=a0bL;this['options'][Ew(0xa4d)][Ew(0x3f5)]&&(this['autoRotate']=!0x1);}[a0bL(0x14d)](){const Ex=a0bL;this[Ex(0x15b)][Ex(0xa4d)]['autoRotate']&&(this[Ex(0x3f5)]=!0x1);}[a0bL(0x380)](){const Ey=a0bL;if(!this[Ey(0x104)]||this[Ey(0x15b)][Ey(0x710)][Ey(0x741)]=='fixed')return;let b=Xs(this['raycaster'],this[Ey(0x710)],Array['from'](this[Ey(0x816)])),c=this['boxCenter'];if(b&&b['length']>0x0){const d=b[Ey(0x2e7)](f=>!this[Ey(0xae9)](f['point']));d[Ey(0x3ea)]>0x0&&(c=d[0x0][Ey(0x883)]);}this['controls'][Ey(0x205)](c['x'],c['y'],c['z']),this[Ey(0x579)]=c;}[a0bL(0x274)](b){if(!b)return!0x1;let c=b['visible'];return b['traverseAncestors'](d=>{const Ez=a0b;d[Ez(0x12e)]||(c=!0x1);}),c;}['onMouseUp'](b){const EB=a0bL,c=b[EB(0x4b7)];if(!c||c[EB(0x9eb)]!=EB(0x7a5))return;this['raycaster'][EB(0xfc)](this[EB(0x916)],this['camera']),this[EB(0x3aa)]['firstHitOnly']=!0x0;let d=this[EB(0x3aa)]['intersectObjects'](Array[EB(0x9c4)](this['visibleObjects']));this[EB(0x465)][EB(0xdb)]&&this[EB(0x465)]['mouseup']['forEach'](f=>{f(b,{'hits':d});});}['leftMouseDown'](b){}['onContextmenu'](){const EC=a0bL;this[EC(0x3aa)]['setFromCamera'](this['mouse'],this['camera']),this[EC(0x3aa)]['firstHitOnly']=!0x0;let b=this['raycaster'][EC(0x7ec)](Array[EC(0x9c4)](this['visibleObjects']));this['contextmenuEvents'][EC(0xb8)](c=>{c(b);});}[a0bL(0x7ab)](b){const ED=a0bL,c=b[ED(0x4b7)];return!c||c[ED(0x9eb)]!=='CANVAS'?!0x1:(this['options'][ED(0x710)]['orbitBehavior']=='auto'&&(this[ED(0x104)]=!0x0,this[ED(0x380)]()),!0x0);}[a0bL(0x455)](){const EE=a0bL;this['scene'][EE(0x268)](b=>{const EF=EE,c=b;c['isMesh']&&c[EF(0x6f)][EF(0x2ae)]&&(c[EF(0x690)]=c[EF(0x6f)][EF(0x2ae)],delete c['userData'][EF(0x2ae)]);});}['getFirstMesh'](b){const EG=a0bL;for(let c=0x0;c<b[EG(0x3ea)];c++)if(b[c][EG(0x3e3)]['isMesh'])return b[c]['object'];}['getLineSegments'](b){const EH=a0bL;if(!(!b||!b[EH(0x56d)])){for(let c=0x0;c<b[EH(0x56d)][EH(0x3ea)];c++){const d=b['children'][c];if(d instanceof a0k)return d;}return!0x1;}}[a0bL(0xf0)](b,c){const EI=a0bL;if(!b||typeof b!=EI(0x45f)){this['logger'][EI(0x5fb)](EI(0x91e),{'eventName':b});return;}if(typeof c!='function'){this[EI(0x52e)]['warn']('registerEvent:\x20callback必须是函数',{'eventName':b});return;}switch(b){case'click':this[EI(0xabc)]['push'](c);break;case'contextmenu':this['contextmenuEvents'][EI(0x4f5)](c);break;default:this[EI(0x52e)]['warn'](EI(0x62b),{'eventName':b});}}[a0bL(0x696)](b,c){var d;(d=this['events'])[b]||(d[b]=[]),this['events'][b]['push'](c);}[a0bL(0xcf)](b,c){const EJ=a0bL;if(!b||typeof b!='string'){this[EJ(0x52e)][EJ(0x5fb)]('removeEventListener:\x20eventName无效',{'eventName':b});return;}if(typeof c!=EJ(0x652)){this[EJ(0x52e)]['warn'](EJ(0x682),{'eventName':b});return;}if(!this[EJ(0x465)][b]){this['logger']['warn'](EJ(0xb1),{'eventName':b});return;}this['events'][b]=this['events'][b][EJ(0x2e7)](d=>d!==c);}[a0bL(0x617)](b,c){const EK=a0bL;if(typeof b!=EK(0x652)){this[EK(0x52e)]['error']('registerAnimation:\x20animationFunc必须是函数');return;}this['animations'][EK(0x4f5)](b),c&&typeof c==EK(0x652)?this[EK(0x749)][EK(0x4f5)](c):c&&this['logger']['warn'](EK(0x4ac),{'animationFuncAfter':c});}['animate'](){const EL=a0bL;this[EL(0x630)]['forEach'](f=>{f({'currentTime':performance['now']()});});let b;const c=this[EL(0x1ac)]['getDelta'](),{ssao:d}=this['options']['style'];this[EL(0x710)]instanceof a0aL?(b=this['perspectiveControls']['update'](c),this['renderer']['render'](this[EL(0x440)],this['perspectiveCamera']),this['cssRenderer'][EL(0x8d0)](this['scene'],this[EL(0xa63)]),d['enabled']&&this[EL(0x739)][EL(0x8d0)]()):(b=this['orthographicControls'][EL(0x79c)](c),this[EL(0x9b)]['render'](this['scene'],this['orthographicCamera']),this['cssRenderer']&&this[EL(0x8d8)][EL(0x8d0)](this['scene'],this['orthographicCamera']),d[EL(0x2d3)]&&this['orthographicEffectManager'][EL(0x8d0)]()),b&&(this[EL(0x70a)]&&this['lightManager']['updateLight'](this[EL(0x710)]),this[EL(0xa8b)]&&this['markupTool']['updateMarkupsVisibility']()),this['delta']=c,this[EL(0x948)]&&this['autoRotate']&&(this['controls']['azimuthAngle']+=this[EL(0x325)]*c*a0A['DEG2RAD']),this['animationsAfter']['forEach'](f=>{f({'currentTime':performance['now']()});}),this[EL(0x97b)]&&this['measurementControls']['update'](),this[EL(0x28e)][EL(0x4ea)]?.['forEach'](f=>{const EM=EL;this[EM(0x710)][EM(0x1b7)][EM(0x5a8)](f['position'])<0x1e+f['userData'][EM(0xe2)][EM(0x519)]&&!f['detailedModelLoaded']&&this['modelLoader'][EM(0x822)](f);}),requestAnimationFrame(this[EL(0xdd)]);}[a0bL(0x49a)](){const EN=a0bL;if(!this['el']){this['logger']['warn'](EN(0x90b));return;}const {clientWidth:b,clientHeight:c}=this['el'];if(b<=0x0||c<=0x0){this['logger'][EN(0x5fb)](EN(0x79a),{'clientWidth':b,'clientHeight':c});return;}try{this[EN(0xa63)]&&(this['perspectiveCamera']['aspect']=b/c),this['renderer']&&this['renderer'][EN(0x23b)](b,c,!0x0),this['cssRenderer']&&this[EN(0x8d8)][EN(0x23b)](b,c),this['isPerspective']()||this['updateOrthographicCamera'](),this['camera']&&this[EN(0x710)][EN(0x4d4)]();}catch(d){this['logger'][EN(0x644)]('resize:\x20调整大小失败',{'error':d,'clientWidth':b,'clientHeight':c});}}[a0bL(0x6f2)](b=0x1,c=!0x1){const EO=a0bL;if(typeof b!=EO(0x4ed)||b<0x0||b>0x1){this[EO(0x52e)]['warn'](EO(0x535),{'opacity':b});return;}if(typeof c!='boolean'&&(this['logger']['warn'](EO(0x537),{'forceUpdate':c}),c=!0x1),!this['scene']){this['logger'][EO(0x5fb)](EO(0x8fe));return;}try{this['scene']['traverse'](d=>{const EP=EO;if(d['isMesh']){const f=d;(Array['isArray'](f[EP(0x690)])?f['material']:[f[EP(0x690)]])[EP(0xb8)](g=>{const EQ=EP;g&&(b<0x1||c?(g[EQ(0xa5c)]=!0x0,g[EQ(0x6fb)]=b,g[EQ(0x12d)]=!0x0):b>=0x1&&g['transparent']&&(g[EQ(0xa5c)]=!0x1,g['opacity']=0x1,g[EQ(0x12d)]=!0x0));});}});}catch(d){this[EO(0x52e)][EO(0x644)]('setOpacity:\x20设置透明度失败',{'error':d,'opacity':b,'forceUpdate':c});}}['updateOrthographicCamera'](b){const ER=a0bL;if(!this['orthographicCamera']){this['logger'][ER(0x644)]('updateOrthographicCamera:\x20orthographicCamera未初始化');return;}if(!this[ER(0x661)]&&!b){this[ER(0x52e)]['warn']('updateOrthographicCamera:\x20boxSize未初始化且未提供viewSize');return;}if(b||(b=Math[ER(0x36b)](this['boxSize']['x'],this[ER(0x661)]['z'])*1.2),!Number['isFinite'](b)||b<=0x0){this[ER(0x52e)]['warn'](ER(0x6e5),{'viewSize':b});return;}if(!this['el']){this['logger']['warn']('updateOrthographicCamera:\x20el未初始化');return;}const c=this['el']['clientWidth']/this['el'][ER(0x771)];if(!Number['isFinite'](c)||c<=0x0){this['logger'][ER(0x5fb)](ER(0x1d6),{'aspect':c,'clientWidth':this['el'][ER(0x2c5)],'clientHeight':this['el']['clientHeight']});return;}try{this[ER(0x246)][ER(0x5df)]=-b*c/0x2,this[ER(0x246)][ER(0x9ca)]=b*c/0x2,this['orthographicCamera'][ER(0x29e)]=b/0x2,this[ER(0x246)]['bottom']=-b/0x2,this['orthographicCamera']['updateProjectionMatrix']();}catch(d){this[ER(0x52e)][ER(0x644)](ER(0x533),{'error':d,'viewSize':b,'aspect':c});}}[a0bL(0xa6f)](){const ES=a0bL,b=new vg(this,this[ES(0x6f4)],this['boxSize']);this['explosion']=b;}[a0bL(0x88d)](){this['explosionParts']['forEach'](b=>{const ET=a0b;Yr(b['mesh'],b[ET(0x482)]);});}['cameraView'](b){const EU=a0bL;this[EU(0xa34)][EU(0x33c)](b);}[a0bL(0xae9)](b){const EV=a0bL;return!b||!(b instanceof a0c)?(this[EV(0x52e)]['warn'](EV(0x522),{'point':b}),!0x1):this[EV(0x9d1)]?!this['clipper']['clippingPlanes']||!Array[EV(0x335)](this['clipper'][EV(0x72a)])?!0x1:this[EV(0x9d1)]['clippingPlanes'][EV(0xaa5)](c=>c[EV(0x23f)](b)<0x0):(this['logger'][EV(0x5fb)]('isClipped:\x20clipper未初始化'),!0x1);}get[a0bL(0x113)](){return this['lightManager']?.['ambientLight'];}get[a0bL(0x980)](){const EW=a0bL;return this[EW(0x70a)]?.[EW(0x980)];}get['directionalLight'](){const EX=a0bL;return this['lightManager']?.[EX(0xafc)];}[a0bL(0xbc)](b=this[a0bL(0x440)]){return mr(b);}['version'](){const EY=a0bL;return EY(0x2db);}['printGraph'](b=this['scene']){const EZ=a0bL;console['group']('\x20<'+b[EZ(0x736)]+'>\x20'+b['name']+EZ(0x269)+b['userData']['layers']),b['children']['forEach'](c=>this['printGraph'](c)),console[EZ(0x717)]();}}class ef extends Se{constructor(b){const F0=a0bL;super(b),C(this,'isDragging'),C(this,'raycaster'),C(this,F0(0x916)),C(this,F0(0x6eb),[]),C(this,'toolOptions'),(this['raycaster']=new a0aJ(),this[F0(0x916)]=new a0l(),this['isDragging']=!0x1);}[a0bL(0x592)](b){const F1=a0bL,c=this[F1(0x6eb)]['indexOf'](b);return c!==-0x1?(this['scene'][F1(0x592)](b),this['hudLabels'][F1(0x230)](c,0x1),!0x0):!0x1;}['removeLast'](){const F2=a0bL,b=this[F2(0x6eb)][F2(0x249)]();return b?(this[F2(0x440)][F2(0x592)](b),!0x0):!0x1;}[a0bL(0x752)](){const F3=a0bL;this['hudLabels'][F3(0xb8)](b=>{const F4=F3;this['scene'][F4(0x592)](b),b['element']['parentNode']&&b['element'][F4(0x1d0)][F4(0x197)](b[F4(0x1de)]);}),this['hudLabels']=[];}['gets'](){return this['hudLabels'];}[a0bL(0x857)](b){const F5=a0bL;if(b['preventDefault'](),b['touches'][F5(0x3ea)]===0x1){const c=b[F5(0x30e)][0x0];this[F5(0x2af)](c['clientX'],c[F5(0x5ab)]);}}['onTouchMove'](b){const F6=a0bL;if(b[F6(0x58c)](),b[F6(0x30e)][F6(0x3ea)]===0x1&&this[F6(0x8c0)]){const c=b['touches'][0x0];this[F6(0xa57)](c['clientX'],c[F6(0x5ab)]);}}[a0bL(0x386)](b,c=this[a0bL(0x729)]){const F7=a0bL;if(b['length']<0x3)throw new Error('pointArray\x20必须包含\x20[x,\x20y,\x20z]');const d=J(c);return c['fixedY']&&(b[0x1]=c[F7(0x409)]),d[F7(0x1b7)][F7(0x9fd)](b[0x0],b[0x1],b[0x2]),this[F7(0x440)][F7(0x577)](d),this[F7(0x6eb)]['push'](d),d['userData']['options']=c,c['onPut']&&c[F7(0x796)](b,d),d;}['onTouchEnd'](b){const F8=a0bL;b[F8(0x58c)](),this[F8(0x89d)]();}['onMouseUp'](){this['handleSelectionEnd']();}[a0bL(0x89d)](){const F9=a0bL;this[F9(0x8c0)]=!0x1;}[a0bL(0x478)](b){const Fb=a0bL;b['preventDefault'](),this[Fb(0x2af)](b['clientX'],b[Fb(0x5ab)]);}[a0bL(0x538)](b){const Ff=a0bL;b[Ff(0x58c)](),this[Ff(0xa57)](b[Ff(0x4f8)],b[Ff(0x5ab)]);}['handleSelectionStart'](b,c){const Fi=a0bL;this[Fi(0x8c0)]=!0x0,this[Fi(0x3ef)](b,c);}['handleSelectionMove'](b,c){}[a0bL(0x3ef)](b,c){const Fj=a0bL,d=this[Fj(0x9b)][Fj(0x9da)][Fj(0x38d)]();this['mouse']['x']=(b-d[Fj(0x5df)])/d[Fj(0xb1f)]*0x2-0x1,this['mouse']['y']=-((c-d[Fj(0x29e)])/d[Fj(0x19e)])*0x2+0x1,this[Fj(0x3aa)][Fj(0xfc)](this['mouse'],this[Fj(0x710)]);const f=this['raycaster'][Fj(0x7ec)](Array['from'](this[Fj(0x2ee)]['visibleObjects']),!0x0);if(f['length']>0x0){const g=f[0x0][Fj(0x883)];this[Fj(0x386)]([g['x'],g['y'],g['z']]);}}[a0bL(0x7d3)](b={}){const Fk=a0bL;this['toolOptions']=b;const c=this['renderer'][Fk(0x9da)];c[Fk(0xa1a)][Fk(0x67b)]='crosshair',this[Fk(0x34c)]='点击标注';}[a0bL(0x73f)](){const Fm=a0bL,b=this['renderer'][Fm(0x9da)];b[Fm(0xa1a)][Fm(0x67b)]='',this[Fm(0x8c0)]=!0x1;}['dispose'](){this['deactivate'](),this['clear']();}}class tf extends Se{constructor(b){const Fp=a0bL;super(b),C(this,'isSelecting',!0x1),C(this,'startPoint',new a0l()),C(this,'endPoint',new a0l()),C(this,Fp(0x7e0)),C(this,Fp(0x5d4)),C(this,'resizeHandler'),C(this,'animationFrameId',null),C(this,Fp(0x8f8),0x0),C(this,Fp(0x93e),0x0),(this['isSelecting']=!0x1,this[Fp(0x9e7)]=new a0l(),this[Fp(0x8a3)]=new a0l(),this['resizeHandler']=this[Fp(0x75f)][Fp(0x450)](this),this[Fp(0x83b)]());}[a0bL(0x83b)](){const Fq=a0bL;if(!this[Fq(0x9b)]?.[Fq(0x9da)]?.['parentElement'])return;this['canvas']=document[Fq(0x86)]('canvas'),this['canvas']['style'][Fq(0x1b7)]='absolute',this['canvas'][Fq(0xa1a)]['top']='0',this[Fq(0x7e0)]['style']['left']='0',this[Fq(0x7e0)]['style'][Fq(0x38e)]=Fq(0x4b9),this[Fq(0x7e0)][Fq(0xa1a)][Fq(0x6f9)]=Fq(0xd0),this['resizeCanvas']();const b=this[Fq(0x7e0)][Fq(0x7ee)]('2d');if(!b){console[Fq(0x644)]('无法获取\x20Canvas\x202D\x20上下文');return;}this['ctx']=b,this[Fq(0x9b)][Fq(0x9da)][Fq(0x237)]['appendChild'](this[Fq(0x7e0)]),window[Fq(0x696)]('resize',this[Fq(0x57f)]);}['resizeCanvas'](){const Fv=a0bL;if(!this['renderer']?.['domElement']||!this[Fv(0x7e0)])return;const b=this['renderer']['domElement']['clientWidth'],c=this[Fv(0x9b)][Fv(0x9da)]['clientHeight'],d=window[Fv(0xac7)]||0x1;this[Fv(0x7e0)]['width']=b*d,this[Fv(0x7e0)][Fv(0x19e)]=c*d,this[Fv(0x7e0)][Fv(0xa1a)]['width']=b+'px',this['canvas']['style']['height']=c+'px',this[Fv(0x5d4)]&&this[Fv(0x5d4)]['scale'](d,d);}['drawSelectionBox'](){const Fw=a0bL;if(!this['ctx']||!this['canvas'])return;const g=window[Fw(0xac7)]||0x1,i=this['canvas'][Fw(0xb1f)]/g,t=this['canvas'][Fw(0x19e)]/g;if(this['ctx']['clearRect'](0x0,0x0,i,t),!this['isSelecting'])return;const U=Math['min'](this[Fw(0x9e7)]['x'],this['endPoint']['x']),a0=Math['min'](this[Fw(0x9e7)]['y'],this[Fw(0x8a3)]['y']),a1=Math[Fw(0x36b)](this[Fw(0x9e7)]['x'],this['endPoint']['x']),a2=Math['max'](this[Fw(0x9e7)]['y'],this['endPoint']['y']),a3=a1-U,a4=a2-a0;if(a3<0x2||a4<0x2)return;this[Fw(0x93e)]=(this['pulseAnimationPhase']+0.05)%(Math['PI']*0x2);const a5=Math[Fw(0xa6b)](this['pulseAnimationPhase'])*0.1+0.9,a6=Date['now']()-this['selectionStartTime'],a7=Math['min'](0x1,a6/0xc8);this[Fw(0x5d4)][Fw(0xa5e)](),this['ctx'][Fw(0x6a2)]='rgba(0,\x200,\x200,\x20'+0.3*a7+')',this['ctx']['fillRect'](0x0,0x0,i,t),this[Fw(0x5d4)]['globalCompositeOperation']=Fw(0x80f),this['ctx'][Fw(0x1c2)](U,a0,a3,a4),this['ctx'][Fw(0x3d7)]='source-over';const a8=this['ctx'][Fw(0x7f)](U,a0,a1,a2);a8['addColorStop'](0x0,'rgba(55,\x20126,\x20232,\x20'+0.15*a7+')'),a8[Fw(0x656)](0.5,Fw(0x4ab)+0.25*a7+')'),a8[Fw(0x656)](0x1,Fw(0x4ab)+0.15*a7+')'),this[Fw(0x5d4)]['fillStyle']=a8,this['ctx']['fillRect'](U,a0,a3,a4),this[Fw(0x5d4)][Fw(0xabf)]=Fw(0x527)+0.15*a7+')',this[Fw(0x5d4)]['lineWidth']=0.5,this['ctx'][Fw(0xe7)]([0x2,0x4]);const a9=0x3;for(let aq=0x1;aq<a9;aq++){const av=U+a3/a9*aq,aw=a0+a4/a9*aq;this[Fw(0x5d4)]['beginPath'](),this[Fw(0x5d4)][Fw(0x93a)](av,a0),this['ctx'][Fw(0x554)](av,a2),this[Fw(0x5d4)]['stroke'](),this['ctx'][Fw(0xae)](),this[Fw(0x5d4)]['moveTo'](U,aw),this[Fw(0x5d4)]['lineTo'](a1,aw),this['ctx']['stroke']();}const ab=0.9*a7*a5;this['ctx'][Fw(0xabf)]='rgba(55,\x20126,\x20232,\x20'+ab+')',this[Fw(0x5d4)][Fw(0x54f)]=2.5,this['ctx'][Fw(0xe7)]([]),this['ctx']['strokeRect'](U,a0,a3,a4),this[Fw(0x5d4)]['strokeStyle']='rgba(255,\x20255,\x20255,\x20'+0.7*a7+')',this[Fw(0x5d4)][Fw(0x54f)]=0x1,this['ctx']['setLineDash']([0x4,0x4]);const aj=0x2;this['ctx'][Fw(0x326)](U+aj,a0+aj,a3-aj*0x2,a4-aj*0x2);const ak=0xa;this['ctx'][Fw(0xabf)]=Fw(0x4ab)+a7+')',this['ctx'][Fw(0x54f)]=2.5,this[Fw(0x5d4)][Fw(0xe7)]([]),this[Fw(0x5d4)]['beginPath'](),this['ctx']['moveTo'](U,a0+ak),this[Fw(0x5d4)]['lineTo'](U,a0),this[Fw(0x5d4)]['lineTo'](U+ak,a0),this['ctx'][Fw(0x57b)](),this['ctx'][Fw(0xae)](),this[Fw(0x5d4)][Fw(0x93a)](a1-ak,a0),this['ctx']['lineTo'](a1,a0),this[Fw(0x5d4)][Fw(0x554)](a1,a0+ak),this[Fw(0x5d4)][Fw(0x57b)](),this['ctx']['beginPath'](),this[Fw(0x5d4)][Fw(0x93a)](U,a2-ak),this['ctx'][Fw(0x554)](U,a2),this[Fw(0x5d4)]['lineTo'](U+ak,a2),this['ctx']['stroke'](),this[Fw(0x5d4)][Fw(0xae)](),this['ctx'][Fw(0x93a)](a1-ak,a2),this['ctx']['lineTo'](a1,a2),this['ctx']['lineTo'](a1,a2-ak),this['ctx'][Fw(0x57b)]();const am=U+a3/0x2,an=a0+a4/0x2;this[Fw(0x5d4)][Fw(0x6a2)]=Fw(0x4ab)+0.8*a7+')',this[Fw(0x5d4)][Fw(0xae)](),this['ctx'][Fw(0xa21)](am,an,0x3,0x0,Math['PI']*0x2),this['ctx'][Fw(0x7c1)](),this[Fw(0x5d4)]['strokeStyle']=Fw(0x527)+a7+')',this['ctx']['lineWidth']=1.5,this['ctx']['stroke']();const ap=this['renderer']?.['domElement']?.['getBoundingClientRect']();if(ap){const ax=a3/ap['width'],ay=a4/ap['height'],az=Math['max'](ax,ay),aB=az<0.1?'高':az<0.3?'中':'低',aC=Math['round'](a3)+Fw(0x4ff)+Math[Fw(0x43f)](a4),aD=Fw(0x384)+aB,aE=aC+Fw(0x42d)+aD;this[Fw(0x5d4)][Fw(0x75c)]='bold\x2012px\x20\x22Helvetica\x20Neue\x22,\x20Arial,\x20sans-serif',this[Fw(0x5d4)][Fw(0x5cb)]=Fw(0xabb),this['ctx'][Fw(0x73a)]='middle';const aF=am,aG=an+0x14,aH=this[Fw(0x5d4)]['measureText'](aE)['width'],aI=0x12,aJ=0xa,aK=0x6;this[Fw(0x5d4)]['shadowColor']=Fw(0x72e),this['ctx']['shadowBlur']=0x8,this[Fw(0x5d4)]['shadowOffsetX']=0x0,this['ctx'][Fw(0x472)]=0x2;const aL=0x6;this[Fw(0x5d4)][Fw(0x6a2)]='rgba(55,\x20126,\x20232,\x20'+0.95*a7+')',this['roundRect'](this[Fw(0x5d4)],aF-aH/0x2-aJ,aG-aI/0x2-aK,aH+aJ*0x2,aI+aK*0x2,aL),this['ctx']['fill'](),this[Fw(0x5d4)]['shadowColor']=Fw(0xa5c),this[Fw(0x5d4)]['shadowBlur']=0x0,this[Fw(0x5d4)]['shadowOffsetX']=0x0,this['ctx']['shadowOffsetY']=0x0,this[Fw(0x5d4)]['shadowColor']='rgba(0,\x200,\x200,\x200.5)',this['ctx']['shadowBlur']=0x2,this[Fw(0x5d4)]['fillStyle']='rgba(255,\x20255,\x20255,\x20'+a7+')',this['ctx']['fillText'](aE,aF,aG),this[Fw(0x5d4)]['shadowColor']=Fw(0xa5c),this[Fw(0x5d4)]['shadowBlur']=0x0;}this[Fw(0x5d4)]['restore'](),this['isSelecting']&&this['requestDraw']();}['roundRect'](b,d,f,g,h,i){const Fx=a0bL;b[Fx(0xae)](),b['moveTo'](d+i,f),b['lineTo'](d+g-i,f),b[Fx(0x8bd)](d+g,f,d+g,f+i),b[Fx(0x554)](d+g,f+h-i),b['quadraticCurveTo'](d+g,f+h,d+g-i,f+h),b['lineTo'](d+i,f+h),b[Fx(0x8bd)](d,f+h,d,f+h-i),b[Fx(0x554)](d,f+i),b['quadraticCurveTo'](d,f,d+i,f),b[Fx(0x92d)]();}['checkCameraType'](){const Fy=a0bL;return this[Fy(0x2ee)]['isPerspective']()?!0x0:(this[Fy(0x193)][Fy(0x644)](Fy(0x5fa),0xbb8),this['deactivate'](),!0x1);}['onTouchStart'](b,c){const Fz=a0bL;if(b[Fz(0x30e)][Fz(0x3ea)]===0x1){if(!this[Fz(0x2ec)]()){b[Fz(0x58c)]();return;}if(b['preventDefault'](),!(!this[Fz(0x9e0)]||!this['renderer']?.[Fz(0x9da)])){if(this[Fz(0x9e0)][Fz(0x2d3)]=!0x1,c?.['screen']?.['point'])this['startPoint'][Fz(0x3fe)](c[Fz(0xa58)]['point']);else{const d=this[Fz(0x9b)][Fz(0x9da)][Fz(0x38d)](),f=b['touches'][0x0];this[Fz(0x9e7)][Fz(0x9fd)](f[Fz(0x4f8)]-d['left'],f[Fz(0x5ab)]-d[Fz(0x29e)]);}this[Fz(0x8a3)]['copy'](this[Fz(0x9e7)]),this['isSelecting']=!0x0,this[Fz(0x8f8)]=Date[Fz(0x6b5)](),this['pulseAnimationPhase']=0x0,this[Fz(0xab4)]();}}}['onTouchMove'](b,c){const FB=a0bL;if(!(!this['isSelecting']||b['touches']['length']!==0x1)){if(!this[FB(0x2ec)]()){b[FB(0x58c)]();return;}if(b[FB(0x58c)](),c?.['screen']?.['point'])this[FB(0x8a3)]['copy'](c['screen'][FB(0x883)]);else{if(this['renderer']?.[FB(0x9da)]){const d=this[FB(0x9b)][FB(0x9da)]['getBoundingClientRect'](),f=b['touches'][0x0];this[FB(0x8a3)]['set'](f[FB(0x4f8)]-d[FB(0x5df)],f['clientY']-d['top']);}else return;}this['requestDraw']();}}['onTouchEnd'](b,c){const FC=a0bL;this[FC(0x908)]&&(b['preventDefault'](),this[FC(0x89d)]());}['onMouseUp'](b,c){this['isSelecting']&&this['handleSelectionEnd']();}['requestDraw'](){const FD=a0bL;this['animationFrameId']!==null&&cancelAnimationFrame(this[FD(0x21f)]),this[FD(0x21f)]=requestAnimationFrame(()=>{const FE=FD;this[FE(0x6a4)](),this['animationFrameId']=null;});}['handleSelectionEnd'](){const FF=a0bL;if(!this[FF(0x2ec)]()){this[FF(0x908)]=!0x1,this['drawSelectionBox']();return;}if(this['isSelecting']=!0x1,this[FF(0x6a4)](),!this[FF(0x9b)]?.[FF(0x9da)]){this['deactivate']();return;}const b=this['renderer'][FF(0x9da)]['getBoundingClientRect'](),d=Math[FF(0x5d2)](this[FF(0x9e7)]['x'],this[FF(0x8a3)]['x'])/b[FF(0xb1f)]*0x2-0x1,f=Math[FF(0x36b)](this[FF(0x9e7)]['x'],this[FF(0x8a3)]['x'])/b[FF(0xb1f)]*0x2-0x1,g=-(Math['min'](this[FF(0x9e7)]['y'],this['endPoint']['y'])/b[FF(0x19e)])*0x2+0x1,h=-(Math[FF(0x36b)](this[FF(0x9e7)]['y'],this['endPoint']['y'])/b[FF(0x19e)])*0x2+0x1,i=0.02;if(Math[FF(0x855)](f-d)<i||Math[FF(0x855)](h-g)<i){this[FF(0x34c)]=FF(0x9cb),setTimeout(()=>{const FG=FF;this['tooltip']='',this[FG(0x79f)]();},0x5dc);return;}this['zoomToSelection'](d,f,g,h),this['deactivate']();}['onMouseDown'](b,c){const FH=a0bL;this[FH(0x2ec)]()&&this[FH(0x9e0)]&&(this['controls']['enabled']=!0x1,c?.['screen']?.['point']&&this[FH(0x9e7)][FH(0x3fe)](c['screen']['point']),this[FH(0x8a3)][FH(0x3fe)](this[FH(0x9e7)]),this[FH(0x908)]=!0x0,this[FH(0x8f8)]=Date[FH(0x6b5)](),this[FH(0x93e)]=0x0,this[FH(0xab4)]());}['onMouseMove'](b,c){const FI=a0bL;if(this[FI(0x2ec)]()){if(this[FI(0x908)])this[FI(0x34c)]='';else{this['tooltip']=FI(0x172);return;}if(c?.['screen']?.[FI(0x883)])this[FI(0x8a3)][FI(0x3fe)](c[FI(0xa58)][FI(0x883)]);else{if(this[FI(0x9b)]?.['domElement']){const d=this['renderer'][FI(0x9da)]['getBoundingClientRect']();this[FI(0x8a3)][FI(0x9fd)](b[FI(0x4f8)]-d[FI(0x5df)],b['clientY']-d[FI(0x29e)]);}else return;}this[FI(0xab4)]();}}async[a0bL(0xa26)](b,f,i,j){const FJ=a0bL;if(!this['checkCameraType']()||!this['camera']||!this[FJ(0x9e0)])return;const k=(b+f)/0x2,m=(i+j)/0x2,t=f-b,v=j-i,w=Math[FJ(0x36b)](Math[FJ(0x855)](t),Math[FJ(0x855)](v)),x=new a0aJ(),y=Xs(x,this['camera'],Array['from'](this[FJ(0x2ee)]['visibleObjects']),new a0l(k,m),0.2,0.15);try{if(y&&y['length']>0x0){this['viewer']['needUpdatePivotPoint']=!0x1,this[FJ(0x9e0)][FJ(0x205)](y[0x0][FJ(0x883)]['x'],y[0x0]['point']['y'],y[0x0][FJ(0x883)]['z']);const z=[this['controls']['setFocalOffset'](0x0,0x0,0x0,!0x0),this['controls']['dollyInFixed'](y[0x0]['distance']*(0x1-w/0x2),!0x0)];await Promise['all'](z),this[FJ(0x2ee)][FJ(0x104)]=!0x0,this[FJ(0x2ee)]['cameraSleep']();}else{const B=0x64/(-(/Mac/['test'](globalThis?.[FJ(0x192)]?.['platform']||'')?-0x1:-0x3)*0xa);this['controls'][FJ(0xa80)](-B,k,m);}}catch(E){console['error'](FJ(0x5e3),E),this[FJ(0x2ee)]['needUpdatePivotPoint']=!0x0;}}['onActivate'](){const FK=a0bL;if(!this[FK(0x2ee)][FK(0x31b)]()){this['message']['error']('正交相机不支持框选缩放,请切换到透视相机',0xbb8),this[FK(0x79f)]();return;}this['renderer']?.['domElement']&&(this[FK(0x9b)]['domElement']['style']['cursor']='crosshair'),this[FK(0x34c)]='框选目标区域进行缩放(选区越小,放大倍率越高)';const b=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i[FK(0x2b6)](navigator[FK(0x21b)])?FK(0x501):'鼠标拖动';this['message']['info']('框选缩放工具已激活\x20-\x20'+b+'框选目标区域进行缩放(选区越小,放大倍率越高)',0xbb8);}['onDeactivate'](){const FL=a0bL;if(this['animationFrameId']!==null&&(cancelAnimationFrame(this['animationFrameId']),this['animationFrameId']=null),this[FL(0x9b)]?.[FL(0x9da)]&&(this['renderer'][FL(0x9da)]['style']['cursor']=''),this['isSelecting']=!0x1,this['ctx']&&this[FL(0x7e0)]){const b=window['devicePixelRatio']||0x1;this['ctx']['clearRect'](0x0,0x0,this['canvas']['width']/b,this[FL(0x7e0)][FL(0x19e)]/b);}this['controls']&&(this[FL(0x9e0)]['enabled']=!0x0),this[FL(0x2ee)][FL(0x380)](),this['tooltip']='';}[a0bL(0xa6e)](){const FM=a0bL;this['deactivate'](),this[FM(0x7e0)]?.['parentElement']&&this[FM(0x7e0)]['parentElement']['removeChild'](this['canvas']),window[FM(0xcf)]('resize',this['resizeHandler']),this[FM(0x7e0)]=null,this[FM(0x5d4)]=null;}}const lr=0x377ee8,da=0xff0000,Sg=0.15,Dg=0.2,Mg=0.75,Lg=0x3,Rg=0x2,Pg=0.6,kg=0.06;class sf extends Se{constructor(b){const FN=a0bL;super(b),C(this,'measurements',[]),C(this,FN(0x618),[]),C(this,'snapPoint'),C(this,FN(0xa43),null),C(this,'previewPolygon',null),C(this,FN(0x22a),[]),C(this,'isAxisLocked',!0x1),C(this,FN(0x367),null),C(this,FN(0x7a9),null),(this[FN(0x67b)]=FN(0x83e),this['viewer'][FN(0x2bb)][FN(0x8ae)]({'key':FN(0x229),'type':FN(0x89b),'callback':()=>{const FO=FN;this[FO(0x7a9)]!=null&&this[FO(0x475)](this['selectedIndex']);}}),this[FN(0x2ee)][FN(0x2bb)][FN(0x8ae)]({'key':FN(0x9a4),'type':FN(0x89b),'callback':()=>{const FP=FN;this['points'][FP(0x3ea)]>=0x3&&this['completePolygon']();}}));}[a0bL(0x7d3)](){const FQ=a0bL;this[FQ(0x34c)]='点击添加多边形顶点(至少3个点),按\x20Enter\x20完成测量';}['onDeactivate'](){this['clearDraw']();}['clearDraw'](){const FR=a0bL;this[FR(0x850)]&&(this['scene'][FR(0x592)](this[FR(0x850)]),this['snapPoint']=null),this['guideLine']&&(this['scene'][FR(0x592)](this['guideLine']),this[FR(0xa43)]=null),this[FR(0x9d7)]&&(this['scene'][FR(0x592)](this[FR(0x9d7)]),this[FR(0x9d7)]=null),this[FR(0x22a)]['forEach'](b=>{const FS=FR;this['scene'][FS(0x592)](b);}),this['markers']=[],this[FR(0x618)]=[],this['isAxisLocked']=!0x1,this[FR(0x367)]=null,this[FR(0xa9f)]='';}[a0bL(0x301)](b){const FT=a0bL;if(!(b?.[FT(0x3b8)]&&b['object']?.['geometry']))return!0x1;const {face:c,object:f,point:i}=b,j=f['geometry'][FT(0x4e1)][FT(0x1b7)],k=[c['a'],c['b'],c['c']][FT(0x428)](x=>{const y=new a0c();return y['fromBufferAttribute'](j,x),f['localToWorld'](y),y;}),m=[[k[0x0],k[0x1]],[k[0x1],k[0x2]],[k[0x2],k[0x0]]];this[FT(0x710)][FT(0x2c7)]();const p=this['viewer'][FT(0x283)](i)*0x7,t=this[FT(0x2ee)]['getWidth'](i)*0x5;let v=0x1/0x0,w=null;return k[FT(0xb8)](x=>{const FU=FT,y=i[FU(0x5a8)](x);y<=p&&y<v&&(v=y,w=x['clone']());}),w||m[FT(0xb8)](([x,y])=>{const FV=FT,z=lc(i,x,y),B=i[FV(0x5a8)](z);B<=t&&B<v&&(v=B,w=z[FV(0x471)]());}),w?(b['point']=w,!0x0):!0x1;}['onMouseMove'](b,f){const FW=a0bL,g=b?.[FW(0x40e)]||!0x1;this[FW(0x2ee)][FW(0x3aa)]['setFromCamera'](this[FW(0x2ee)]['mouse'],this[FW(0x2ee)]['camera']),this['viewer'][FW(0x3aa)][FW(0x91f)]=!0x0;let i=this[FW(0x2ee)]['raycaster']['intersectObjects'](Array['from'](this[FW(0x2ee)][FW(0x816)]));this[FW(0x618)]['length']>0x0&&(this[FW(0x34c)]='点击添加第\x20'+(this[FW(0x618)][FW(0x3ea)]+0x1)+FW(0x1a9)+(g?'(按住Shift锁定轴)':'')),this[FW(0x850)]&&this[FW(0x440)]['remove'](this[FW(0x850)]),this[FW(0xa43)]&&this[FW(0x440)]['remove'](this['guideLine']),this['previewPolygon']&&(this['scene']['remove'](this['previewPolygon']),this[FW(0x9d7)]=null);let j=null,k=!0x1;if(i[FW(0x3ea)]>0x0)k=this[FW(0x301)](i[0x0]),j=i[0x0][FW(0x883)];else{const m=this[FW(0x2ee)]['raycaster'][FW(0x715)]['direction'];let p=0x3e8;this['camera']&&FW(0x445)in this[FW(0x710)]&&(p=this['camera']['far']*0.5),j=m[FW(0x433)](p)['add'](this['viewer']['raycaster']['ray']['origin']);}if(g&&this['points'][FW(0x3ea)]>0x0&&j){const t=this[FW(0x618)][this['points']['length']-0x1],{projectedPoint:u,axis:v}=this[FW(0x3d2)](j,t);j=u,this['isAxisLocked']=!0x0,this[FW(0x367)]=v;const w={'x':'X轴','y':'Y轴','z':'Z轴'};this[FW(0xa9f)]=FW(0x4e2)+w[v];}else{if(this['isAxisLocked']=!0x1,this[FW(0x367)]=null,this[FW(0x618)]['length']>0x0&&j){const x=this[FW(0x618)][this['points'][FW(0x3ea)]-0x1],{axis:y}=this[FW(0x4f1)](x,j);if(y){const z={'x':'X轴','y':'Y轴','z':'Z轴'};this[FW(0xa9f)]=FW(0x1d8)+z[y];}else this[FW(0xa9f)]='';}else this[FW(0xa9f)]='';}if(j){let B=FW(0x826);(k||this[FW(0x5e7)])&&(B='measure-adsorb'),this['snapPoint']=J({'className':B}),this[FW(0x850)][FW(0x1b7)]['copy'](j),this['scene']['add'](this['snapPoint']);}this[FW(0x618)][FW(0x3ea)]>0x0&&j&&(this['drawGuideLine'](j),this[FW(0xc9)](j));}[a0bL(0x583)](b,{hits:c}){const FX=a0bL;if(c[FX(0x3ea)]>0x0){this[FX(0x301)](c[0x0]);let d=c[0x0][FX(0x883)];if(b['shiftKey']&&this['points']['length']>0x0){const f=this['points'][this['points'][FX(0x3ea)]-0x1],{projectedPoint:g}=this[FX(0x3d2)](c[0x0][FX(0x883)],f);d=g;}this['addPoint'](d);}}['addPoint'](b){const FY=a0bL;if(this[FY(0x993)](b)){this['completePolygon']();return;}this[FY(0x618)]['push'](b[FY(0x471)]());const c=J({'className':FY(0x9d3)});c['position'][FY(0x3fe)](b),this[FY(0x440)]['add'](c),this['markers'][FY(0x4f5)](c),this[FY(0x618)][FY(0x3ea)]>=0x3;}['isPointNearStart'](b){const FZ=a0bL;return this[FZ(0x618)]['length']===0x0?!0x1:this['points'][0x0]['distanceTo'](b)<kg;}['completePolygon'](){const G0=a0bL;if(this[G0(0x618)][G0(0x3ea)]<0x3)return;const {polygon:b,borderLine:c}=this['drawPolygon'](),d=hc(this['points']),f=Ac(this['points']),g=J({'className':G0(0x634),'html':d['toFixed'](0x2)+G0(0x6c8),'click':({event:h})=>{const G1=G0,i=h['target'];i&&i['tagName']===G1(0x50c)?this[G1(0x10b)][G1(0xb8)]((j,k)=>{const G2=G1;j[G2(0xad3)][0x2]===g&&this['removeByIndex'](k);}):this[G1(0x10b)]['forEach']((j,k)=>{const G3=G1;j['objects'][0x2]===g?(j['objects'][0x1]['material']['opacity']=0x1,j[G3(0xad3)][0x1][G3(0x690)][G3(0xad0)]=0x5,j['objects'][0x0]['material']['opacity']=0.3,this[G3(0x7a9)]=k):(j[G3(0xad3)][0x1][G3(0x690)][G3(0x6fb)]=0.75,j[G3(0xad3)][0x1]['material'][G3(0xad0)]=0x3,j[G3(0xad3)][0x0]['material'][G3(0x6fb)]=0.2);});}});g['position'][G0(0x3fe)](f),this[G0(0x440)]['add'](g),this[G0(0x10b)]['push']({'area':parseFloat(d['toFixed'](0x6)),'unit':'m²','points':[...this[G0(0x618)]],'objects':[b,c,g]}),this['clearDraw'](),this['deactivate']();}['projectToNearestAxis'](b,d){const G4=a0bL,f=new a0c()[G4(0x642)](b,d),g=new a0c(Math[G4(0x855)](f['x']),Math['abs'](f['y']),Math[G4(0x855)](f['z']));let h='x',i=g['x'];g['y']>i&&(i=g['y'],h='y'),g['z']>i&&(i=g['z'],h='z');const j=d['clone']();return h==='x'?j['x']=b['x']:h==='y'?j['y']=b['y']:j['z']=b['z'],{'projectedPoint':j,'axis':h};}[a0bL(0x4f1)](b,d){const G5=a0bL,f=new a0c()[G5(0x642)](d,b);if(f[G5(0x3ea)]()<0.001)return{'color':da,'axis':null};const g=f[G5(0x6ff)](),i=new a0c(Math['abs'](g['x']),Math['abs'](g['y']),Math[G5(0x855)](g['z'])),j=0.99,k=0.01;return i['x']>j&&i['y']<k&&i['z']<k?{'color':0xff0000,'axis':'x'}:i['y']>j&&i['x']<k&&i['z']<k?{'color':0xff,'axis':'y'}:i['z']>j&&i['x']<k&&i['y']<k?{'color':0xff00,'axis':'z'}:{'color':da,'axis':null};}['drawGuideLine'](b){const G6=a0bL,c=this[G6(0x618)][this['points'][G6(0x3ea)]-0x1];if(!c)return;const d=new Ae();d[G6(0x64b)]([c['x'],c['y'],c['z'],b['x'],b['y'],b['z']]);let f;this[G6(0x5e7)]&&this['lockedAxis']?f={'x':0xff0000,'y':0xff,'z':0xff00}[this[G6(0x367)]]:f=this[G6(0x4f1)](c,b)['color'];const g=new ne({'color':f,'depthTest':!0x1,'linewidth':Rg,'opacity':Pg,'resolution':new a0l(window[G6(0x7e7)],window[G6(0x349)])});this[G6(0xa43)]=new de(d,g),this[G6(0x440)]['add'](this[G6(0xa43)]);}[a0bL(0xc9)](b){const G7=a0bL;if(this['points']['length']<0x2)return;const c=[...this[G7(0x618)],b];let d;this['camera']&&(d=new a0c(),this['camera'][G7(0x1b5)](d));const f=Cr(c,d),g=new a0g({'color':lr,'opacity':Sg,'transparent':!0x0,'side':0x2,'depthTest':!0x1});this[G7(0x9d7)]&&this[G7(0x440)][G7(0x592)](this[G7(0x9d7)]),this['previewPolygon']=new a0e(f,g),this['scene']['add'](this[G7(0x9d7)]);}[a0bL(0x7a1)](){const G8=a0bL;let b;this['camera']&&(b=new a0c(),this[G8(0x710)]['getWorldPosition'](b));const d=Cr(this['points'],b),f=new a0g({'color':lr,'opacity':Dg,'transparent':!0x0,'side':0x2,'depthTest':!0x1}),g=new a0e(d,f);this['scene']['add'](g);const i=new Ae(),j=[];this[G8(0x618)]['forEach'](t=>{j['push'](t['x'],t['y'],t['z']);});const k=this['points'][0x0];j[G8(0x4f5)](k['x'],k['y'],k['z']),i['setPositions'](j);const m=new ne({'color':lr,'depthTest':!0x1,'linewidth':Lg,'opacity':Mg,'resolution':new a0l(window[G8(0x7e7)],window['innerHeight'])}),p=new de(i,m);return this['scene']['add'](p),{'polygon':g,'borderLine':p};}[a0bL(0x264)](){const G9=a0bL,{objects:b}=this[G9(0x10b)]['pop']()||{'objects':[]};b[G9(0xb8)](c=>{this['scene']['remove'](c);});}[a0bL(0x475)](b){const Gf=a0bL;if(b>=0x0&&b<this['measurements']['length']){const {objects:c}=this['measurements'][b];c['forEach'](d=>{const Gb=a0b;this[Gb(0x440)]['remove'](d);}),this[Gf(0x10b)]['splice'](b,0x1),this['selectedIndex']===b?this[Gf(0x7a9)]=null:this[Gf(0x7a9)]!==null&&this['selectedIndex']>b&&this[Gf(0x7a9)]--;}}['getMeasurements'](){return this['measurements'];}['clear'](){const Gj=a0bL;this[Gj(0x10b)]['forEach'](b=>{b['objects']['forEach'](c=>{this['scene']['remove'](c);});}),this['measurements']=[],this['clearDraw'](),this[Gj(0x7a9)]=null;}}class nf extends Se{constructor(b){const Gk=a0bL;super(b),C(this,'measurements',[]),C(this,Gk(0x701),[]),C(this,'guideLine',null),C(this,Gk(0x7db)),C(this,Gk(0x9ea),null),C(this,'selectedIndex',null),C(this,Gk(0x538),()=>{const Gm=Gk;this[Gm(0x2ee)][Gm(0x3aa)]['setFromCamera'](this['viewer']['mouse'],this['viewer'][Gm(0x710)]),this['viewer'][Gm(0x3aa)]['firstHitOnly']=!0x0;const d=this['viewer']['raycaster'][Gm(0x7ec)](Array['from'](this['viewer'][Gm(0x816)]));if(this['guideLine']&&this['scene']&&(this[Gm(0x440)]['remove'](this[Gm(0xa43)]),this[Gm(0xa43)]=null),this[Gm(0x9ea)]&&this['scene']&&(this[Gm(0x440)][Gm(0x592)](this['previewLabel']),this[Gm(0x9ea)]=null),this[Gm(0x701)][Gm(0x3ea)]===0x1){if(d['length']>0x0&&d[0x0][Gm(0x3b8)]){const f=d[0x0];this[Gm(0x440)]&&this[Gm(0x7e3)](f[Gm(0x883)]);const g=this['selectedFaces'][0x0],h=new a0c()['subVectors'](f[Gm(0x883)],g[Gm(0x883)]),i=Math['abs'](h[Gm(0x7c9)](g[Gm(0x83)]));this['scene']&&this['drawPreviewLabel'](g[Gm(0x883)],f['point'],g[Gm(0x83)],i);}else{const j=this[Gm(0x2ee)][Gm(0x3aa)][Gm(0x715)]['direction'];let k=0x3e8;this['camera']&&Gm(0x445)in this[Gm(0x710)]&&(k=this['camera'][Gm(0x445)]*0.5);const m=j[Gm(0x433)](k)['add'](this[Gm(0x2ee)]['raycaster']['ray'][Gm(0x105)]);this[Gm(0x440)]&&this['drawGuideLine'](m);const p=this[Gm(0x701)][0x0],t=new a0c()[Gm(0x642)](m,p['point']),u=Math[Gm(0x855)](t[Gm(0x7c9)](p['normal']));this['scene']&&this[Gm(0x313)](p['point'],m,p['normal'],u);}}if(d[Gm(0x3ea)]>0x0&&d[0x0]['face']&&this['highlightPlane']){this[Gm(0x7db)]['visible']=!0x0;const v=d[0x0],w=v['face'],x=w[Gm(0x83)][Gm(0x471)]()['multiplyScalar'](0.001);if(this[Gm(0x7db)][Gm(0x1b7)]['copy'](v['point']['clone']()[Gm(0x577)](x)),this[Gm(0x7db)]['lookAt'](v['point']['clone']()[Gm(0x577)](w['normal'])),this[Gm(0x2ee)]['camera']?.[Gm(0x1b7)]){const y=this[Gm(0x2ee)]['camera'][Gm(0x1b7)][Gm(0x5a8)](v['point']);this['highlightPlane']['scale']['set'](y*0.055,y*0.055,0x1);}}else this['highlightPlane']&&(this['highlightPlane'][Gm(0x12e)]=!0x1);}),(this['cursor']=Gk(0x436),this['tooltip']=Gk(0xcc),this['viewer'][Gk(0x2bb)][Gk(0x8ae)]({'key':Gk(0x229),'type':Gk(0x89b),'callback':()=>{const Gp=Gk;this[Gp(0x7a9)]!=null&&this['removeByIndex'](this['selectedIndex']);}}),this['viewer']['shortcutManager'][Gk(0x8ae)]({'key':'Escape','type':'press','callback':()=>{const Gq=Gk;this['selectedFaces'][Gq(0x3ea)]>0x0&&this[Gq(0x907)](),this[Gq(0x79f)]();}}));}['onActivate'](){const Gv=a0bL;if(!this[Gv(0x7db)]&&this[Gv(0x440)]){const b=new a0as(0x1,0x1);this[Gv(0x7db)]=new a0e(b,this['planeMaterial']),this['highlightPlane']['visible']=!0x1,this[Gv(0x440)]['add'](this[Gv(0x7db)]);}this[Gv(0x34c)]='点击选择第一个面以开始测量';}[a0bL(0x73f)](){this['clearCurrentMeasurement']();}[a0bL(0x907)](){const Gw=a0bL;this[Gw(0xa43)]&&(this[Gw(0x440)][Gw(0x592)](this[Gw(0xa43)]),this['guideLine']=null),this[Gw(0x9ea)]&&(this['scene'][Gw(0x592)](this[Gw(0x9ea)]),this['previewLabel']=null),this[Gw(0x440)]&&this[Gw(0x701)]['forEach'](b=>{const Gx=Gw;this['scene']['remove'](b[Gx(0x146)]);}),this['selectedFaces']=[],this['highlightPlane']&&this['scene']&&this[Gw(0x440)][Gw(0x592)](this[Gw(0x7db)]),this['highlightPlane']['visible']=!0x1;}['clear'](){const Gy=a0bL;this[Gy(0x10b)]['forEach'](b=>{const Gz=Gy;b[Gz(0xad3)][Gz(0xb8)](c=>{const GB=Gz;this['scene'][GB(0x592)](c);});}),this['measurements']=[],this['clearCurrentMeasurement'](),this['selectedIndex']=null;}[a0bL(0x17c)](b){const GC=a0bL,c=this[GC(0x7db)]['clone'](),d=b['point']['clone']();c[GC(0x1b7)]['copy'](d),this[GC(0x440)]['add'](c);const f={'point':d,'normal':b['face'][GC(0x83)]['clone'](),'helper':c};this['selectedFaces']['push'](f),this[GC(0x701)][GC(0x3ea)]===0x1?this[GC(0x34c)]=GC(0x133):this['selectedFaces']['length']===0x2&&this[GC(0xfa)]();}[a0bL(0x7e3)](b){const GD=a0bL;if(this[GD(0x701)]['length']===0x0||!this['scene'])return;const d=this[GD(0x701)][0x0]['point'],f=this['selectedFaces'][0x0][GD(0x83)]['clone']()['normalize'](),g=new a0c()[GD(0x642)](b,d)[GD(0x7c9)](f),i=new a0c()[GD(0x6a5)](d,f['multiplyScalar'](g)),j=new Ae();j[GD(0x64b)]([d['x'],d['y'],d['z'],i['x'],i['y'],i['z']]);const k=new ne({'color':0xff0000,'depthTest':!0x1,'linewidth':2.5,'opacity':0.5,'resolution':new a0l(window['innerWidth'],window['innerHeight'])});this['guideLine']=new de(j,k),this[GD(0x440)]['add'](this['guideLine']);}[a0bL(0x313)](b,d,f,g){const GE=a0bL;if(!this['scene'])return;const i=new a0c()[GE(0x642)](d,b)['dot'](f),j=new a0c()['addVectors'](b,f[GE(0x471)]()['multiplyScalar'](i)),k=b[GE(0x471)]()[GE(0xacf)](j,0.5);this[GE(0x9ea)]=J({'className':GE(0x83a),'html':g[GE(0xab3)](0x2)+'\x20'+this['unit']}),this['previewLabel'][GE(0x1b7)][GE(0x3fe)](k),this[GE(0x440)][GE(0x577)](this[GE(0x9ea)]);}[a0bL(0x583)](b,{hits:c}){const GF=a0bL;c&&c[GF(0x3ea)]>0x0&&c[0x0][GF(0x3b8)]&&this['selectFace'](c[0x0]);}['completeMeasurement'](){const GG=a0bL;if(this[GG(0x701)]['length']<0x2)return;const [b,f]=this['selectedFaces'],i=b['normal'][GG(0x471)]()['normalize']()[GG(0x7c9)](f[GG(0x83)][GG(0x471)]()[GG(0x6ff)]()),j=Math[GG(0x855)](Math[GG(0x855)](i)-0x1)<0.01,k=new a0c()['subVectors'](f['point'],b[GG(0x883)]),l=Math[GG(0x855)](k['dot'](b[GG(0x83)]['clone']()[GG(0x6ff)]()));if(l<0.001){this[GG(0x34c)]=GG(0x4dc),this[GG(0x193)][GG(0x8c6)](GG(0x39c),0xbb8),setTimeout(()=>{const GH=GG;this[GH(0x34c)]='',this[GH(0x907)](),this['tooltip']=GH(0x432);},0x7d0);return;}const {line:m,projectedEnd:p}=this[GG(0x442)](b['point'],f[GG(0x883)],b['normal']);f['helper']&&f['helper'][GG(0x1b7)][GG(0x3fe)](p);const t=new a0c()['lerpVectors'](b[GG(0x883)],p,0.5),v=j?'':'<span\x20style=\x22color:#ff6b6b;font-weight:bold;\x22>⚠\x20非平行面</span>',w=J({'className':'bmv-measure-label','html':l[GG(0xab3)](0x2)+'\x20'+this['unit']+'\x20'+v+GG(0x1cd),'click':({event:x})=>{const GI=GG,y=x['target'];y&&y['tagName']===GI(0x50c)&&y['title']==='移除'?this['measurements'][GI(0xb8)]((z,B)=>{const GJ=GI;z[GJ(0xad3)][0x3]===w&&this['removeByIndex'](B);}):this['measurements'][GI(0xb8)]((z,B)=>{const GK=GI;z[GK(0xad3)][0x3]===w?(z['objects'][0x2]['material'][GK(0x6fb)]=0x1,z[GK(0xad3)][0x2][GK(0x690)]['linewidth']=0x6,z['objects'][0x2][GK(0x690)][GK(0x66e)][GK(0x720)](0xff00),this[GK(0x7a9)]=B):(z[GK(0xad3)][0x2]['material'][GK(0x6fb)]=0.75,z['objects'][0x2]['material'][GK(0xad0)]=0x4,z[GK(0xad3)][0x2][GK(0x690)]['color']['setHex'](0x377ee8));});}});w['position']['copy'](t),this['scene']&&this['scene'][GG(0x577)](w),this['measurements'][GG(0x4f5)]({'distance':parseFloat(l['toFixed'](0x2)),'unit':this['unit'],'faces':[{'point':b[GG(0x883)],'normal':b[GG(0x83)]},{'point':f['point'],'normal':f[GG(0x83)]}],'objects':[b['helper'],f['helper'],m,w]}),this[GG(0x701)]=[],this[GG(0x79f)]();}['drawDistanceLine'](b,d,f){const GL=a0bL,g=f[GL(0x471)](),i=new a0c()['addVectors'](b,g[GL(0x433)](new a0c()['subVectors'](d,b)['dot'](g))),j=new Ae();j[GL(0x64b)]([b['x'],b['y'],b['z'],i['x'],i['y'],i['z']]);const k=new ne({'color':0x377ee8,'depthTest':!0x1,'opacity':0.75,'linewidth':0x4,'resolution':new a0l(window['innerWidth'],window[GL(0x349)])}),m=new de(j,k);return this['scene']&&this['scene'][GL(0x577)](m),{'line':m,'projectedEnd':i};}['removeByIndex'](b){const GM=a0bL;if(b>=0x0&&b<this[GM(0x10b)]['length']&&this[GM(0x440)]){const {objects:c}=this[GM(0x10b)][b];c[GM(0xb8)](d=>{this['scene']['remove'](d);}),this['measurements'][GM(0x230)](b,0x1),this[GM(0x7a9)]===b?this['selectedIndex']=null:this['selectedIndex']!==null&&this[GM(0x7a9)]>b&&this[GM(0x7a9)]--;}}['removeLast'](){const GN=a0bL,b=this[GN(0x10b)][GN(0x249)]();b&&this[GN(0x440)]&&b['objects']['forEach'](c=>{const GO=GN;this[GO(0x440)][GO(0x592)](c);});}['getMeasurements'](){return this['measurements'];}}class rf extends Se{constructor(b){const GP=a0bL;super(b),C(this,'measurements',[]),C(this,GP(0x618),[]),C(this,'snapPoint'),C(this,'guideLine',null),C(this,'previewLabel',null),C(this,GP(0x9bc),null),C(this,'isAxisLocked',!0x1),C(this,GP(0x367),null),C(this,GP(0x7a)),C(this,'selectedIndex',null),(this[GP(0x67b)]=GP(0x83e),this[GP(0x2ee)][GP(0x2bb)]['addShortcut']({'key':'Delete','type':GP(0x89b),'callback':()=>{const GQ=GP;this['selectedIndex']!=null&&this[GQ(0x475)](this['selectedIndex']);}}));}['onActivate'](){}[a0bL(0x73f)](){this['clearDraw']();}[a0bL(0x616)](){const GR=a0bL;this[GR(0x850)]&&(this[GR(0x440)][GR(0x592)](this['snapPoint']),this['snapPoint']=null),this['guideLine']&&(this['scene'][GR(0x592)](this['guideLine']),this['guideLine']=null),this['previewLabel']&&(this[GR(0x440)]['remove'](this['previewLabel']),this['previewLabel']=null),this[GR(0x9bc)]&&(this[GR(0x440)][GR(0x592)](this['alignmentLine']),this['alignmentLine']=null),this['points']['length']==0x1&&this['marker']&&this['scene']['remove'](this[GR(0x7a)]),this['points']=[],this[GR(0xa9f)]='',this[GR(0x5e7)]=!0x1,this[GR(0x367)]=null;}[a0bL(0x301)](c){const GS=a0bL;if(!(c?.['face']&&c[GS(0x3e3)]?.['geometry']))return!0x1;const {face:i,object:j,point:k}=c,t=j[GS(0x813)]['attributes']['position'],v=[i['a'],i['b'],i['c']]['map'](R=>{const S=new a0c();return S['fromBufferAttribute'](t,R),j['localToWorld'](S),S;}),[x]=this['points'],z=[[v[0x0],v[0x1]],[v[0x1],v[0x2]],[v[0x2],v[0x0]]];this['camera'][GS(0x2c7)]();const B=this['viewer']['getWidth'](k)*0x7,F=this[GS(0x2ee)][GS(0x283)](k)*0x5,H=this['viewer'][GS(0x283)](k)*0x3;let L=0x1/0x0,N=null;if(v[GS(0xb8)](R=>{const GT=GS,S=k['distanceTo'](R);S<=B&&S<L&&(L=S,N=R[GT(0x471)]());}),N||z[GS(0xb8)](([R,S])=>{const GU=GS,T=this['getClosestPointOnLineSegment'](k,R,S),U=k[GU(0x5a8)](T);if(U<=F&&U<L&&(L=U,N=T['clone'](),x)){const a0=Math['abs'](T['x']-x['x']),a1=Math['abs'](T['y']-x['y']),a2=Math[GU(0x855)](T['z']-x['z']),a3=T['clone']();let a4=!0x1;Math[GU(0x855)](a0-a1)<H?(a3['x']=x['x'],a3['y']=x['y'],a4=!0x0):Math['abs'](a0-a2)<H?(a3['x']=x['x'],a3['z']=x['z'],a4=!0x0):Math['abs'](a1-a2)<H&&(a3['y']=x['y'],a3['z']=x['z'],a4=!0x0),a4&&(L=T['distanceTo'](a3),N=a3);}}),!N&&x){const R=Math['abs'](k['x']-x['x']),S=Math['abs'](k['y']-x['y']),T=Math[GS(0x855)](k['z']-x['z']),U=k[GS(0x471)]();let a0=!0x1;Math['abs'](R-S)<H?(U['x']=x['x'],U['y']=x['y'],a0=!0x0):Math[GS(0x855)](R-T)<H?(U['x']=x['x'],U['z']=x['z'],a0=!0x0):Math[GS(0x855)](S-T)<H&&(U['y']=x['y'],U['z']=x['z'],a0=!0x0),a0&&(L=k[GS(0x5a8)](U),N=U);}return N?(c['point']=N,!0x0):!0x1;}[a0bL(0x204)](b,d,f){const GV=a0bL,g=new a0c()['subVectors'](f,d),i=new a0c()[GV(0x642)](b,d),j=g['length'](),k=g['normalize']();let m=i['dot'](k);return m=Math[GV(0x36b)](0x0,Math['min'](m,j)),new a0c()['copy'](d)[GV(0x577)](k['multiplyScalar'](m));}['onMouseMove'](b,f){const GW=a0bL,g=b?.['shiftKey']||!0x1;this[GW(0x2ee)][GW(0x3aa)][GW(0xfc)](this[GW(0x2ee)]['mouse'],this['viewer'][GW(0x710)]),this[GW(0x2ee)]['raycaster'][GW(0x91f)]=!0x0;let i=this[GW(0x2ee)]['raycaster']['intersectObjects'](Array[GW(0x9c4)](this['viewer'][GW(0x816)]));this['points'][GW(0x3ea)]>=0x1&&(this[GW(0x34c)]='点击添加第\x20'+(this['points'][GW(0x3ea)]+0x1)+'\x20个点,完成距离测量'+(g?'(按住Shift锁定轴)':'')),this['snapPoint']&&(this[GW(0x440)][GW(0x592)](this['snapPoint']),this[GW(0x850)]=null),this['guideLine']&&(this['scene'][GW(0x592)](this[GW(0xa43)]),this['guideLine']=null),this[GW(0x9ea)]&&(this['scene']['remove'](this['previewLabel']),this[GW(0x9ea)]=null),this['alignmentLine']&&(this['scene'][GW(0x592)](this[GW(0x9bc)]),this[GW(0x9bc)]=null);let j,k=!0x1;if(i[GW(0x3ea)]>0x0)k=this['snapToFaceEdgeOrCorner'](i[0x0]),j=i[0x0]['point'];else{const p=this[GW(0x2ee)][GW(0x3aa)][GW(0x715)]['direction'];let t=0x3e8;this[GW(0x710)]&&'far'in this['camera']&&(t=this[GW(0x710)]['far']*0.5),j=p['multiplyScalar'](t)[GW(0x577)](this['viewer']['raycaster']['ray'][GW(0x105)]);}if(g&&this[GW(0x618)][GW(0x3ea)]>=0x1){const {projectedPoint:u,axis:v}=this[GW(0x3d2)](j,this['points'][0x0]);j=u,this['isAxisLocked']=!0x0,this[GW(0x367)]=v;const w={'x':'X轴','y':'Y轴','z':'Z轴'};this[GW(0xa9f)]=GW(0x4e2)+w[v];}else{if(this['isAxisLocked']=!0x1,this[GW(0x367)]=null,this['points'][GW(0x3ea)]>=0x1){const {axis:x}=this['getLineColorByDirection'](this[GW(0x618)][0x0],j);if(x){const y={'x':'X轴','y':'Y轴','z':'Z轴'};this['helperTip']=GW(0x1d8)+y[x];}else this[GW(0xa9f)]='';}else this[GW(0xa9f)]='';}let m='measure-snap-point';if((k||this[GW(0x5e7)])&&(m='measure-adsorb'),this['snapPoint']=J({'className':m}),this['snapPoint']['position']['copy'](j),this['scene'][GW(0x577)](this[GW(0x850)]),this['drawGuideLine'](j),this[GW(0x618)]['length']>=0x1){const z=this[GW(0x618)][0x0]['distanceTo'](j);this['drawPreviewLabel'](this['points'][0x0],j,z),k&&this[GW(0x618)]['length']===0x1&&!this['isAxisLocked']&&this['drawAlignmentLine'](this['points'][0x0],j);}}[a0bL(0x583)](b,{hits:c}){const GX=a0bL;if(c&&c[GX(0x3ea)]>0x0){this[GX(0x301)](c[0x0]);let d=c[0x0]['point'];if(b[GX(0x40e)]&&this[GX(0x618)][GX(0x3ea)]>=0x1){const {projectedPoint:f}=this['projectToNearestAxis'](c[0x0]['point'],this[GX(0x618)][0x0]);d=f;}this[GX(0x496)](d);}}['addPoint'](b){const GY=a0bL;if(this['points']['push'](b[GY(0x471)]()),this['points'][GY(0x3ea)]==0x1)this[GY(0x7a)]=J({'className':GY(0x9d3)}),this[GY(0x7a)]['position']['copy'](b),this[GY(0x440)][GY(0x577)](this[GY(0x7a)]);else{if(this['points'][GY(0x3ea)]>=0x2){const d=this[GY(0x613)](),[f,g]=this['points'],h=f['distanceTo'](g),i=J({'className':GY(0x634),'html':h['toFixed'](0x2)+'\x20'+this[GY(0xf2)]+'\x20<span\x20title=\x22移除\x22\x20class=\x22bmv-measure-label-delete\x22>x</span>','click':({event:k})=>{const GZ=GY,m=k['target'];m&&m['tagName']=='SPAN'?this[GZ(0x10b)]['forEach']((p,t)=>{const H0=GZ;p[H0(0xad3)][0x3]==i&&this[H0(0x475)](t);}):this['measurements'][GZ(0xb8)]((t,v)=>{const H1=GZ;if(t[H1(0xad3)][0x3]==i)t[H1(0xad3)][0x2][H1(0x690)][H1(0x6fb)]=0x1,t[H1(0xad3)][0x2]['material'][H1(0xad0)]=0x6,t['objects'][0x2]['material'][H1(0x66e)][H1(0x720)](0xff00),this[H1(0x7a9)]=v;else{t[H1(0xad3)][0x2]['material']['opacity']=0.75,t[H1(0xad3)][0x2]['material'][H1(0xad0)]=0x4;const [w,x]=t[H1(0x618)],{color:y}=this[H1(0x4f1)](w,x);t['objects'][0x2][H1(0x690)]['color']['setHex'](y);}});}});i[GY(0x1b7)]['copy'](f['clone']()[GY(0xacf)](g,0.5)),this[GY(0x440)]['add'](i);const j=J({'className':GY(0x9d3)});j['position']['copy'](g),this[GY(0x440)][GY(0x577)](j),this['measurements']['push']({'length':parseFloat(h[GY(0xab3)](0x2)),'unit':this[GY(0xf2)],'points':[f,g],'objects':[this['marker'],j,d,i]}),this[GY(0x79f)]();}}}['removeLast'](){const H2=a0bL,b=this[H2(0x10b)][H2(0x249)]();b&&b['objects'][H2(0xb8)](c=>{const H3=H2;this['scene']&&this[H3(0x440)][H3(0x592)](c);});}[a0bL(0x475)](b){const H4=a0bL;if(b<0x0||b>=this[H4(0x10b)][H4(0x3ea)])return;const {objects:c}=this['measurements'][b];c[H4(0xb8)](d=>{const H5=H4;this['scene'][H5(0x592)](d);}),this[H4(0x10b)]['splice'](b,0x1),this['selectedIndex']===b?this[H4(0x7a9)]=null:this['selectedIndex']!==null&&this[H4(0x7a9)]>b&&this['selectedIndex']--;}['getMeasurements'](){return this['measurements'];}[a0bL(0x752)](){const H6=a0bL;this[H6(0x10b)][H6(0xb8)](b=>{b['objects']['forEach'](c=>{const H7=a0b;this[H7(0x440)]['remove'](c);});}),this[H6(0x10b)]=[],this['selectedIndex']=null,this['clearDraw']();}['projectToNearestAxis'](b,d){const H8=a0bL,f=new a0c()['subVectors'](b,d),g=new a0c(Math[H8(0x855)](f['x']),Math[H8(0x855)](f['y']),Math[H8(0x855)](f['z']));let h='x',i=g['x'];g['y']>i&&(i=g['y'],h='y'),g['z']>i&&(i=g['z'],h='z');const j=d['clone']();return h==='x'?j['x']=b['x']:h==='y'?j['y']=b['y']:j['z']=b['z'],{'projectedPoint':j,'axis':h};}[a0bL(0x4f1)](b,d){const H9=a0bL,f=new a0c()['subVectors'](d,b);if(f[H9(0x3ea)]()<0.001)return{'color':0x377ee8,'axis':null};const g=f['clone']()[H9(0x6ff)](),i=new a0c(Math[H9(0x855)](g['x']),Math['abs'](g['y']),Math[H9(0x855)](g['z'])),j=0.99,k=0.01;return i['x']>j&&i['y']<k&&i['z']<k?{'color':0xff0000,'axis':'x'}:i['y']>j&&i['x']<k&&i['z']<k?{'color':0xff,'axis':'y'}:i['z']>j&&i['x']<k&&i['y']<k?{'color':0xff00,'axis':'z'}:{'color':0x377ee8,'axis':null};}['drawGuideLine'](b){const Hb=a0bL,c=this[Hb(0x618)][0x0];if(!c)return;const d=new Ae();d['setPositions']([c['x'],c['y'],c['z'],b['x'],b['y'],b['z']]);let f;this[Hb(0x5e7)]&&this['lockedAxis']?f={'x':0xff0000,'y':0xff,'z':0xff00}[this['lockedAxis']]:f=this['getLineColorByDirection'](c,b)['color'];const g=new ne({'color':f,'depthTest':!0x1,'linewidth':2.5,'opacity':0.5,'resolution':new a0l(window['innerWidth'],window[Hb(0x349)])});this['guideLine']=new de(d,g),this['scene']['add'](this[Hb(0xa43)]);}[a0bL(0x313)](b,c,d){const Hf=a0bL,f=b[Hf(0x471)]()['lerp'](c,0.5);this['previewLabel']=J({'className':Hf(0x83a),'html':d[Hf(0xab3)](0x2)+'\x20'+this[Hf(0xf2)]}),this['previewLabel']['position']['copy'](f),this[Hf(0x440)]['add'](this[Hf(0x9ea)]);}[a0bL(0xad7)](b,f){const Hj=a0bL,g=Math[Hj(0x855)](f['x']-b['x']),i=Math[Hj(0x855)](f['y']-b['y']),j=Math[Hj(0x855)](f['z']-b['z']),k=0.01;let m=f[Hj(0x471)](),p=!0x1;if(g<k&&i<k?(m['x']=b['x'],m['y']=b['y'],p=!0x0):g<k&&j<k?(m['x']=b['x'],m['z']=b['z'],p=!0x0):i<k&&j<k&&(m['y']=b['y'],m['z']=b['z'],p=!0x0),p&&m['distanceTo'](f)>0.001){const t=new Ae();t[Hj(0x64b)]([b['x'],b['y'],b['z'],m['x'],m['y'],m['z']]);const u=new ne({'color':0xff00,'depthTest':!0x1,'linewidth':1.5,'opacity':0.3,'resolution':new a0l(window['innerWidth'],window[Hj(0x349)])});this['alignmentLine']=new de(t,u),this['scene']['add'](this['alignmentLine']);}}['drawLine'](){const Hk=a0bL,b=this[Hk(0x618)][0x0],d=this[Hk(0x618)][0x1],f=new Ae();f['setPositions']([b['x'],b['y'],b['z'],d['x'],d['y'],d['z']]);const {color:g}=this['getLineColorByDirection'](b,d),h=new ne({'color':g,'depthTest':!0x1,'opacity':0.75,'linewidth':0x4,'resolution':new a0l(window['innerWidth'],window[Hk(0x349)])}),i=new de(f,h);return this['scene'][Hk(0x577)](i),i;}}class of extends Se{constructor(b){const Hm=a0bL;super(b),C(this,Hm(0x10d),1.7),C(this,Hm(0x8ab),0xa),C(this,'CSS_CLASS_WALK',Hm(0x598)),C(this,'CSS_CLASS_LOOK_AROUND',Hm(0x789)),this[Hm(0x67b)]=this['CSS_CLASS_WALK'];}[a0bL(0x7d3)](){const Hp=a0bL;if(!this[Hp(0x2ee)]['isPerspective']()){this[Hp(0x193)]['error']('正交相机不支持第一人称漫游,请切换到透视相机',0xbb8),this['deactivate']();return;}this['tooltip']=Hp(0x3c4);}['onDeactivate'](){const Hq=a0bL;this['viewer']['setOrbitBehavior']('auto'),this[Hq(0x2ee)]['canvas'][Hq(0x240)]['remove'](this[Hq(0x7c2)]),this['stopTool']();}async['onClick'](b,c){const Hv=a0bL;if(!this['viewer'][Hv(0x31b)]()){this[Hv(0x193)]['error'](Hv(0x742),0xbb8),this[Hv(0x79f)]();return;}const {hits:d}=c;if(!(!d||!this['isValidHit'](d)))try{const f=this['calculateCameraPosition'](d[0x0][Hv(0x883)]);if(!this[Hv(0x2b3)](f)){console[Hv(0x5fb)](Hv(0x3af));return;}const g=this[Hv(0x7c7)](f);await this['moveCameraToPosition'](f,g),this[Hv(0x81a)]();}catch(h){console[Hv(0x644)]('[PositionCameraTool]\x20定位相机失败:',h),this[Hv(0x34c)]=Hv(0x8e2);}}[a0bL(0x936)](b){const Hw=a0bL;return b[Hw(0x3ea)]>0x0&&b[0x0]['face']!==null&&b[0x0][Hw(0x3b8)]!==void 0x0;}[a0bL(0x2b3)](b){return!isNaN(b['x'])&&!isNaN(b['y'])&&!isNaN(b['z'])&&isFinite(b['x'])&&isFinite(b['y'])&&isFinite(b['z']);}['calculateCameraPosition'](b){const Hx=a0bL,c=new a0c();return this['viewer'][Hx(0x9e0)]&&this[Hx(0x2ee)][Hx(0x9e0)]['getPosition'](c),c['set'](b['x'],b['y']+this['eyeHeight'],b['z']),c;}[a0bL(0x7c7)](b){const Hy=a0bL;return new a0c(b['x'],b['y'],b['z']-this[Hy(0x8ab)]);}async['moveCameraToPosition'](b,c){const HB=a0bL;if(!this['viewer']['controls'])throw new Error(HB(0x247));await this[HB(0x2ee)]['controls']['setLookAt'](b['x'],b['y'],b['z'],c['x'],c['y'],c['z'],!0x0);}[a0bL(0x81a)](){const HC=a0bL;this['startTool'](),this['viewer']['setOrbitBehavior']('fixed'),this[HC(0x34c)]='',this[HC(0x2ee)][HC(0x7e0)]['classList']['add'](this['CSS_CLASS_LOOK_AROUND']),this['viewer'][HC(0x7e0)][HC(0x240)]['remove'](this['CSS_CLASS_WALK']);}}class af extends Se{constructor(b){const HD=a0bL;super(b),C(this,'raycaster'),C(this,HD(0x89),null),C(this,'propertyPanel',null),C(this,'closeButton',null),(this[HD(0x3aa)]=new a0aJ(),this[HD(0x67b)]='pointer',this[HD(0x4e9)]());}[a0bL(0x4e9)](){const HE=a0bL;this['propertyPanel']=document[HE(0x86)]('div'),this['propertyPanel'][HE(0x9a8)]='property-viewer-panel',Object['assign'](this['propertyPanel']['style'],{'position':'absolute','top':HE(0xed),'right':HE(0xed),'width':HE(0x28c),'maxHeight':'400px','backgroundColor':HE(0x43b),'color':'white','borderRadius':'8px','padding':HE(0x1cb),'zIndex':HE(0xa2c),'display':HE(0x4b9),'boxShadow':'0\x204px\x2020px\x20rgba(0,\x200,\x200,\x200.3)','backdropFilter':HE(0x348),'border':HE(0x4f0),'fontFamily':'Arial,\x20sans-serif','fontSize':HE(0x8c1),'overflowY':'auto','transition':HE(0x5e8)});const b=document[HE(0x86)](HE(0x521));Object['assign'](b[HE(0xa1a)],{'display':HE(0x4db),'justifyContent':'space-between','alignItems':HE(0xabb),'marginBottom':HE(0x383),'paddingBottom':HE(0x7f4),'borderBottom':'1px\x20solid\x20rgba(255,\x20255,\x20255,\x200.2)'});const c=document['createElement']('h3');c['textContent']='对象属性',Object[HE(0x4e5)](c['style'],{'margin':'0','fontSize':'16px','fontWeight':HE(0x3fa),'color':HE(0x34e)}),this['closeButton']=document['createElement']('button'),this['closeButton']['textContent']='✕',Object['assign'](this[HE(0x9c1)][HE(0xa1a)],{'background':'none','border':HE(0x4b9),'color':HE(0x429),'fontSize':HE(0x71f),'cursor':HE(0x1fa),'padding':HE(0x973),'borderRadius':HE(0x1fb),'transition':HE(0x40c)}),this['closeButton']['addEventListener']('mouseenter',()=>{const HF=HE;this[HF(0x9c1)]['style'][HF(0x291)]='rgba(255,\x20255,\x20255,\x200.1)';}),this['closeButton'][HE(0x696)](HE(0xab),()=>{const HG=HE;this['closeButton'][HG(0xa1a)]['backgroundColor']='transparent';}),this[HE(0x9c1)]['addEventListener'](HE(0x9e),()=>{const HH=HE;this[HH(0x9d)]();}),b['appendChild'](c),b[HE(0x2cf)](this[HE(0x9c1)]),this[HE(0x861)]['appendChild'](b);const d=document['createElement']('div');d['id']=HE(0x871),this['propertyPanel'][HE(0x2cf)](d),this[HE(0x2ee)]['el'][HE(0x2cf)](this[HE(0x861)]);}[a0bL(0x959)](){const HI=a0bL;this['propertyPanel']&&(this[HI(0x861)][HI(0xa1a)][HI(0x46e)]='block',this[HI(0x861)]['style'][HI(0x6fb)]='0',this['propertyPanel']['style'][HI(0xd1)]=HI(0x34f),requestAnimationFrame(()=>{const HJ=HI;this['propertyPanel'][HJ(0xa1a)][HJ(0x6fb)]='1',this['propertyPanel']['style'][HJ(0xd1)]=HJ(0x4e0);}));}['hidePropertyPanel'](){const HK=a0bL;this[HK(0x861)]&&(this[HK(0x861)]['style'][HK(0x6fb)]='0',this[HK(0x861)]['style'][HK(0xd1)]='translateX(20px)',setTimeout(()=>{const HL=HK;this[HL(0x861)][HL(0xa1a)]['display']=HL(0x4b9);},0x12c)),this[HK(0x89)]=null;}[a0bL(0x1b2)](b){const HM=a0bL;if(!this['propertyPanel'])return;const c=this[HM(0x861)]['querySelector']('#property-content');if(!c)return;c['innerHTML']='';const d=this['extractObjectProperties'](b);if(d[HM(0xb8)](f=>{const HN=HM,g=document[HN(0x86)](HN(0x521));Object['assign'](g[HN(0xa1a)],{'display':'flex','justifyContent':HN(0x333),'alignItems':HN(0xabb),'padding':HN(0x3bd),'borderBottom':'1px\x20solid\x20rgba(255,\x20255,\x20255,\x200.1)'});const h=document['createElement']('span');h[HN(0x209)]=f['label'],Object[HN(0x4e5)](h['style'],{'fontWeight':'500','color':'rgba(255,\x20255,\x20255,\x200.8)'});const i=document['createElement']('span');i['textContent']=f[HN(0xaa2)],Object['assign'](i[HN(0xa1a)],{'color':HN(0x34e),'fontWeight':HN(0x3fa),'maxWidth':HN(0x847),'overflow':HN(0x31e),'textOverflow':HN(0x9ab),'whiteSpace':HN(0x96c)}),g[HN(0x2cf)](h),g[HN(0x2cf)](i),c['appendChild'](g);}),d['length']===0x0){const f=document['createElement'](HM(0x521));f['textContent']=HM(0xdf),f[HM(0xa1a)][HM(0x5cb)]=HM(0xabb),f[HM(0xa1a)][HM(0x66e)]='rgba(255,\x20255,\x20255,\x200.5)',f[HM(0xa1a)][HM(0x6f8)]=HM(0xaac),c['appendChild'](f);}}[a0bL(0xaff)](b){const HO=a0bL,c=[];c[HO(0x4f5)]({'label':HO(0x835),'value':b['type']}),c['push']({'label':'对象名称','value':b['name']||'未命名'}),c[HO(0x4f5)]({'label':'UUID','value':b['uuid']['substring'](0x0,0x8)+'...'});const d=b[HO(0x56d)]?b[HO(0x56d)][HO(0x3ea)]:0x0,f=this['getParentCount'](b);return c[HO(0x4f5)]({'label':'子集数量','value':d['toString']()}),c[HO(0x4f5)]({'label':HO(0x18c),'value':f[HO(0x2d7)]()}),b['position']&&c['push']({'label':'位置','value':'X:'+b[HO(0x1b7)]['x'][HO(0xab3)](0x2)+HO(0x57a)+b['position']['y']['toFixed'](0x2)+HO(0x97f)+b[HO(0x1b7)]['z']['toFixed'](0x2)}),b['rotation']&&c[HO(0x4f5)]({'label':'旋转','value':'X:'+(b['rotation']['x']*0xb4/Math['PI'])['toFixed'](0x1)+'°,\x20Y:'+(b[HO(0x46b)]['y']*0xb4/Math['PI'])[HO(0xab3)](0x1)+HO(0x78a)+(b['rotation']['z']*0xb4/Math['PI'])['toFixed'](0x1)+'°'}),b[HO(0x61e)]&&c['push']({'label':'缩放','value':'X:'+b[HO(0x61e)]['x']['toFixed'](0x2)+',\x20Y:'+b[HO(0x61e)]['y']['toFixed'](0x2)+HO(0x97f)+b['scale']['z'][HO(0xab3)](0x2)}),c['push']({'label':'可见','value':b['visible']?'是':'否'}),b['userData']&&Object['keys'](b['userData'])[HO(0x3ea)]>0x0&&Object['entries'](b[HO(0x6f)])[HO(0xb8)](([g,h])=>{const HP=HO;g&&h!==void 0x0&&h!==null&&c[HP(0x4f5)]({'label':g,'value':this['formatUserDataValue'](h)});}),c;}['getParentCount'](b){const HQ=a0bL;let c=0x0,d=b[HQ(0x476)];for(;d!==null;)c++,d=d[HQ(0x476)];return c;}[a0bL(0x17f)](b){const HR=a0bL;return typeof b=='string'?b['length']>0x1e?b['substring'](0x0,0x1e)+'...':b:typeof b=='number'?b['toString']():typeof b==HR(0x708)?b?'是':'否':Array['isArray'](b)?JSON['stringify'](b):typeof b=='object'?'对象':String(b);}['onClick'](b,c){const HS=a0bL,{hits:d}=c;if(d&&d['length']>0x0){const f=d[0x0][HS(0x3e3)];this['selectedObject']=f,this[HS(0x1b2)](f),this[HS(0x959)](),this[HS(0x193)]['success']('已选择对象:\x20'+(f['name']||f['type']));}}[a0bL(0x7d3)](){const HT=a0bL;this[HT(0x34c)]=HT(0xa71),this[HT(0x193)]['info']('属性查看工具已激活,点击模型查看属性信息');}['onDeactivate'](){this['hidePropertyPanel'](),this['tooltip']='',this['helperTip']='';}['activate'](){super['activate']();}[a0bL(0x79f)](){const HU=a0bL;super[HU(0x79f)]();}[a0bL(0x1a5)](){const HV=a0bL;this[HV(0x861)]&&this[HV(0x861)][HV(0x1d0)]&&this[HV(0x861)][HV(0x1d0)][HV(0x197)](this[HV(0x861)]),super['dispose']();}get[a0bL(0x9b)](){return this['_viewer']['renderer'];}}const hr=0x377ee8,Ar=0x3,dr=0.9,Fg=0xff00,Og=0x5,Ng=0xff0000,Ug=0x2,Gg=0.6,zg=0.01,Hg=0xf;class cf extends Se{constructor(b){const HW=a0bL;super(b),C(this,'drawings',[]),C(this,'currentPoints',[]),C(this,'isDrawing',!0x1),C(this,HW(0xa43),null),C(this,'snapPoint',null),C(this,HW(0x25e),!0x0),C(this,HW(0x7a9),null),(this[HW(0x67b)]=HW(0x9a),this['viewer'][HW(0x2bb)][HW(0x8ae)]({'key':'Delete','type':'press','callback':()=>{this['selectedIndex']!=null&&this['removeByIndex'](this['selectedIndex']);}}));}[a0bL(0x7d3)](){const HX=a0bL;this[HX(0x34c)]='按住鼠标拖动绘制线条,松开完成绘制',this[HX(0x9e0)]&&(this[HX(0x25e)]=this['controls'][HX(0x2d3)],this[HX(0x9e0)]['enabled']=!0x1);}['onDeactivate'](){const HY=a0bL;this['clearDraw'](),this['controls']&&(this['controls']['enabled']=this[HY(0x25e)]);}[a0bL(0x616)](){const HZ=a0bL;this[HZ(0x440)]&&(this['snapPoint']&&(this[HZ(0x440)]['remove'](this[HZ(0x850)]),this[HZ(0x850)]=null),this['guideLine']&&(this['scene'][HZ(0x592)](this[HZ(0xa43)]),this['guideLine']=null),this['currentPoints']=[],this['isDrawing']=!0x1,this['helperTip']='');}['snapToFaceEdgeOrCorner'](b){const I0=a0bL;if(!(b?.[I0(0x3b8)]&&b[I0(0x3e3)]))return!0x1;const c=b['object'];if(!(c instanceof a0e)||!c[I0(0x813)])return!0x1;const {face:f,point:i}=b,j=c[I0(0x813)][I0(0x4e1)][I0(0x1b7)],k=[f['a'],f['b'],f['c']]['map'](x=>{const I1=I0,y=new a0c();return y[I1(0x6be)](j,x),c[I1(0x265)](y),y;}),m=[[k[0x0],k[0x1]],[k[0x1],k[0x2]],[k[0x2],k[0x0]]];this[I0(0x710)]&&this['camera']['updateMatrixWorld']();const p=this[I0(0x2ee)]['getWidth'](i)*0x7,t=this['viewer']['getWidth'](i)*0x5;let v=0x1/0x0,w=null;return k['forEach'](x=>{const y=i['distanceTo'](x);y<=p&&y<v&&(v=y,w=x['clone']());}),w||m[I0(0xb8)](([x,y])=>{const I2=I0,z=this['getClosestPointOnLineSegment'](i,x,y),B=i['distanceTo'](z);B<=t&&B<v&&(v=B,w=z[I2(0x471)]());}),w?(b['point']=w,!0x0):!0x1;}['getClosestPointOnLineSegment'](b,d,f){const I3=a0bL,g=new a0c()['subVectors'](f,d),i=new a0c()[I3(0x642)](b,d),j=g['length'](),k=g[I3(0x6ff)]();let m=i['dot'](k);return m=Math['max'](0x0,Math['min'](m,j)),new a0c()['copy'](d)[I3(0x577)](k[I3(0x433)](m));}['onMouseDown'](b,c){const I4=a0bL;if(this[I4(0xabe)]){this[I4(0x823)]['length']>=0x2?this['completeCurrentLine']():this[I4(0x616)]();return;}if(this['startTool'](),this[I4(0xabe)]=!0x0,this[I4(0x823)]=[],!this[I4(0x2ee)][I4(0x710)])return;this[I4(0x2ee)]['raycaster']['setFromCamera'](this['viewer'][I4(0x916)],this[I4(0x2ee)][I4(0x710)]),this[I4(0x2ee)][I4(0x3aa)]['firstHitOnly']=!0x0;let d=this[I4(0x2ee)][I4(0x3aa)]['intersectObjects'](Array[I4(0x9c4)](this[I4(0x2ee)]['visibleObjects']));d['length']>0x0&&(this['snapToFaceEdgeOrCorner'](d[0x0]),this['addPointToCurrentLine'](d[0x0][I4(0x883)]));}['onClick'](b,c){const I5=a0bL;if(this[I5(0xabe)])return;const d=this['detectClickedLine'](c);d!==null&&this[I5(0x2c9)](d);}[a0bL(0x538)](b,d){const I6=a0bL;if(!this[I6(0x77f)]||!this[I6(0x2ee)]['camera'])return;this[I6(0x2ee)][I6(0x3aa)]['setFromCamera'](this['viewer'][I6(0x916)],this['viewer']['camera']),this['viewer']['raycaster'][I6(0x91f)]=!0x0;let f=this[I6(0x2ee)]['raycaster']['intersectObjects'](Array['from'](this['viewer'][I6(0x816)]));this[I6(0xabe)]?this[I6(0x34c)]='拖动绘制线条,松开完成绘制':this['tooltip']=I6(0x897),this['scene']&&(this[I6(0x850)]&&(this['scene']['remove'](this[I6(0x850)]),this[I6(0x850)]=null),this['guideLine']&&(this[I6(0x440)]['remove'](this[I6(0xa43)]),this[I6(0xa43)]=null));let g,i=!0x1;if(f['length']>0x0)i=this[I6(0x301)](f[0x0]),g=f[0x0]['point'];else{const k=this[I6(0x2ee)][I6(0x3aa)]['ray']['direction'];let m=0x3e8;this[I6(0x710)]&&'far'in this[I6(0x710)]&&typeof this[I6(0x710)]['far']==I6(0x4ed)&&(m=this['camera']['far']*0.5),g=k[I6(0x433)](m)[I6(0x577)](this['viewer'][I6(0x3aa)]['ray'][I6(0x105)]);}let j='measure-snap-point';i&&(j=I6(0x889)),this['snapPoint']=J({'className':j}),this[I6(0x850)][I6(0x1b7)]['copy'](g),this['scene']&&this['scene']['add'](this['snapPoint']),this['isDrawing']&&this['currentPoints'][I6(0x3ea)]>0x0?(this[I6(0x823)][this['currentPoints']['length']-0x1][I6(0x5a8)](g)>=zg&&this[I6(0x485)](g),this['updateGuideLine'](g)):this['currentPoints']['length']>0x0&&!this['isDrawing']&&this[I6(0xa73)](g);}['onMouseUp'](b,c){const I7=a0bL;this[I7(0xabe)]&&(this['isDrawing']=!0x1,this[I7(0x823)]['length']>=0x2?this[I7(0x287)]():this[I7(0x616)](),this['stopTool']());}['addPointToCurrentLine'](b){const I8=a0bL;this['currentPoints']['push'](b['clone']()),this[I8(0x823)]['length']>=0x2&&this[I8(0x1f3)]();}['updateCurrentLine'](){const I9=a0bL;if(!this['scene'])return;const b=this['scene']['children']['find'](h=>h['userData']?.[I9(0x15a)]);b&&this['scene']['remove'](b);const c=new Ae(),d=[];this[I9(0x823)][I9(0xb8)](h=>{d['push'](h['x'],h['y'],h['z']);}),c[I9(0x64b)](d);const f=new ne({'color':hr,'depthTest':!0x1,'linewidth':Ar,'opacity':dr,'resolution':new a0l(window['innerWidth'],window['innerHeight'])}),g=new de(c,f);g['userData']['isFreehandCurrentLine']=!0x0,this[I9(0x440)]['add'](g);}['updateGuideLine'](b){const Ib=a0bL;if(this[Ib(0x823)]['length']===0x0||!this['scene'])return;const c=this[Ib(0x823)][this[Ib(0x823)][Ib(0x3ea)]-0x1],d=new Ae();d['setPositions']([c['x'],c['y'],c['z'],b['x'],b['y'],b['z']]);const f=new ne({'color':Ng,'depthTest':!0x1,'linewidth':Ug,'opacity':Gg,'resolution':new a0l(window[Ib(0x7e7)],window[Ib(0x349)])});this['guideLine']=new de(d,f),this[Ib(0x440)]['add'](this['guideLine']);}['completeCurrentLine'](){const If=a0bL;if(this['currentPoints']['length']<0x2||!this['scene'])return;const b=this['scene'][If(0x56d)][If(0x5b5)](k=>k[If(0x6f)]?.['isFreehandCurrentLine']);b&&this['scene'][If(0x592)](b);const d=new Ae(),f=[];this[If(0x823)]['forEach'](k=>{const Ij=If;f[Ij(0x4f5)](k['x'],k['y'],k['z']);}),d[If(0x64b)](f);const g=new ne({'color':hr,'depthTest':!0x1,'linewidth':Ar,'opacity':dr,'resolution':new a0l(window[If(0x7e7)],window['innerHeight'])}),h=new de(d,g);h[If(0x6f)][If(0xa50)]=!0x0,h[If(0x6f)]['drawingIndex']=this['drawings'][If(0x3ea)],this['scene']['add'](h);const i=this[If(0xaf8)](this['currentPoints']),j=J({'className':'bmv-measure-label','html':If(0x464)+(this[If(0x2f5)][If(0x3ea)]+0x1)+'\x20<span\x20title=\x22删除\x22\x20class=\x22bmv-measure-label-delete\x22>×</span>','click':({event:k})=>{const Ik=If,m=k['target'],p=this[Ik(0x2f5)][Ik(0x2ab)](t=>t[Ik(0x5ff)]===j);m&&(m['tagName']===Ik(0x50c)||m[Ik(0x240)][Ik(0x96b)](Ik(0x627)))?p!==-0x1&&this['removeByIndex'](p):p!==-0x1&&this[Ik(0x2c9)](p);}});j['position']['copy'](i),this['scene'][If(0x577)](j),this['drawings'][If(0x4f5)]({'points':[...this['currentPoints']],'line':h,'label':j}),this[If(0x616)]();}[a0bL(0xaf8)](b){const Im=a0bL;if(b['length']===0x0)return new a0c();if(b['length']===0x1)return b[0x0]['clone']();const c=new a0c();return b[Im(0xb8)](d=>{const Ip=Im;c[Ip(0x577)](d);}),c['divideScalar'](b[Im(0x3ea)]),c;}[a0bL(0x70d)](b){const Iq=a0bL;if(!this['viewer']['camera']||!this[Iq(0x440)]||this['drawings'][Iq(0x3ea)]===0x0)return null;this['viewer']['raycaster']['setFromCamera'](this[Iq(0x2ee)]['mouse'],this[Iq(0x2ee)]['camera']);let d;if(b[Iq(0x7f2)]&&b[Iq(0x7f2)][Iq(0x3ea)]>0x0)d=b['hits'][0x0][Iq(0x883)];else{const j=this[Iq(0x2ee)]['raycaster'][Iq(0x715)]['direction'];let k=0x3e8;this[Iq(0x710)]&&'far'in this[Iq(0x710)]&&typeof this['camera'][Iq(0x445)]=='number'&&(k=this[Iq(0x710)][Iq(0x445)]*0.5),d=j[Iq(0x433)](k)[Iq(0x577)](this[Iq(0x2ee)]['raycaster']['ray']['origin']);}const f=this['viewer'][Iq(0x283)](d)*Hg;let g=null,i=0x1/0x0;return this['drawings'][Iq(0xb8)]((m,n)=>{const It=Iq,t=m['points'];if(!(t[It(0x3ea)]<0x2))for(let v=0x0;v<t[It(0x3ea)]-0x1;v++){const w=t[v],x=t[v+0x1],y=this['getClosestPointOnLineSegment'](d,w,x),z=d[It(0x5a8)](y);z<f&&z<i&&(i=z,g=n);}}),g;}['selectLine'](b){const Iv=a0bL;if(!(b<0x0||b>=this[Iv(0x2f5)][Iv(0x3ea)])){if(this[Iv(0x7a9)]===b){this[Iv(0x7c4)](b,!0x1),this['selectedIndex']=null;return;}this[Iv(0x7a9)]!==null&&this[Iv(0x7c4)](this[Iv(0x7a9)],!0x1),this[Iv(0x7a9)]=b,this[Iv(0x7c4)](b,!0x0);}}['highlightLine'](b,c){const Iw=a0bL;if(b<0x0||b>=this['drawings']['length'])return;const {line:d}=this[Iw(0x2f5)][b],f=d[Iw(0x690)];c?(f[Iw(0x66e)][Iw(0x720)](Fg),f[Iw(0xad0)]=Og,f[Iw(0x6fb)]=0x1):(f[Iw(0x66e)][Iw(0x720)](hr),f[Iw(0xad0)]=Ar,f[Iw(0x6fb)]=dr);}['removeByIndex'](b){const Ix=a0bL;if(b<0x0||b>=this['drawings']['length']||!this[Ix(0x440)])return;const {line:c,label:d}=this['drawings'][b];this['scene'][Ix(0x592)](c),this['scene']['remove'](d),this['drawings']['splice'](b,0x1),this['selectedIndex']===b?this['selectedIndex']=null:this['selectedIndex']!==null&&this['selectedIndex']>b&&this[Ix(0x7a9)]--,this['drawings']['forEach']((f,g)=>{const Iy=Ix;if(f['line'][Iy(0x6f)]&&(f[Iy(0x50a)][Iy(0x6f)]['drawingIndex']=g),f['label']&&f['label']['element']){const h=f['label'][Iy(0x1de)]['querySelector']('.lens');h&&(h[Iy(0xa38)]='线条\x20'+(g+0x1)+Iy(0xb1b));}});}[a0bL(0x264)](){const Iz=a0bL,b=this['drawings'][Iz(0x249)]();b&&this['scene']&&(this['scene'][Iz(0x592)](b[Iz(0x50a)]),this['scene']['remove'](b['label']));}['getDrawings'](){return this['drawings'];}[a0bL(0x752)](){const IB=a0bL;if(!this['scene'])return;const b=this['scene'];this['drawings'][IB(0xb8)](c=>{const IC=IB;b[IC(0x592)](c[IC(0x50a)]),b[IC(0x592)](c[IC(0x5ff)]);}),this[IB(0x2f5)]=[],this['selectedIndex']=null,this[IB(0x616)]();}[a0bL(0x9d4)](){const ID=a0bL;this[ID(0x7a9)]!==null&&(this[ID(0x7c4)](this[ID(0x7a9)],!0x1),this[ID(0x7a9)]=null);}}const ua=0x377ee8,ga=0x3,fa=0.9,qg=0x2,Vg=0.6;class lf extends Se{constructor(b,c){const IE=a0bL;super(b),C(this,IE(0x985),[]),C(this,IE(0x7f8),[]),C(this,'points',[]),C(this,'snapPoint',null),C(this,'guideLine',null),C(this,IE(0x9bc),null),C(this,IE(0x25e),!0x0),C(this,IE(0x5e7),!0x1),C(this,'lockedAxis',null),C(this,IE(0x5a7),!0x0),C(this,IE(0x3f3),0x0),C(this,IE(0x7a9),null),(this['cursor']='--pencil',this[IE(0x5a7)]=c?.['continuousDrawing']!==!0x1,this['viewer']['shortcutManager'][IE(0x8ae)]({'key':'Delete','type':IE(0x89b),'callback':()=>{const IF=IE;this[IF(0x7a9)]!=null&&this[IF(0x475)](this['selectedIndex']);}}));}[a0bL(0x7d3)](){const IG=a0bL;this['tooltip']=IG(0x41d),this[IG(0x3f3)]=this[IG(0x7f8)]['length'];}[a0bL(0x73f)](){const IH=a0bL;this['clearDraw'](),this['controls']&&(this[IH(0x9e0)][IH(0x2d3)]=this['controlsEnabled']);}[a0bL(0x616)](){const II=a0bL;this['scene']&&(this[II(0x850)]&&(this[II(0x440)][II(0x592)](this[II(0x850)]),this['snapPoint']=null),this['guideLine']&&(this[II(0x440)]['remove'](this['guideLine']),this['guideLine']=null),this['alignmentLine']&&(this[II(0x440)][II(0x592)](this[II(0x9bc)]),this[II(0x9bc)]=null),this['points']=[],this['helperTip']='',this[II(0x5e7)]=!0x1,this['lockedAxis']=null);}[a0bL(0x301)](b){const IJ=a0bL;if(!(b?.['face']&&b['object']))return!0x1;const c=b['object'];if(!(c instanceof a0e)||!c[IJ(0x813)])return!0x1;const {face:f,point:i}=b,j=c['geometry']['attributes']['position'],k=[f['a'],f['b'],f['c']][IJ(0x428)](x=>{const IK=IJ,y=new a0c();return y[IK(0x6be)](j,x),c['localToWorld'](y),y;}),m=[[k[0x0],k[0x1]],[k[0x1],k[0x2]],[k[0x2],k[0x0]]];this['camera']&&this['camera'][IJ(0x2c7)]();const p=this[IJ(0x2ee)][IJ(0x283)](i)*0x7,t=this[IJ(0x2ee)]['getWidth'](i)*0x5;let v=0x1/0x0,w=null;return k['forEach'](x=>{const IL=IJ,y=i['distanceTo'](x);y<=p&&y<v&&(v=y,w=x[IL(0x471)]());}),w||m['forEach'](([x,y])=>{const IM=IJ,z=this[IM(0x204)](i,x,y),B=i[IM(0x5a8)](z);B<=t&&B<v&&(v=B,w=z['clone']());}),w?(b['point']=w,!0x0):!0x1;}[a0bL(0x204)](b,d,f){const IN=a0bL,g=new a0c()['subVectors'](f,d),i=new a0c()[IN(0x642)](b,d),j=g[IN(0x3ea)](),k=g['normalize']();let m=i[IN(0x7c9)](k);return m=Math[IN(0x36b)](0x0,Math[IN(0x5d2)](m,j)),new a0c()[IN(0x3fe)](d)['add'](k['multiplyScalar'](m));}[a0bL(0x538)](b,f){const IO=a0bL;if(!this['isActive']||!this['viewer']['camera'])return;const g=b?.['shiftKey']||!0x1;this[IO(0x2ee)]['raycaster']['setFromCamera'](this[IO(0x2ee)]['mouse'],this['viewer'][IO(0x710)]),this[IO(0x2ee)][IO(0x3aa)]['firstHitOnly']=!0x0;let i=this[IO(0x2ee)]['raycaster'][IO(0x7ec)](Array[IO(0x9c4)](this['viewer']['visibleObjects']));this['points']['length']===0x0?this[IO(0x34c)]=IO(0x7a8)+(g?IO(0xc6):''):this[IO(0x618)][IO(0x3ea)]===0x1&&(this['tooltip']=IO(0x413)+(g?'(按住Shift锁定轴)':'')),this['scene']&&(this[IO(0x850)]&&(this[IO(0x440)][IO(0x592)](this['snapPoint']),this['snapPoint']=null),this[IO(0xa43)]&&(this[IO(0x440)][IO(0x592)](this[IO(0xa43)]),this['guideLine']=null),this[IO(0x9bc)]&&(this[IO(0x440)][IO(0x592)](this[IO(0x9bc)]),this[IO(0x9bc)]=null));let j,k=!0x1;if(i['length']>0x0)k=this['snapToFaceEdgeOrCorner'](i[0x0]),j=i[0x0][IO(0x883)];else{const p=this[IO(0x2ee)][IO(0x3aa)][IO(0x715)][IO(0x794)];let t=0x3e8;this[IO(0x710)]&&'far'in this['camera']&&typeof this[IO(0x710)]['far']=='number'&&(t=this['camera']['far']*0.5),j=p['multiplyScalar'](t)['add'](this['viewer'][IO(0x3aa)][IO(0x715)][IO(0x105)]);}if(g&&this[IO(0x618)]['length']>=0x1){const {projectedPoint:u,axis:v}=this[IO(0x3d2)](j,this['points'][0x0]);j=u,this[IO(0x5e7)]=!0x0,this['lockedAxis']=v;const w={'x':'X轴','y':'Y轴','z':'Z轴'};this[IO(0xa9f)]='锁定\x20'+w[v];}else{if(this['isAxisLocked']=!0x1,this['lockedAxis']=null,this[IO(0x618)]['length']>=0x1){const {axis:x}=this['getLineColorByDirection'](this['points'][0x0],j);if(x){const y={'x':'X轴','y':'Y轴','z':'Z轴'};this['helperTip']='平行\x20'+y[x];}else this[IO(0xa9f)]='';}else this['helperTip']='';}let m='measure-snap-point';(k||this[IO(0x5e7)])&&(m='measure-adsorb'),this[IO(0x850)]=J({'className':m}),this['snapPoint']['position'][IO(0x3fe)](j),this[IO(0x440)]&&this[IO(0x440)]['add'](this[IO(0x850)]),this[IO(0x618)][IO(0x3ea)]===0x1&&(this['drawGuideLine'](j),k&&!this['isAxisLocked']&&this['drawAlignmentLine'](this[IO(0x618)][0x0],j));}[a0bL(0x583)](b,c){const IP=a0bL,{hits:d}=c;if(d&&d['length']>0x0){this[IP(0x301)](d[0x0]);let f=d[0x0]['point'];if(b['shiftKey']&&this[IP(0x618)]['length']>=0x1){const {projectedPoint:g}=this['projectToNearestAxis'](d[0x0][IP(0x883)],this['points'][0x0]);f=g;}this['addPoint'](f);}}['addPoint'](b){const IQ=a0bL;if(this['points'][IQ(0x4f5)](b['clone']()),this[IQ(0x618)][IQ(0x3ea)]===0x1){const d=J({'className':IQ(0x9d3)});d[IQ(0x1b7)][IQ(0x3fe)](b),this[IQ(0x440)]&&this[IQ(0x440)]['add'](d);}else{if(this['points'][IQ(0x3ea)]>=0x2){const [f,g]=this[IQ(0x618)],i=this[IQ(0x613)](f,g);let j;(!this[IQ(0x5a7)]||this['lines']['length']===0x0||this[IQ(0x985)][this[IQ(0x985)][IQ(0x3ea)]-0x1][IQ(0x251)]!==this[IQ(0x3f3)])&&(j=J({'className':'measure-point'}),j[IQ(0x1b7)]['copy'](f),this[IQ(0x440)]&&this['scene'][IQ(0x577)](j));const k=J({'className':IQ(0x9d3)});k[IQ(0x1b7)][IQ(0x3fe)](g),this['scene']&&this[IQ(0x440)][IQ(0x577)](k);const m={'points':[f,g],'line':i,'groupId':this['currentGroupId'],'startMarker':j,'endMarker':k};this[IQ(0x985)]['push'](m);let p=this['groups'][IQ(0x5b5)](t=>t['id']===this[IQ(0x3f3)]);if(!p){const t=J({'className':'bmv-measure-label','html':IQ(0x26e)+(this['groups'][IQ(0x3ea)]+0x1)+'\x20<span\x20title=\x22删除\x22\x20class=\x22bmv-measure-label-delete\x22>×</span>','click':({event:v})=>{const IR=IQ,w=v['target'],x=this[IR(0x7f8)][IR(0x2ab)](y=>y[IR(0x5ff)]===t);w&&(w['tagName']===IR(0x50c)||w[IR(0x240)][IR(0x96b)](IR(0x627)))?x!==-0x1&&this['removeGroupByIndex'](x):x!==-0x1&&this[IR(0xa2a)](x);}});t['position']['copy'](g),this['scene']&&this['scene']['add'](t),p={'id':this['currentGroupId'],'lines':[],'label':t},this['groups']['push'](p);}p['lines'][IQ(0x4f5)](m),this['updateGroupLabel'](p),this['continuousDrawing']?this['points']=[g['clone']()]:(this['clearDraw'](),this[IQ(0x3f3)]=this['groups']['length']);}}}[a0bL(0x44c)](b){const IS=a0bL;if(!b[IS(0x5ff)]||b['lines'][IS(0x3ea)]===0x0||!this['scene'])return;const d=b['lines'][b[IS(0x985)]['length']-0x1]['points'][0x1];if(b['label'][IS(0x1b7)][IS(0x3fe)](d),b['label']['element']){const f=b['label'][IS(0x1de)]['querySelector']('.lens');if(f){const g=this['groups'][IS(0x2ab)](h=>h['id']===b['id']);f[IS(0xa38)]='线条组\x20'+(g+0x1)+'\x20('+b[IS(0x985)]['length']+'条)\x20<span\x20title=\x22删除\x22\x20class=\x22bmv-measure-label-delete\x22>×</span>';}}}[a0bL(0x613)](b,d){const IT=a0bL;if(!this[IT(0x440)])throw new Error('Scene\x20is\x20not\x20available');const f=new Ae();f['setPositions']([b['x'],b['y'],b['z'],d['x'],d['y'],d['z']]);const {color:g}=this['getLineColorByDirection'](b,d),h=new ne({'color':g,'depthTest':!0x1,'linewidth':ga,'opacity':fa,'resolution':new a0l(window[IT(0x7e7)],window['innerHeight'])}),i=new de(f,h);return i[IT(0x6f)][IT(0x517)]=!0x0,i['userData'][IT(0x713)]=this['lines'][IT(0x3ea)],this[IT(0x440)][IT(0x577)](i),i;}['drawGuideLine'](b){const IU=a0bL;if(this['points']['length']===0x0||!this[IU(0x440)])return;const c=this['points'][0x0],d=new Ae();d[IU(0x64b)]([c['x'],c['y'],c['z'],b['x'],b['y'],b['z']]);let f;this['isAxisLocked']&&this[IU(0x367)]?f={'x':0xff0000,'y':0xff,'z':0xff00}[this['lockedAxis']]:f=this[IU(0x4f1)](c,b)[IU(0x66e)];const g=new ne({'color':f,'depthTest':!0x1,'linewidth':qg,'opacity':Vg,'resolution':new a0l(window['innerWidth'],window['innerHeight'])});this['guideLine']=new de(d,g),this[IU(0x440)]['add'](this[IU(0xa43)]);}['projectToNearestAxis'](b,d){const IV=a0bL,f=new a0c()[IV(0x642)](b,d),g=new a0c(Math[IV(0x855)](f['x']),Math[IV(0x855)](f['y']),Math['abs'](f['z']));let h='x',i=g['x'];g['y']>i&&(i=g['y'],h='y'),g['z']>i&&(i=g['z'],h='z');const j=d['clone']();return h==='x'?j['x']=b['x']:h==='y'?j['y']=b['y']:j['z']=b['z'],{'projectedPoint':j,'axis':h};}[a0bL(0x4f1)](b,d){const IW=a0bL,f=new a0c()['subVectors'](d,b);if(f[IW(0x3ea)]()<0.001)return{'color':ua,'axis':null};const g=f['clone']()[IW(0x6ff)](),i=new a0c(Math[IW(0x855)](g['x']),Math[IW(0x855)](g['y']),Math[IW(0x855)](g['z'])),j=0.99,k=0.01;return i['x']>j&&i['y']<k&&i['z']<k?{'color':0xff0000,'axis':'x'}:i['y']>j&&i['x']<k&&i['z']<k?{'color':0xff,'axis':'y'}:i['z']>j&&i['x']<k&&i['y']<k?{'color':0xff00,'axis':'z'}:{'color':ua,'axis':null};}[a0bL(0xad7)](b,f){const IX=a0bL;if(!this[IX(0x440)])return;const g=Math[IX(0x855)](f['x']-b['x']),i=Math['abs'](f['y']-b['y']),j=Math['abs'](f['z']-b['z']),k=0.01;let m=f[IX(0x471)](),p=!0x1;if(g<k&&i<k?(m['x']=b['x'],m['y']=b['y'],p=!0x0):g<k&&j<k?(m['x']=b['x'],m['z']=b['z'],p=!0x0):i<k&&j<k&&(m['y']=b['y'],m['z']=b['z'],p=!0x0),p&&m['distanceTo'](f)>0.001){const t=new Ae();t[IX(0x64b)]([b['x'],b['y'],b['z'],m['x'],m['y'],m['z']]);const u=new ne({'color':0xff00,'depthTest':!0x1,'linewidth':1.5,'opacity':0.3,'resolution':new a0l(window[IX(0x7e7)],window['innerHeight'])});this[IX(0x9bc)]=new de(t,u),this[IX(0x440)]['add'](this[IX(0x9bc)]);}}['selectGroup'](b){const IY=a0bL;if(!(b<0x0||b>=this[IY(0x7f8)][IY(0x3ea)])){if(this[IY(0x7a9)]===b){this['highlightGroup'](b,!0x1),this['selectedIndex']=null;return;}this['selectedIndex']!==null&&this[IY(0x531)](this[IY(0x7a9)],!0x1),this['selectedIndex']=b,this[IY(0x531)](b,!0x0);}}[a0bL(0x531)](b,c){const IZ=a0bL;if(b<0x0||b>=this['groups']['length'])return;this['groups'][b][IZ(0x985)]['forEach'](d=>{const J0=IZ,f=d['line'][J0(0x690)];if(c)f[J0(0x66e)]['setHex'](0xff00),f['linewidth']=0x5,f['opacity']=0x1;else{const {color:g}=this['getLineColorByDirection'](d[J0(0x618)][0x0],d['points'][0x1]);f['color']['setHex'](g),f[J0(0xad0)]=ga,f['opacity']=fa;}});}['removeByIndex'](b){this['removeGroupByIndex'](b);}[a0bL(0x96a)](b){const J1=a0bL;if(b<0x0||b>=this['groups']['length']||!this['scene'])return;const c=this[J1(0x7f8)][b];if(!this[J1(0x440)])return;const d=this['scene'];c['lines'][J1(0xb8)](f=>{const J2=J1;d['remove'](f[J2(0x50a)]),d[J2(0x592)](f[J2(0x534)]),f['startMarker']&&d['remove'](f['startMarker']);const g=this[J2(0x985)]['findIndex'](h=>h===f);g!==-0x1&&this['lines'][J2(0x230)](g,0x1);}),d['remove'](c[J1(0x5ff)]),this[J1(0x7f8)][J1(0x230)](b,0x1),this['selectedIndex']===b?this['selectedIndex']=null:this[J1(0x7a9)]!==null&&this['selectedIndex']>b&&this['selectedIndex']--,this['groups']['forEach'](f=>{const J3=J1;this[J3(0x44c)](f);});}['removeLast'](){const J4=a0bL;this[J4(0x7f8)][J4(0x3ea)]>0x0&&this['removeGroupByIndex'](this[J4(0x7f8)]['length']-0x1);}[a0bL(0x305)](){return this['lines'];}[a0bL(0x752)](){const J5=a0bL;if(!this['scene'])return;const b=this[J5(0x440)];this['groups']['forEach'](c=>{const J7=J5;c['lines']['forEach'](d=>{const J6=a0b;b['remove'](d['line']),b['remove'](d[J6(0x534)]),d['startMarker']&&b['remove'](d[J6(0x290)]);}),b['remove'](c[J7(0x5ff)]);}),this['lines']=[],this['groups']=[],this['selectedIndex']=null,this['currentGroupId']=0x0,this['clearDraw']();}}pd();export{pg as AnnotationTool,sf as AreaMeasureTool,Eg as DimensionTool,rf as DistanceMeasureTool,nf as FaceDistanceMeasureTool,cf as FreehandTool,ef as HUDLabelTool,lf as LineTool,gg as MarkupTool,Ag as ModelClipperTool,of as PositionCameraTool,af as PropertyViewerTool,tf as SelectionZoomTool,Wg as Utils,Zg as Viewer,Jg as threeUtils,Xg as useMaterial};
|
|
1
|
+
const a0cH=a0b;(function(b,c){const bJ=a0b,d=b();while(!![]){try{const e=parseInt(bJ(0x7c2))/0x1*(-parseInt(bJ(0x668))/0x2)+-parseInt(bJ(0x357))/0x3*(parseInt(bJ(0xaf1))/0x4)+parseInt(bJ(0x201))/0x5*(-parseInt(bJ(0x536))/0x6)+-parseInt(bJ(0xaa9))/0x7*(-parseInt(bJ(0x911))/0x8)+-parseInt(bJ(0x951))/0x9*(-parseInt(bJ(0x583))/0xa)+-parseInt(bJ(0x67d))/0xb+parseInt(bJ(0x708))/0xc;if(e===c)break;else d['push'](d['shift']());}catch(f){d['push'](d['shift']());}}}(a0a,0xcc835),(function(){'use strict';const bK=a0b;try{if(typeof document<'u'){var b=document[bK(0x558)](bK(0x639));b['appendChild'](document[bK(0x20a)]('.progress-container{position:absolute;width:100%;background:#eb888833;z-index:9999;top:80%}.progress-message{width:100%;position:absolute;text-align:center;top:0;line-height:30px}.progress-bar{background:linear-gradient(90deg,#4caf50,#ace9ae);height:30px;width:0;transition:width\x200s}.bmv-container\x20*{margin:0;padding:0}.height-100vh{height:100vh}.bmv-container\x20.camera{position:relative;width:28px;height:28px}.bmv-container\x20.pivot\x20.lens{position:absolute;top:50%;left:50%;width:18px;height:18px;border-radius:50%;background-color:#8896e656;transform:translate(-50%,-50%);pointer-events:none}.bmv-container\x20.pivot\x20.lens-border{position:absolute;top:50%;left:50%;width:18px;height:18px;border-radius:50%;background-color:#8896e617;transform:translate(-50%,-50%);animation:bmv-animation-pulse\x203s\x20infinite;cursor:pointer;border:3px\x20solid\x20#ffffff6d;pointer-events:none}.bmv-container\x20.measure-snap-point\x20.lens{position:absolute;top:50%;left:50%;width:12px;height:12px;border-radius:50%;background-color:#8d8bebaa;transform:translate(-50%,-50%);pointer-events:none}.bmv-container\x20.measure-snap-point\x20.lens-border{position:absolute;top:50%;left:50%;width:12px;height:12px;border-radius:50%;background-color:#7b828faa;transform:translate(-50%,-50%);pointer-events:none;cursor:pointer;border:2px\x20solid\x20#fff}.bmv-measure-label-delete{cursor:pointer;padding:6px\x200\x206px\x206px;margin-left:4px;color:#ebab10;border-left:1px\x20solid\x20#aaa}.bmv-container\x20.measure-adsorb\x20.lens{position:absolute;top:50%;left:50%;width:12px;height:12px;border-radius:50%;background-color:#3432c0aa;transform:translate(-50%,-50%);pointer-events:none}.bmv-container\x20.measure-adsorb\x20.lens-border{position:absolute;top:50%;left:50%;width:12px;height:12px;border-radius:50%;background-color:#0b2c65aa;transform:translate(-50%,-50%);animation:bmv-animation-pulse\x201.5s\x20infinite;pointer-events:none;cursor:pointer;border:2px\x20solid\x20#fff}.bmv-container\x20.measure-point{pointer-events:none}.bmv-container\x20.measure-point\x20.lens{position:absolute;top:50%;left:50%;width:12px;height:12px;border-radius:50%;background-color:#3432c0aa;transform:translate(-50%,-50%)}.bmv-container\x20.dimension-endpoint{pointer-events:none}.bmv-container\x20.dimension-endpoint\x20.lens{position:absolute;top:50%;left:50%;width:2px;height:12px;background-color:gray;transform:translate(-50%,-50%)\x20rotate(45deg)}.bmv-container\x20.dimension-endpoint\x20.lens-border{position:absolute;top:50%;left:50%;width:3px;height:14px;background-color:gray;transform:translate(-50%,-50%)\x20rotate(45deg);opacity:.6}.bmv-container\x20.measure-point\x20.lens-border{position:absolute;top:50%;left:50%;width:12px;height:12px;border-radius:50%;background-color:#0b2c65aa;transform:translate(-50%,-50%);animation:bmv-animation-pulse\x201.5s\x20infinite;cursor:pointer;border:2px\x20solid\x20#fff}.bmv-container\x20.camera\x20.lens-border{position:absolute;top:50%;left:50%;width:28px;height:28px;border-radius:50%;background-color:#2ecc71aa;transform:translate(-50%,-50%)}.bmv-container\x20.camera\x20.lens-border{position:absolute;top:50%;left:50%;width:28px;height:28px;border-radius:50%;background-color:#2ecc71aa;transform:translate(-50%,-50%);box-shadow:0\x200\x2020px\x20#2ecc7133,0\x200\x2040px\x20#2ecc7133;animation:bmv-animation-pulse\x201.5s\x20infinite;cursor:pointer;border:4px\x20solid\x20#fff}@keyframes\x20bmv-animation-pulse{0%,to{transform:translate(-50%,-50%)\x20scale(1);opacity:.8}50%{transform:translate(-50%,-50%)\x20scale(1.1);opacity:.2}}#joystick{width:220px;height:100px;position:absolute;bottom:60px;left:50%;transform:translate(-50%);z-index:555;border-radius:50%}#joystick\x20.nipple\x20.front,#joystick\x20.nipple\x20.back{box-shadow:#0006\x200\x200\x208px\x203px}.bmv-click-point\x20.lens,.bmv-click-point\x20.lens-border{width:14px;height:14px}#joystick\x20.up-down-container{position:absolute;width:100%;display:flex;justify-content:space-between;top:50%;transform:translateY(-50%)}#joystick\x20.up-down-container\x20.btn{border:none;border-radius:50%;width:40px;height:40px;background:#ffffff80;text-align:center;box-shadow:#0003\x200\x200\x205px\x203px}#joystick\x20.up-down-container\x20.btn-bottom\x20.svg{position:relative;top:9px;color:#fff}#joystick\x20.up-down-container\x20.btn-top\x20.svg{position:relative;top:7px;color:#fff}.bmv-annotation-label{cursor:pointer;display:block;position:absolute;color:#fff;opacity:.75;font:14px\x20宋体;overflow:hidden;border:1px\x20solid\x20#000;background-color:#2d0707cc;padding:3px\x206px;border-radius:6px;pointer-events:auto}.bmv-annotation-content{display:flex;align-items:center;gap:4px}.bmv-annotation-text{display:inline}.bmv-annotation-image-indicator{display:inline;font-size:12px}.bmv-su-annotation-label{cursor:default;display:block;position:absolute;color:#000;opacity:.75;font:14px\x20宋体;overflow:hidden}.bmv-su-annotation-label:hover{opacity:1}.bmv-measure-label{cursor:default;display:block;vertical-align:middle;position:absolute;color:#eee;padding:3px\x206px;background-color:#000000e6;border:1px\x20solid\x20rgb(239,100,100);opacity:.75;font:13px\x20Helvetica\x20Neue,arial,sans-serif;overflow:hidden;border-radius:6px}.bmv-measure-label:hover{border:1px\x20solid\x20rgb(255,0,0);color:#fff;opacity:1}canvas{cursor:url(\x22data:image/svg+xml,%3csvg%20width=\x2732\x27%20height=\x2732\x27%20viewBox=\x270%200%2032%2032\x27%20fill=\x27none\x27%20xmlns=\x27http://www.w3.org/2000/svg\x27%3e%3cpath%20fill-rule=\x27evenodd\x27%20clip-rule=\x27evenodd\x27%20d=\x27M10.1987%2022.9126L10%206.66667L22%2017.7398L17.3581%2017.8332L19.6149%2023.2504L15.0634%2025.3333L13.0377%2019.7809L10.1987%2022.9126Z\x27%20fill=\x27%230E416C\x27/%3e%3cpath%20d=\x27M10.1987%2022.9126L9.82377%2022.9172L9.83544%2023.8717L10.4766%2023.1645L10.1987%2022.9126ZM10%206.66667L10.2543%206.39108L9.61438%205.80057L9.62503%206.67126L10%206.66667ZM22%2017.7398L22.0075%2018.1147L22.939%2018.096L22.2543%2017.4642L22%2017.7398ZM17.3581%2017.8332L17.3506%2017.4583L16.8003%2017.4693L17.012%2017.9774L17.3581%2017.8332ZM19.6149%2023.2504L19.7709%2023.5914L20.1004%2023.4407L19.961%2023.1062L19.6149%2023.2504ZM15.0634%2025.3333L14.7111%2025.4619L14.8503%2025.8433L15.2194%2025.6743L15.0634%2025.3333ZM13.0377%2019.7809L13.39%2019.6524L13.1771%2019.0688L12.7598%2019.529L13.0377%2019.7809ZM10.5737%2022.908L10.375%206.66208L9.62503%206.67126L9.82377%2022.9172L10.5737%2022.908ZM9.74569%206.94227L21.7457%2018.0154L22.2543%2017.4642L10.2543%206.39108L9.74569%206.94227ZM21.9925%2017.3649L17.3506%2017.4583L17.3657%2018.2081L22.0075%2018.1147L21.9925%2017.3649ZM17.012%2017.9774L19.2687%2023.3946L19.961%2023.1062L17.7043%2017.689L17.012%2017.9774ZM19.4588%2022.9094L14.9073%2024.9923L15.2194%2025.6743L19.7709%2023.5914L19.4588%2022.9094ZM15.4157%2025.2048L13.39%2019.6524L12.6854%2019.9094L14.7111%2025.4619L15.4157%2025.2048ZM12.7598%2019.529L9.92091%2022.6607L10.4766%2023.1645L13.3155%2020.0328L12.7598%2019.529Z\x27%20fill=\x27white\x27/%3e%3c/svg%3e\x22)\x209\x206,auto}.bmv-container\x20canvas.--wait{cursor:wait}.bmv-container\x20canvas.--clip{cursor:url(\x22data:image/svg+xml,%3c?xml%20version=\x271.0\x27%20standalone=\x27no\x27?%3e%3c!DOCTYPE%20svg%20PUBLIC%20\x27-//W3C//DTD%20SVG%201.1//EN\x27%20\x27http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\x27%3e%3csvg%20t=\x271751013526054\x27%20class=\x27icon\x27%20viewBox=\x270%200%201024%201024\x27%20version=\x271.1\x27%20xmlns=\x27http://www.w3.org/2000/svg\x27%20p-id=\x276911\x27%20width=\x2732\x27%20height=\x2732\x27%20xmlns:xlink=\x27http://www.w3.org/1999/xlink\x27%3e%3cpath%20d=\x27M306.33%20364.55h230.82v299.39H306.33z\x27%20fill=\x27%23279ACC\x27%20p-id=\x276912\x27%3e%3c/path%3e%3cpath%20d=\x27M512.68%20924.8a27.3%2027.3%200%200%201-27.31-27.31v-772a27.31%2027.31%200%201%201%2054.61%200v772a27.3%2027.3%200%200%201-27.3%2027.31z\x27%20fill=\x27%23303030\x27%20p-id=\x276913\x27%3e%3c/path%3e%3cpath%20d=\x27M845.15%20783.58H512.68a27.31%2027.31%200%201%201%200-54.61h277.85V293.9H512.68a27.31%2027.31%200%201%201%200-54.62h332.47z\x27%20fill=\x27%23303030\x27%20p-id=\x276914\x27%3e%3c/path%3e%3cpath%20d=\x27M512.68%20783.58h-51.35a27.31%2027.31%200%201%201%200-54.61h51.35a27.31%2027.31%200%200%201%200%2054.61z%20m-138.74%200h-87.38a27.31%2027.31%200%201%201%200-54.61h87.38a27.31%2027.31%200%201%201%200%2054.61z%20m-166.43-8.34a27.3%2027.3%200%200%201-27.3-27.31v-87.39a27.31%2027.31%200%200%201%2054.61%200v87.39a27.3%2027.3%200%200%201-27.31%2027.31z%20m0-174.78a27.3%2027.3%200%200%201-27.3-27.3v-87.39a27.31%2027.31%200%201%201%2054.61%200v87.39a27.3%2027.3%200%200%201-27.31%2027.3z%20m0-174.77a27.31%2027.31%200%200%201-27.3-27.31V311a27.31%2027.31%200%201%201%2054.61%200v87.39a27.31%2027.31%200%200%201-27.31%2027.3zM512.68%20293.9h-87.39a27.31%2027.31%200%200%201%200-54.62h87.39a27.31%2027.31%200%200%201%200%2054.62z%20m-174.78%200h-87.39a27.31%2027.31%200%200%201%200-54.62h87.39a27.31%2027.31%200%201%201%200%2054.62z\x27%20fill=\x27%23303030\x27%20p-id=\x276915\x27%3e%3c/path%3e%3c/svg%3e\x22)\x2015\x2015,auto}.bmv-container\x20canvas.--orbit{cursor:url(\x22data:image/svg+xml,%3csvg%20width=\x2732\x27%20height=\x2732\x27%20viewBox=\x270%200%2032%2032\x27%20fill=\x27none\x27%20xmlns=\x27http://www.w3.org/2000/svg\x27%3e%3cline%20x1=\x2715.5622\x27%20y1=\x272.24707\x27%20x2=\x2715.5622\x27%20y2=\x2727.5804\x27%20stroke=\x27%230E416C\x27%20stroke-width=\x271.33333\x27/%3e%3cpath%20d=\x27M9.97551%2016.3446V21.6604C8.54264%2021.1883%205.36373%2020.0627%204.11107%2019.3366C2.85841%2018.6105%202.60514%2017.5314%202.63509%2017.0826V11.8412C2.63498%2011.8297%202.63497%2011.8182%202.63509%2011.8067V11.8412C2.65885%2014.1923%207.53069%2015.8219%209.97551%2016.3446Z\x27%20fill=\x27%23FF0404\x27/%3e%3cpath%20d=\x27M13.9448%2012.4051V7.66773C7.69749%207.58794%204.55355%209.5106%204.4751%2010.9358C4.37935%2012.6751%205.79276%2013.2039%206.58731%2013.4C8.85327%2012.291%2012.2992%2012.4849%2013.9448%2012.4051Z\x27%20fill=\x27%23FF0404\x27/%3e%3cpath%20d=\x27M17.1662%2012.4051V7.66773C25.8431%208.30599%2026.4361%209.36408%2027.0345%209.86275C27.3907%2010.1596%2027.4737%2011.5902%2026.9303%2012.1336L25.347%2013.4669C23.0588%2012.0143%2019.0412%2012.4549%2017.1662%2012.4051Z\x27%20fill=\x27%23FF0404\x27/%3e%3cpath%20d=\x27M20.7168%2016.3645C26.9242%2015.9815%2029.0479%2013.2927%2029.3338%2011.9961V17.5613C29.3338%2020.689%2023.3763%2021.4576%2020.3976%2021.4509V23.6251L17.1662%2018.8578L20.7168%2014.1504V16.3645Z\x27%20fill=\x27%23FF0404\x27/%3e%3c/svg%3e\x22)\x209\x206,auto}.bmv-container\x20canvas.--walk{cursor:url(\x22data:image/svg+xml,%3csvg%20width=\x2732\x27%20height=\x2732\x27%20viewBox=\x270%200%2032%2032\x27%20fill=\x27none\x27%20xmlns=\x27http://www.w3.org/2000/svg\x27%3e%3cg%20clip-path=\x27url(%23clip0_26063_14706)\x27%3e%3cline%20x1=\x2723.3285\x27%20y1=\x279.91956\x27%20x2=\x2723.3285\x27%20y2=\x2729.3779\x27%20stroke=\x27%23009AD9\x27%20stroke-width=\x270.666667\x27/%3e%3cpath%20d=\x27M12.8778%206.81251C13.155%206.48557%2015.7068%207.0005%2016.4242%207.15297C16.5443%207.1785%2016.6452%207.25488%2016.7048%207.36226L17.469%208.74031L18.8417%2012.0587C18.8655%2012.1161%2018.9002%2012.1667%2018.9463%2012.2083C19.3338%2012.5587%2021.2997%2014.2996%2023.1877%2015.2987C23.247%2015.3301%2023.2994%2015.374%2023.3353%2015.4306C24.0166%2016.5078%2022.8573%2017.6058%2022.0778%2017.3458C20.0778%2016.4123%2017.7664%2014.5463%2017.4111%2014.2793C17.0559%2014.0123%2016.7099%2013.7823%2016.7099%2013.7823L16.7099%2016.3176C16.7099%2016.4033%2016.7356%2016.4871%2016.7836%2016.5582L19.3694%2020.3849L20.0615%2021.5843C20.0723%2021.6031%2020.0805%2021.6194%2020.0883%2021.6396C20.2404%2022.0297%2021.991%2026.526%2022.7389%2028.6731C22.817%2028.8971%2022.6953%2029.1402%2022.4702%2029.2152L20.4402%2029.8919C20.2335%2029.9608%2020.008%2029.864%2019.9154%2029.6668L17.0312%2023.5219C17.0179%2023.4935%2017.0014%2023.4666%2016.9822%2023.4418L14.7444%2020.546C14.7444%2023.1456%2012.1313%2024.6141%2010.8415%2029.8655C10.7855%2030.0936%2010.5598%2030.2409%2010.3299%2030.193L7.9617%2029.6996C7.73072%2029.6515%207.58103%2029.4264%207.63672%2029.1971C8.21556%2026.8141%209.68859%2024.0784%209.91503%2023.6658C9.93517%2023.6291%209.94905%2023.5918%209.95813%2023.5509L11.2778%2017.6126L11.4106%2016.2847L11.4112%2016.2781C11.426%2016.1611%2012.5569%207.19094%2012.8778%206.81251Z\x27%20fill=\x27%230E416C\x27/%3e%3cpath%20d=\x27M11.2778%2017.6126L12.7381%2019.2058C12.7424%2019.2104%2012.7464%2019.2146%2012.7508%2019.2189C12.8218%2019.2879%2013.4863%2019.9169%2014.7444%2020.546M11.2778%2017.6126L9.95813%2023.5509C9.94905%2023.5918%209.93517%2023.6291%209.91503%2023.6658C9.68859%2024.0784%208.21556%2026.8141%207.63672%2029.1971C7.58103%2029.4264%207.73072%2029.6515%207.9617%2029.6996L10.3299%2030.193C10.5598%2030.2409%2010.7855%2030.0936%2010.8415%2029.8655C12.1313%2024.6141%2014.7444%2023.1456%2014.7444%2020.546M11.2778%2017.6126L11.4106%2016.2847C11.4109%2016.2811%2011.4108%2016.2818%2011.4112%2016.2781C11.426%2016.1611%2012.5569%207.19094%2012.8778%206.81251C13.155%206.48557%2015.7068%207.0005%2016.4242%207.15297C16.5443%207.1785%2016.6452%207.25488%2016.7048%207.36226L17.469%208.74031M17.469%208.74031L17.4111%209.8792L16.7099%2013.7823M17.469%208.74031L18.8417%2012.0587C18.8655%2012.1161%2018.9002%2012.1667%2018.9463%2012.2083C19.3338%2012.5587%2021.2997%2014.2996%2023.1877%2015.2987C23.247%2015.3301%2023.2994%2015.374%2023.3353%2015.4306C24.0166%2016.5078%2022.8573%2017.6058%2022.0778%2017.3458C20.0778%2016.4123%2017.7664%2014.5463%2017.4111%2014.2793C17.0559%2014.0123%2016.7099%2013.7823%2016.7099%2013.7823M16.7099%2013.7823L16.7099%2016.3176C16.7099%2016.4033%2016.7356%2016.4871%2016.7836%2016.5582L19.3694%2020.3849L20.0615%2021.5843C20.0723%2021.6031%2020.0805%2021.6194%2020.0883%2021.6396C20.2404%2022.0297%2021.991%2026.526%2022.7389%2028.6731C22.817%2028.8971%2022.6953%2029.1402%2022.4702%2029.2152L20.4402%2029.8919C20.2335%2029.9608%2020.008%2029.864%2019.9154%2029.6668L17.0312%2023.5219C17.0179%2023.4935%2017.0014%2023.4666%2016.9822%2023.4418L14.7444%2020.546\x27%20stroke=\x27white\x27%20stroke-width=\x270.666667\x27/%3e%3ccircle%20cx=\x2715.5617\x27%20cy=\x274.22796\x27%20r=\x272.66495\x27%20transform=\x27rotate(-16.3858%2015.5617%204.22796)\x27%20fill=\x27%230E416C\x27%20stroke=\x27white\x27%20stroke-width=\x270.666667\x27/%3e%3cpath%20d=\x27M10.9707%207.82574C10.2439%207.72276%209.55317%208.17393%209.35537%208.88087L7.94623%2013.9171C7.64625%2014.9892%208.39362%2016.0704%209.50259%2016.1685C10.437%2016.2512%2011.2751%2015.594%2011.4177%2014.6668L12.2125%209.49788C12.3364%208.69198%2011.778%207.94012%2010.9707%207.82574Z\x27%20fill=\x27%23FF0404\x27%20stroke=\x27white\x27%20stroke-width=\x270.333333\x27/%3e%3cpath%20d=\x27M6.66699%2029.7891H26.667\x27%20stroke=\x27%230E416C\x27%20stroke-width=\x270.815293\x27%20stroke-linecap=\x27round\x27/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id=\x27clip0_26063_14706\x27%3e%3crect%20width=\x2732\x27%20height=\x2732\x27%20fill=\x27white\x27/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e\x22)\x209\x2032,auto}.bmv-container\x20canvas.--look_around{cursor:url(\x22data:image/svg+xml,%3csvg%20width=\x2732\x27%20height=\x2732\x27%20viewBox=\x270%200%2032%2032\x27%20fill=\x27none\x27%20xmlns=\x27http://www.w3.org/2000/svg\x27%3e%3ccircle%20cx=\x2719.1257\x27%20cy=\x2716.8745\x27%20r=\x279.27195\x27%20fill=\x27white\x27%20stroke=\x27%230E416C\x27%20stroke-width=\x271.87157\x27/%3e%3cpath%20d=\x27M25.7328%2018.1664C25.7328%2021.2446%2023.2375%2023.7399%2020.1594%2023.7399C17.0812%2023.7399%2014.5859%2021.2446%2014.5859%2018.1664C14.5859%2015.0883%2017.0812%2012.593%2020.1594%2012.593C23.2375%2012.593%2025.7328%2015.0883%2025.7328%2018.1664Z\x27%20fill=\x27%23009AD9\x27/%3e%3ccircle%20cx=\x2718.7656\x27%20cy=\x2717.3535\x27%20r=\x272\x27%20fill=\x27white\x27/%3e%3cpath%20d=\x27M10.1209%2016.3411L10.1209%2017.0493L10.6662%2016.5983L10.6663%2016.5982L10.6665%2016.5981L10.6667%2016.5979L10.6668%2016.5979L10.671%2016.5944L10.692%2016.5779C10.7115%2016.5628%2010.7422%2016.5396%2010.7839%2016.5094C10.8674%2016.4491%2010.9954%2016.361%2011.168%2016.2543C11.5131%2016.0409%2012.0365%2015.7532%2012.7393%2015.4644C14.1442%2014.8872%2016.269%2014.3045%2019.1253%2014.3045C21.524%2014.3045%2023.6166%2014.8846%2025.1117%2015.4667C25.8586%2015.7575%2026.4543%2016.0481%2026.8619%2016.265C27.0656%2016.3735%2027.2222%2016.4634%2027.3269%2016.5257C27.3793%2016.5569%2027.4187%2016.5811%2027.4446%2016.5973L27.4732%2016.6153L27.4797%2016.6195L27.481%2016.6203L27.4811%2016.6203L27.4812%2016.6204L27.4812%2016.6204L27.4812%2016.6204L27.9964%2016.9563L27.9964%2016.3411C27.9964%2015.2397%2027.6383%2014.1664%2027.2386%2013.2014C26.8235%2012.1994%2026.0831%2011.1627%2025.3267%2010.4063C24.5521%209.63166%2023.2394%208.8981%2022.265%208.49451C21.2471%208.07286%2020.1689%208.00331%2019.1253%208.00331C18.0479%208.00331%2016.981%208.21553%2015.9856%208.62784C15.0113%209.03143%2013.6986%209.76499%2012.9239%2010.5397C12.2022%2011.2614%2011.3041%2012.1746%2010.8788%2013.2014C10.479%2014.1664%2010.1209%2015.2397%2010.1209%2016.3411Z\x27%20fill=\x27%230E416C\x27%20stroke=\x27%230E416C\x27%20stroke-width=\x270.666667\x27/%3e%3cpath%20d=\x27M11.3837%2015.2598L3.21777%2014.5817\x27%20stroke=\x27%230E416C\x27%20stroke-width=\x271.87157\x27%20stroke-linecap=\x27round\x27/%3e%3cpath%20d=\x27M12.7283%2014.4792L5.12402%2011.4833\x27%20stroke=\x27%230E416C\x27%20stroke-width=\x271.87157\x27%20stroke-linecap=\x27round\x27/%3e%3cpath%20d=\x27M14.1279%2013.9739L7.72754%208.8465\x27%20stroke=\x27%230E416C\x27%20stroke-width=\x271.87157\x27%20stroke-linecap=\x27round\x27/%3e%3c/svg%3e\x22)\x2018\x2017,auto}.bmv-container\x20canvas.--pan{cursor:url(\x22data:image/svg+xml,%3csvg%20width=\x2732\x27%20height=\x2732\x27%20viewBox=\x270%200%2032%2032\x27%20fill=\x27none\x27%20xmlns=\x27http://www.w3.org/2000/svg\x27%3e%3cg%20clip-path=\x27url(%23clip0_26063_14703)\x27%3e%3cpath%20fill-rule=\x27evenodd\x27%20clip-rule=\x27evenodd\x27%20d=\x27M19.2285%203.23553C19.2286%202.94482%2019.5426%202.76257%2019.795%202.90681L26.0946%206.50662C26.349%206.65198%2026.349%207.01876%2026.0946%207.16411L19.795%2010.7639C19.5426%2010.9081%2019.2285%2010.7258%2019.2285%2010.4351L19.2285%209.0139L15.1075%209.01393C14.8983%209.01393%2014.7288%208.84442%2014.7288%208.63531L14.7287%205.03552C14.7287%204.8264%2014.8983%204.65688%2015.1074%204.65688L19.2285%204.65684L19.2285%203.23553Z\x27%20fill=\x27%23FF0404\x27/%3e%3cpath%20d=\x27M19.2285%203.23553L19.4629%203.23554L19.2285%203.23553ZM19.795%202.90681L19.9113%202.70334L19.795%202.90681ZM26.0946%206.50662L25.9783%206.71009L26.0946%206.50662ZM26.0946%207.16411L26.2109%207.36758L26.0946%207.16411ZM19.795%2010.7639L19.6787%2010.5604L19.795%2010.7639ZM19.2285%2010.4351L18.9942%2010.4351L19.2285%2010.4351ZM19.2285%209.0139L19.4629%209.01391L19.4629%208.77955L19.2285%208.77956L19.2285%209.0139ZM15.1075%209.01393L15.1075%208.77958L15.1075%208.77958L15.1075%209.01393ZM14.7288%208.63531L14.9632%208.6353L14.7288%208.63531ZM14.7287%205.03552L14.4944%205.03552L14.7287%205.03552ZM15.1074%204.65688L15.1074%204.42253L15.1074%204.42253L15.1074%204.65688ZM19.2285%204.65684L19.2285%204.89119L19.4628%204.89119L19.4628%204.65686L19.2285%204.65684ZM19.4629%203.23554C19.4629%203.12476%2019.5826%203.05532%2019.6788%203.11028L19.9113%202.70334C19.5027%202.46983%2018.9942%202.76487%2018.9942%203.23552L19.4629%203.23554ZM19.6788%203.11028L25.9783%206.71009L26.2109%206.30315L19.9113%202.70334L19.6788%203.11028ZM25.9783%206.71009C26.0752%206.76548%2026.0752%206.90525%2025.9783%206.96064L26.2109%207.36758C26.6227%207.13226%2026.6227%206.53847%2026.2109%206.30315L25.9783%206.71009ZM25.9783%206.96064L19.6787%2010.5604L19.9113%2010.9673L26.2109%207.36758L25.9783%206.96064ZM19.6787%2010.5604C19.5825%2010.6154%2019.4628%2010.5459%2019.4629%2010.4351L18.9942%2010.4351C18.9941%2010.9058%2019.5026%2011.2008%2019.9113%2010.9673L19.6787%2010.5604ZM19.4629%2010.4351L19.4629%209.01391L18.9942%209.0139L18.9942%2010.4351L19.4629%2010.4351ZM19.2285%208.77956L15.1075%208.77958L15.1075%209.24828L19.2285%209.24825L19.2285%208.77956ZM15.1075%208.77958C15.0278%208.77958%2014.9632%208.71498%2014.9632%208.6353L14.4945%208.63531C14.4945%208.97385%2014.7689%209.24828%2015.1075%209.24828L15.1075%208.77958ZM14.9632%208.6353L14.9631%205.03551L14.4944%205.03552L14.4945%208.63531L14.9632%208.6353ZM14.9631%205.03551C14.9631%204.95583%2015.0277%204.89123%2015.1074%204.89123L15.1074%204.42253C14.7688%204.42253%2014.4944%204.69698%2014.4944%205.03552L14.9631%205.03551ZM15.1074%204.89123L19.2285%204.89119L19.2285%204.42249L15.1074%204.42253L15.1074%204.89123ZM19.4628%204.65686L19.4629%203.23554L18.9942%203.23552L18.9941%204.65683L19.4628%204.65686Z\x27%20fill=\x27white\x27/%3e%3cpath%20fill-rule=\x27evenodd\x27%20clip-rule=\x27evenodd\x27%20d=\x27M10.3672%2010.435C10.3671%2010.7257%2010.0531%2010.908%209.80066%2010.7637L3.50112%207.16391C3.24675%207.01855%203.24675%206.65178%203.50112%206.50642L9.80071%202.90667C10.0531%202.76243%2010.3672%202.9447%2010.3672%203.23542L10.3672%204.65663L14.4882%204.6566C14.6974%204.6566%2014.8669%204.82612%2014.8669%205.03523L14.867%208.63501C14.867%208.84413%2014.6974%209.01365%2014.4883%209.01365L10.3672%209.01369L10.3672%2010.435Z\x27%20fill=\x27%23FF0404\x27/%3e%3cpath%20d=\x27M10.3672%2010.435L10.1328%2010.435L10.3672%2010.435ZM9.80066%2010.7637L9.68439%2010.9672L9.80066%2010.7637ZM3.50112%207.16391L3.61739%206.96044L3.50112%207.16391ZM3.50112%206.50642L3.38485%206.30295L3.50112%206.50642ZM9.80071%202.90667L9.91698%203.11014L9.80071%202.90667ZM10.3672%203.23542L10.6015%203.23542L10.3672%203.23542ZM10.3672%204.65663L10.1328%204.65663L10.1328%204.89098L10.3672%204.89098L10.3672%204.65663ZM14.4882%204.6566L14.4882%204.89095L14.4882%204.89095L14.4882%204.6566ZM14.8669%205.03523L14.6325%205.03523L14.8669%205.03523ZM14.867%208.63501L15.1013%208.63501L14.867%208.63501ZM14.4883%209.01365L14.4883%209.248L14.4883%209.248L14.4883%209.01365ZM10.3672%209.01369L10.3672%208.77934L10.1329%208.77934L10.1329%209.01368L10.3672%209.01369ZM10.1328%2010.435C10.1328%2010.5458%2010.0131%2010.6152%209.91694%2010.5603L9.68439%2010.9672C10.093%2011.2007%2010.6015%2010.9057%2010.6015%2010.435L10.1328%2010.435ZM9.91694%2010.5603L3.61739%206.96044L3.38484%207.36738L9.68439%2010.9672L9.91694%2010.5603ZM3.61739%206.96044C3.52046%206.90505%203.52046%206.76528%203.61739%206.70989L3.38485%206.30295C2.97304%206.53827%202.97304%207.13206%203.38484%207.36738L3.61739%206.96044ZM3.61739%206.70989L9.91698%203.11014L9.68445%202.7032L3.38485%206.30295L3.61739%206.70989ZM9.91698%203.11014C10.0132%203.05518%2010.1329%203.12463%2010.1329%203.23542L10.6015%203.23542C10.6016%202.76476%2010.0931%202.46969%209.68445%202.7032L9.91698%203.11014ZM10.1329%203.23542L10.1328%204.65663L10.6015%204.65663L10.6015%203.23542L10.1329%203.23542ZM10.3672%204.89098L14.4882%204.89095L14.4882%204.42225L10.3672%204.42228L10.3672%204.89098ZM14.4882%204.89095C14.5679%204.89095%2014.6325%204.95555%2014.6325%205.03523L15.1012%205.03522C15.1012%204.69669%2014.8268%204.42225%2014.4882%204.42225L14.4882%204.89095ZM14.6325%205.03523L14.6326%208.63502L15.1013%208.63501L15.1012%205.03522L14.6325%205.03523ZM14.6326%208.63502C14.6326%208.7147%2014.568%208.7793%2014.4883%208.7793L14.4883%209.248C14.8269%209.248%2015.1013%208.97355%2015.1013%208.63501L14.6326%208.63502ZM14.4883%208.7793L10.3672%208.77934L10.3672%209.24804L14.4883%209.248L14.4883%208.7793ZM10.1329%209.01368L10.1328%2010.435L10.6015%2010.435L10.6016%209.0137L10.1329%209.01368Z\x27%20fill=\x27white\x27/%3e%3cpath%20d=\x27M26.4435%2023.1815C26.4435%2024.964%2022.8774%2029.0001%2019.9887%2029.0001C15.0515%2029.0001%2014.9684%2025.8074%208.61565%2017.1432C8.21285%2016.4491%208.18972%2014.7256%2010.3529%2015.4428C10.9883%2015.6535%2013.2564%2017.2705%2013.2564%2017.2705L13.453%208.93019C13.453%207.19617%2016.4606%207.1951%2016.4606%208.93019L16.5184%2014.5752C16.5184%2014.5752%2017.2734%2013.0253%2018.5081%2013.1409C19.7335%2013.2556%2019.9922%2014.565%2019.9776%2015.1282C19.9944%2014.8437%2020.5126%2014.1149%2021.4983%2014.1149C23.2389%2014.1149%2023.0958%2015.844%2023.112%2017.0045C23.1165%2017.3283%2023.66%2015.8556%2024.7334%2015.8556C25.8069%2015.8556%2026.3836%2016.383%2026.3836%2017.1432L26.4435%2023.1815Z\x27%20fill=\x27%23DCEDF9\x27%20stroke=\x27%230E416C\x27/%3e%3cpath%20d=\x27M13.4646%208.78125C13.4646%208.64517%2013.4968%208.50725%2013.5634%208.37438C13.6302%208.24102%2013.7315%208.11308%2013.8671%208.00098C14.0029%207.88876%2014.1688%207.79589%2014.3574%207.73132C14.5459%207.66677%2014.7503%207.63281%2014.9584%207.63281C15.1664%207.63281%2015.3709%207.66677%2015.5594%207.73132C15.7479%207.79589%2015.9138%207.88876%2016.0496%208.00098C16.1852%208.11308%2016.2865%208.24102%2016.3533%208.37438C16.4199%208.50725%2016.4521%208.64517%2016.4521%208.78125\x27%20stroke=\x27white\x27/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id=\x27clip0_26063_14703\x27%3e%3crect%20width=\x2732\x27%20height=\x2732\x27%20fill=\x27white\x27/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e\x22)\x209\x206,auto}.bmv-container\x20canvas.--tape_measure_guides{cursor:url(\x22data:image/svg+xml,%3csvg%20width=\x2732\x27%20height=\x2732\x27%20viewBox=\x270%200%2032%2032\x27%20fill=\x27none\x27%20xmlns=\x27http://www.w3.org/2000/svg\x27%3e%3cpath%20d=\x27M16.1913%2023.2415L8.49512%2027.6847\x27%20stroke=\x27%230E416C\x27%20stroke-width=\x271.66667\x27/%3e%3cpath%20d=\x27M8.08105%2027.0331L10.0186%2030.3247\x27%20stroke=\x27%230E416C\x27%20stroke-width=\x270.666667\x27%20stroke-linecap=\x27round\x27/%3e%3cpath%20d=\x27M28.7591%2017.3672L17.176%2024.0547L16.0823%2022.1603L16.7814%2021.0419C14.6102%2020.4479%2012.1465%2017.8573%2011.3984%2016.5892C8.92142%2011.399%2011.0146%208.74393%2012.3708%208.06516C14.2757%207.19791%2018.5366%205.20297%2020.3408%204.1613C22.145%203.11964%2023.559%204.38816%2024.0405%205.15262L29.4155%2014.4624C30.3238%2016.0357%2029.3564%2017.0545%2028.7591%2017.3672Z\x27%20fill=\x27%23DCEDF9\x27/%3e%3cpath%20d=\x27M17.176%2024.0547L16.4543%2024.4714L16.871%2025.1931L17.5927%2024.7764L17.176%2024.0547ZM28.7591%2017.3672L28.3725%2016.629L28.3573%2016.637L28.3425%2016.6456L28.7591%2017.3672ZM24.0405%205.15262L24.7622%204.73596L24.7541%204.72208L24.7456%204.70853L24.0405%205.15262ZM12.3708%208.06516L12.0255%207.30673L12.0115%207.31309L11.9978%207.31995L12.3708%208.06516ZM11.3984%2016.5892L10.6463%2016.9481L10.6621%2016.9812L10.6807%2017.0127L11.3984%2016.5892ZM16.7814%2021.0419L17.4881%2021.4836L18.0819%2020.5337L17.0013%2020.2381L16.7814%2021.0419ZM16.0823%2022.1603L15.3757%2021.7186L15.1102%2022.1433L15.3606%2022.577L16.0823%2022.1603ZM17.5927%2024.7764L29.1758%2018.0889L28.3425%2016.6456L16.7594%2023.3331L17.5927%2024.7764ZM29.1457%2018.1055C29.5801%2017.878%2030.1296%2017.4125%2030.4219%2016.7062C30.7333%2015.9536%2030.708%2015.0344%2030.1372%2014.0457L28.6938%2014.8791C29.0313%2015.4637%2028.9764%2015.8405%2028.8819%2016.0689C28.7682%2016.3435%2028.5354%2016.5437%2028.3725%2016.629L29.1457%2018.1055ZM30.1372%2014.0457L24.7622%204.73596L23.3188%205.56929L28.6938%2014.8791L30.1372%2014.0457ZM24.7456%204.70853C24.4368%204.21826%2023.8459%203.58088%2023.0235%203.21744C22.1574%202.83467%2021.0716%202.77714%2019.9241%203.43962L20.7575%204.88299C21.4143%204.5038%2021.9376%204.5597%2022.3498%204.74188C22.8058%204.94341%2023.1626%205.32252%2023.3353%205.59672L24.7456%204.70853ZM19.9241%203.43962C18.1614%204.45733%2013.9395%206.43533%2012.0255%207.30673L12.7161%208.82359C14.6119%207.96048%2018.9118%205.94862%2020.7575%204.88299L19.9241%203.43962ZM11.9978%207.31995C11.1068%207.7659%2010.0888%208.79097%209.64349%2010.415C9.19473%2012.0515%209.34468%2014.2207%2010.6463%2016.9481L12.1505%2016.2303C10.9751%2013.7675%2010.9332%2012.0141%2011.2508%2010.8558C11.5719%209.68504%2012.2786%209.04319%2012.7438%208.81037L11.9978%207.31995ZM10.6807%2017.0127C11.1107%2017.7415%2011.9769%2018.7705%2012.9996%2019.6885C14.015%2020.5999%2015.2899%2021.4978%2016.5616%2021.8457L17.0013%2020.2381C16.1018%2019.992%2015.0592%2019.2976%2014.1129%2018.4482C13.1739%2017.6053%2012.4342%2016.705%2012.1161%2016.1658L10.6807%2017.0127ZM16.0748%2020.6001L15.3757%2021.7186L16.7889%2022.602L17.4881%2021.4836L16.0748%2020.6001ZM15.3606%2022.577L16.4543%2024.4714L17.8977%2023.6381L16.804%2021.7436L15.3606%2022.577Z\x27%20fill=\x27%230E416C\x27/%3e%3ccircle%20cx=\x2719.2275\x27%20cy=\x2713.4857\x27%20r=\x274.29486\x27%20fill=\x27%23FF0404\x27/%3e%3cpath%20d=\x27M9.06018%2016.866L9.63005%2014.853C9.63005%2014.853%2010.7239%2018.9286%2013.8768%2020.4334L12.9199%2021.3012C10.7369%2020.3868%209.43717%2017.9634%209.06018%2016.866Z\x27%20stroke=\x27%230E416C\x27%20stroke-width=\x270.666667\x27%20stroke-linecap=\x27round\x27/%3e%3cpath%20fill-rule=\x27evenodd\x27%20clip-rule=\x27evenodd\x27%20d=\x27M5.33398%205.33313V7.9998H4.00065V5.33313H1.33398V3.9998H4.00065V1.33313L5.33398%201.33313V3.9998H8.00065V5.33313H5.33398ZM5.33398%2013.3331V9.33313H4.00065L4.00065%2013.3331H5.33398ZM5.33398%2014.6665V18.6665H4.00065L4.00065%2014.6665H5.33398Z\x27%20fill=\x27%23FF0404\x27/%3e%3c/svg%3e\x22)\x2010\x2030,auto}.bmv-container\x20canvas.--explode{cursor:url(\x22data:image/svg+xml,%3c?xml%20version=\x271.0\x27%20standalone=\x27no\x27?%3e%3c!DOCTYPE%20svg%20PUBLIC%20\x27-//W3C//DTD%20SVG%201.1//EN\x27%20\x27http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\x27%3e%3csvg%20t=\x271764057866747\x27%20class=\x27icon\x27%20viewBox=\x270%200%201024%201024\x27%20version=\x271.1\x27%20xmlns=\x27http://www.w3.org/2000/svg\x27%20p-id=\x275422\x27%20width=\x2732\x27%20height=\x2732\x27%20xmlns:xlink=\x27http://www.w3.org/1999/xlink\x27%3e%3cpath%20d=\x27M517.688889%20455.111111l-79.644445-207.644444c-2.844444-5.688889-8.533333-11.377778-14.222222-14.222223-5.688889-2.844444-14.222222%200-19.911111%205.688889l-190.577778%20190.577778c-5.688889%205.688889-8.533333%2014.222222-5.688889%2022.755556l79.644445%20207.644444c2.844444%205.688889%208.533333%2011.377778%2014.222222%2014.222222h5.688889c5.688889%200%2011.377778-2.844444%2014.222222-5.688889l190.577778-190.577777c5.688889-5.688889%208.533333-14.222222%205.688889-22.755556z%20m-201.955556%20159.288889l-62.577777-162.133333%20156.444444-156.444445%2062.577778%20162.133334-156.444445%20156.444444zM802.133333%20617.244444v-2.844444-5.688889l-2.844444-2.844444s0-2.844444-2.844445-2.844445c0%200-2.844444%200-2.844444-2.844444%200%200-2.844444-2.844444-5.688889-2.844445l-207.644444-79.644444H571.733333%20563.2l-2.844444%202.844444s-2.844444%200-2.844445%202.844445l-190.577778%20190.577778s0%202.844444-2.844444%202.844444l-2.844445%202.844444v14.222223c0%202.844444%202.844444%202.844444%202.844445%205.688889v2.844444s2.844444%202.844444%205.688889%202.844444c0%200%202.844444%200%202.844444%202.844445l207.644445%2079.644444h8.533333c5.688889%200%2011.377778-2.844444%2014.222222-5.688889l190.577778-190.577777c0-2.844444%202.844444-2.844444%202.844444-5.688889v-2.844445c5.688889-2.844444%205.688889-2.844444%205.688889-5.688889z%20m-219.022222%20164.977778l-162.133333-62.577778%20156.444444-156.444444L739.555556%20625.777778l-156.444445%20156.444444zM827.733333%20506.311111l-79.644444-207.644444c-2.844444-5.688889-5.688889-11.377778-11.377778-11.377778l-207.644444-79.644445c-8.533333-2.844444-17.066667%200-22.755556%205.688889-5.688889%205.688889-8.533333%2014.222222-5.688889%2022.755556l79.644445%20207.644444c2.844444%205.688889%205.688889%208.533333%2011.377777%2011.377778l207.644445%2079.644445c2.844444%200%205.688889%202.844444%208.533333%202.844444h8.533334s2.844444%200%202.844444-2.844444l8.533333-8.533334v-2.844444c2.844444-8.533333%202.844444-14.222222%200-17.066667z%20m-210.488889-88.177778l-59.733333-153.6%20153.6%2059.733334%2059.733333%20153.6-153.6-59.733334z\x27%20fill=\x27%23444444\x27%20p-id=\x275423\x27%3e%3c/path%3e%3c/svg%3e\x22)\x2010\x2030,auto}.bmv-container\x20canvas.--freehand{cursor:url(\x22data:image/svg+xml,%3csvg%20width=\x2732\x27%20height=\x2732\x27%20viewBox=\x270%200%2032%2032\x27%20fill=\x27none\x27%20xmlns=\x27http://www.w3.org/2000/svg\x27%3e%3cpath%20d=\x27M11.5574%202.33334C11.5574%202.33334%2014.849%202.49999%2014.1823%204.41668C13.0648%207.6296%209.9849%204.64322%206.68243%204.66668C4.32758%204.6834%204.09239%207.15067%205.89077%207.66668C7.73278%208.15141%2011.6309%208.36309%2010.4034%2010.2218C8.63761%2012.8957%204.63267%208.29057%202.93235%209.79168C1.59125%2010.9757%203.25586%2012.4868%204.18229%2012.7917\x27%20stroke=\x27%230E416C\x27%20stroke-width=\x271.33333\x27%20stroke-linecap=\x27round\x27/%3e%3cpath%20fill-rule=\x27evenodd\x27%20clip-rule=\x27evenodd\x27%20d=\x27M12.8689%2023.391L28.5256%207.66962L29.0905%207.10468C30.3224%205.87274%2026.1118%201.65545%2024.8765%202.89067C24.351%203.41616%2024.3656%203.40152%2024.3656%203.40152L8.58301%2019.1051L12.8689%2023.391ZM26.0723%207.75337L27.3386%206.4839C27.9042%205.91836%2026.059%204.06651%2025.4907%204.63479L24.2206%205.90167L26.0723%207.75337ZM25.4636%208.36365L23.6104%206.5104L22.3968%207.72089L24.2531%209.57719L25.4636%208.36365ZM21.7866%208.32963L10.1913%2019.8957L12.0783%2021.7827L23.6444%2010.1875L21.7866%208.32963Z\x27%20fill=\x27%23FF0404\x27/%3e%3cpath%20d=\x27M10.1913%2019.8957L21.7866%208.32963L23.6444%2010.1875L12.0783%2021.7827L10.1913%2019.8957Z\x27%20fill=\x27white\x27/%3e%3cpath%20d=\x27M23.6104%206.5104L25.4636%208.36365L24.2531%209.57719L22.3968%207.72089L23.6104%206.5104Z\x27%20fill=\x27white\x27/%3e%3cpath%20d=\x27M27.3386%206.4839L26.0723%207.75337L24.2206%205.90167L25.4907%204.63479C26.059%204.06651%2027.9042%205.91836%2027.3386%206.4839Z\x27%20fill=\x27white\x27/%3e%3cpath%20d=\x27M2.66699%2029.3333L12.3793%2023.6202L8.3801%2019.621L2.66699%2029.3333Z\x27%20fill=\x27%230E416C\x27/%3e%3c/svg%3e\x22)\x204\x2030,auto}.bmv-container\x20canvas.--pencil{cursor:url(\x22data:image/svg+xml,%3csvg%20width=\x2732\x27%20height=\x2732\x27%20viewBox=\x270%200%2032%2032\x27%20fill=\x27none\x27%20xmlns=\x27http://www.w3.org/2000/svg\x27%3e%3cpath%20fill-rule=\x27evenodd\x27%20clip-rule=\x27evenodd\x27%20d=\x27M12.8669%2023.391L28.5236%207.66962L29.0885%207.10468C30.3204%205.87274%2026.1098%201.65545%2024.8745%202.89067C24.349%203.41616%2024.3637%203.40152%2024.3637%203.40152L8.58105%2019.1051L12.8669%2023.391ZM26.0704%207.75337L27.3367%206.4839C27.9022%205.91836%2026.0571%204.06651%2025.4888%204.63479L24.2187%205.90167L26.0704%207.75337ZM25.4617%208.36365L23.6084%206.5104L22.3949%207.72089L24.2512%209.57719L25.4617%208.36365ZM21.7846%208.32963L10.1893%2019.8957L12.0764%2021.7827L23.6424%2010.1875L21.7846%208.32963Z\x27%20fill=\x27%23FF0404\x27/%3e%3cpath%20d=\x27M10.1893%2019.8957L21.7846%208.32963L23.6424%2010.1875L12.0764%2021.7827L10.1893%2019.8957Z\x27%20fill=\x27white\x27/%3e%3cpath%20d=\x27M23.6084%206.5104L25.4617%208.36365L24.2512%209.57719L22.3949%207.72089L23.6084%206.5104Z\x27%20fill=\x27white\x27/%3e%3cpath%20d=\x27M27.3367%206.4839L26.0704%207.75337L24.2187%205.90167L25.4888%204.63479C26.0571%204.06651%2027.9022%205.91836%2027.3367%206.4839Z\x27%20fill=\x27white\x27/%3e%3cpath%20d=\x27M2.66406%2029.3333L12.3763%2023.6202L8.37717%2019.621L2.66406%2029.3333Z\x27%20fill=\x27%230E416C\x27/%3e%3c/svg%3e\x22)\x204\x2030,auto}.bmv-container\x20canvas.--label{cursor:url(\x22data:image/svg+xml,%3csvg%20width=\x2732\x27%20height=\x2732\x27%20viewBox=\x270%200%2032%2032\x27%20fill=\x27none\x27%20xmlns=\x27http://www.w3.org/2000/svg\x27%3e%3crect%20x=\x278.37012\x27%20y=\x272.62378\x27%20width=\x2720.9632\x27%20height=\x2718.7096\x27%20rx=\x270.5\x27%20fill=\x27white\x27%20stroke=\x27%230E416C\x27%20stroke-width=\x271.25\x27/%3e%3cpath%20fill-rule=\x27evenodd\x27%20clip-rule=\x27evenodd\x27%20d=\x27M17.4701%2013.4517C17.4226%2013.3249%2017.3731%2013.2457%2017.3216%2013.214C17.2701%2013.1823%2017.1652%2013.1665%2017.0068%2013.1665H14.8919C14.7335%2013.1665%2014.6245%2013.1942%2014.5651%2013.2497C14.5057%2013.3051%2014.4285%2013.4556%2014.3335%2013.7012L13.9889%2014.616C13.9572%2014.7032%2013.9414%2014.7863%2013.9414%2014.8655C13.9414%2015.119%2014.0958%2015.2457%2014.4047%2015.2457C14.484%2015.2457%2014.5968%2015.2378%2014.7434%2015.222C14.8899%2015.2061%2014.9988%2015.1982%2015.0701%2015.1982C15.3949%2015.1982%2015.5572%2015.3368%2015.5572%2015.6141C15.5572%2015.8755%2015.379%2016.0061%2015.0226%2016.0061C14.9592%2016.0061%2014.8721%2015.9982%2014.7612%2015.9824L14.1671%2015.8992C14.0562%2015.8834%2013.874%2015.8755%2013.6206%2015.8755C13.3433%2015.8755%2013.1493%2015.8834%2013.0384%2015.8992L12.5394%2015.9705C12.3176%2016.0022%2012.1552%2016.018%2012.0522%2016.018C11.7433%2016.018%2011.5889%2015.8873%2011.5889%2015.6259C11.5889%2015.3487%2011.7394%2015.2101%2012.0404%2015.2101C12.1037%2015.2101%2012.1513%2015.2141%2012.1829%2015.222H12.3374C12.5513%2015.222%2012.7136%2015.1388%2012.8245%2014.9725C12.8721%2014.9091%2012.9513%2014.723%2013.0622%2014.414L15.2721%208.43774C15.3988%208.10506%2015.6483%207.93872%2016.0206%207.93872C16.385%207.93872%2016.6266%208.10506%2016.7454%208.43774L18.8721%2014.3309C19.0068%2014.7032%2019.1296%2014.9487%2019.2404%2015.0675C19.3513%2015.1863%2019.5098%2015.2457%2019.7157%2015.2457C19.7791%2015.2457%2019.8266%2015.2418%2019.8583%2015.2339C20.0801%2015.218%2020.191%2015.2101%2020.191%2015.2101C20.4919%2015.2101%2020.6424%2015.3368%2020.6424%2015.5903C20.6424%2015.8596%2020.4919%2015.9943%2020.191%2015.9943C20.1038%2015.9943%2019.989%2015.9863%2019.8464%2015.9705C19.3474%2015.9151%2018.9751%2015.8873%2018.7295%2015.8873C18.4365%2015.8873%2017.9612%2015.919%2017.3038%2015.9824C17.1374%2015.9982%2017.0107%2016.0061%2016.9236%2016.0061C16.6067%2016.0061%2016.4483%2015.8715%2016.4483%2015.6022C16.4483%2015.3329%2016.6226%2015.1982%2016.9711%2015.1982C17.0424%2015.1982%2017.1474%2015.2061%2017.286%2015.222C17.4246%2015.2378%2017.5295%2015.2457%2017.6008%2015.2457C17.8622%2015.2457%2017.9929%2015.1388%2017.9929%2014.9249C17.9929%2014.8933%2017.9612%2014.7903%2017.8979%2014.616L17.4701%2013.4517Z\x27%20fill=\x27%230E416C\x27/%3e%3cpath%20fill-rule=\x27evenodd\x27%20clip-rule=\x27evenodd\x27%20d=\x27M16.0124%208.8689L14.9193%2012.1481C14.9034%2012.1957%2014.8955%2012.2234%2014.8955%2012.2313C14.8955%2012.3026%2014.9549%2012.3382%2015.0737%2012.3382H16.9629C17.0579%2012.3382%2017.1054%2012.3066%2017.1054%2012.2432C17.1054%2012.2274%2017.0975%2012.1957%2017.0817%2012.1481L16.0124%208.8689Z\x27%20fill=\x27white\x27/%3e%3cpath%20fill-rule=\x27evenodd\x27%20clip-rule=\x27evenodd\x27%20d=\x27M23.721%209.72165C23.7131%209.31769%2023.6715%209.04838%2023.5962%208.91372C23.521%208.77907%2023.3725%208.71174%2023.1507%208.71174C23.0715%208.71174%2022.9566%208.72164%2022.8061%208.74144C22.6556%208.76125%2022.5408%208.77115%2022.4616%208.77115C22.1527%208.77115%2021.9982%208.63253%2021.9982%208.3553C21.9982%208.07807%2022.1447%207.93945%2022.4378%207.93945C22.5329%207.93945%2022.6814%207.94935%2022.8834%207.96916C23.0854%207.98896%2023.2418%207.99886%2023.3527%207.99886C23.6061%207.99886%2023.8161%207.99094%2023.9824%207.9751C24.2279%207.95133%2024.3784%207.93945%2024.4339%207.93945C24.6081%207.93945%2024.7151%207.99094%2024.7547%208.09391C24.7864%208.1652%2024.8022%208.28797%2024.8022%208.46223C24.8022%208.48599%2024.7982%208.58104%2024.7903%208.74738C24.7507%209.59492%2024.7309%2010.3632%2024.7309%2011.0524V12.395C24.7309%2012.6405%2024.7349%2012.9692%2024.7428%2013.3811C24.7586%2013.8801%2024.7666%2014.2088%2024.7666%2014.3673C24.7745%2014.9138%2024.9567%2015.1871%2025.3131%2015.1871C25.4002%2015.1871%2025.5309%2015.1772%2025.7052%2015.1574C25.8794%2015.1376%2026.0101%2015.1277%2026.0973%2015.1277C26.4775%2015.1277%2026.6676%2015.2663%2026.6676%2015.5435C26.6676%2015.8207%2026.4933%2015.9594%2026.1448%2015.9594C26.0101%2015.9594%2025.8834%2015.9514%2025.7646%2015.9356C25.0992%2015.8485%2024.5923%2015.8049%2024.2438%2015.8049C23.8953%2015.8049%2023.4675%2015.8405%2022.9606%2015.9118C22.6754%2015.9514%2022.4735%2015.9712%2022.3546%2015.9712C22.014%2015.9712%2021.8438%2015.8287%2021.8438%2015.5435C21.8438%2015.2663%2022.0378%2015.1277%2022.4259%2015.1277C22.5447%2015.1277%2022.6675%2015.1395%2022.7943%2015.1633C22.9844%2015.1791%2023.1032%2015.1871%2023.1507%2015.1871C23.4279%2015.1871%2023.5982%2015.0782%2023.6616%2014.8603C23.725%2014.6425%2023.7566%2014.0781%2023.7566%2013.1672L23.721%209.72165Z\x27%20fill=\x27%230E416C\x27/%3e%3cpath%20fill-rule=\x27evenodd\x27%20clip-rule=\x27evenodd\x27%20d=\x27M4.03172%2030.6084C4.18773%2030.9594%204.68595%2030.9594%204.84196%2030.6084L7.50196%2024.6234C7.63226%2024.3302%207.41766%2024%207.09684%2024H1.77684C1.45602%2024%201.24142%2024.3302%201.37172%2024.6234L4.03172%2030.6084Z\x27%20fill=\x27%230E416C\x27/%3e%3cpath%20d=\x27M8.37492%2010.9583H4.52051V27.9999\x27%20stroke=\x27%230E416C\x27%20stroke-width=\x271.25\x27%20stroke-linecap=\x27square\x27/%3e%3c/svg%3e\x22)\x2015\x2040,auto}.explosion-tool-panel\x20input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:#4caf50;cursor:pointer;box-shadow:0\x201px\x203px\x20#0006;transition:background\x20.2s}.explosion-tool-panel\x20input[type=range]::-webkit-slider-thumb:hover{background:#45a049}.explosion-tool-panel\x20input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#4caf50;cursor:pointer;border:none;box-shadow:0\x201px\x203px\x20#0006;transition:background\x20.2s}.explosion-tool-panel\x20input[type=range]::-moz-range-thumb:hover{background:#45a049}.clipper-tool-panel\x20input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:#4caf50;cursor:pointer;box-shadow:0\x201px\x203px\x20#0006;transition:background\x20.2s}.clipper-tool-panel\x20input[type=range]::-webkit-slider-thumb:hover{background:#45a049}.clipper-tool-panel\x20input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#4caf50;cursor:pointer;border:none;box-shadow:0\x201px\x203px\x20#0006;transition:background\x20.2s}.clipper-tool-panel\x20input[type=range]::-moz-range-thumb:hover{background:#45a049}.explosion-tool-panel{position:absolute;top:10%;left:50%;transform:translate(-50%,-50%);z-index:1000;background:#00000080;backdrop-filter:blur(8px);border-radius:6px;padding:8px\x2012px;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe\x20UI,Roboto,sans-serif;display:flex;flex-direction:column;gap:8px;align-items:center;box-shadow:0\x202px\x2012px\x20#0000004d}.explosion-tool-panel\x20.slider-container{display:flex;align-items:center;gap:8px;width:auto}.explosion-tool-panel\x20label{font-size:12px;font-weight:500;color:#fff;white-space:nowrap}.explosion-tool-panel\x20.slider-wrapper{flex:1;min-width:180px}.explosion-tool-panel\x20input[type=range]{width:100%;height:3px;border-radius:2px;background:#ffffff4d;outline:none;-webkit-appearance:none;appearance:none;cursor:pointer}.explosion-tool-panel\x20button{padding:4px\x2012px;background:#ffffff26;color:#fff;border:1px\x20solid\x20rgba(255,255,255,.3);border-radius:3px;cursor:pointer;font-size:11px;font-weight:500;transition:all\x20.2s;white-space:nowrap}.explosion-tool-panel\x20button:hover{background:#ffffff40}.clipper-tool-panel{position:absolute;top:16%;left:50%;transform:translate(-50%,-50%);z-index:1000;background:#00000080;backdrop-filter:blur(8px);border-radius:6px;padding:8px\x2012px;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe\x20UI,Roboto,sans-serif;display:flex;flex-direction:column;gap:8px;align-items:stretch;box-shadow:0\x202px\x2012px\x20#0000004d;min-width:280px;max-width:450px;max-height:70vh;overflow-y:auto}.bmv-annotation-input{flex:1;width:100%;min-height:80px;max-height:200px;padding:8px\x2010px;border:1px\x20solid\x20rgba(255,255,255,.3);border-radius:3px;background:#ffffff1a;color:#fff;font-size:12px;font-weight:500;resize:vertical;font-family:-apple-system,BlinkMacSystemFont,Segoe\x20UI,Roboto,sans-serif;outline:none;transition:all\x20.2s}.bmv-annotation-input:focus{border-color:#ffffff80;background:#ffffff26}.bmv-annotation-input::-webkit-input-placeholder{color:#bbb}.bmv-annotation-input::-moz-placeholder{color:#bbb}.bmv-annotation-input:-ms-input-placeholder{color:#bbb}.bmv-annotation-input::placeholder{color:#bbb}.clipper-tool-panel\x20.select-container{display:flex;flex-direction:column;gap:6px}.clipper-tool-panel\x20.plane-select{width:100%;padding:6px\x2028px\x206px\x2010px;background:#ffffff1a;color:#fff;border:1px\x20solid\x20rgba(255,255,255,.3);border-radius:3px;font-size:12px;font-weight:500;cursor:pointer;outline:none;transition:all\x20.2s;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url(\x22data:image/svg+xml,%3Csvg\x20xmlns=\x27http://www.w3.org/2000/svg\x27\x20width=\x2710\x27\x20height=\x2710\x27\x20viewBox=\x270\x200\x2012\x2012\x27%3E%3Cpath\x20fill=\x27%23fff\x27\x20d=\x27M6\x209L1\x204h10z\x27/%3E%3C/svg%3E\x22);background-repeat:no-repeat;background-position:right\x2010px\x20center}.clipper-tool-panel\x20.plane-select:hover{background-color:#ffffff26;border-color:#fff6}.clipper-tool-panel\x20.plane-select:focus{background-color:#ffffff26;border-color:#ffffff80}.clipper-tool-panel\x20.plane-select\x20option{background:#000000e6;color:#fff;padding:8px}.clipper-tool-panel\x20.sliders-container{display:flex;flex-direction:column;gap:8px}.clipper-tool-panel\x20.button-container{display:flex;gap:6px;justify-content:flex-end;margin-top:2px}.clipper-tool-panel\x20.empty-message{padding:16px;text-align:center;color:#fff9;font-size:12px;background:#ffffff0d;border-radius:4px;border:1px\x20dashed\x20rgba(255,255,255,.2)}.clipper-tool-panel\x20.plane-control{display:flex;flex-direction:column;gap:6px;padding:8px;background:#ffffff0d;border-radius:4px;border:1px\x20solid\x20rgba(255,255,255,.1)}.clipper-tool-panel\x20.plane-control-header{display:flex;justify-content:space-between;align-items:center}.clipper-tool-panel\x20.plane-control-label{font-size:12px;font-weight:500;color:#fff}.clipper-tool-panel\x20.plane-control-value{font-size:12px;font-weight:600;color:#4caf50;min-width:45px;text-align:right}.clipper-tool-panel\x20.slider-wrapper{position:relative}.clipper-tool-panel\x20input[type=range]{width:100%;height:3px;border-radius:2px;background:#ffffff4d;outline:none;-webkit-appearance:none;appearance:none;cursor:pointer}.clipper-tool-panel\x20.plane-control-actions{display:flex;gap:6px;margin-top:2px}.clipper-tool-panel\x20button{flex:1;padding:4px\x2010px;font-size:11px;border:1px\x20solid\x20rgba(255,255,255,.2);background:#ffffff1a;color:#fff;border-radius:3px;cursor:pointer;transition:all\x20.2s}.clipper-tool-panel\x20button:hover{background:#fff3}.clipper-tool-panel\x20button.danger{border:1px\x20solid\x20rgba(244,67,54,.4);background:#f4433633}.clipper-tool-panel\x20button.danger:hover{background:#f443364d}')),document['head']['appendChild'](b);}}catch(c){console[bK(0x323)](bK(0x4d4),c);}}()));var Rc=Object['defineProperty'],Pc=(b,c,d)=>c in b?Rc(b,c,{'enumerable':!0x0,'configurable':!0x0,'writable':!0x0,'value':d}):b[c]=d,C=(b,c,d)=>Pc(b,typeof c!='symbol'?c+'':c,d);import{Vector3 as a0c,Object3D as a0d,Mesh as a0e,SphereGeometry as a0f,MeshBasicMaterial as a0g,Box3 as a0h,LineBasicMaterial as a0i,BufferGeometry as a0j,LineSegments as a0k,Vector2 as a0l,Matrix4 as a0m,OrthographicCamera as a0n,Float32BufferAttribute as a0o,InstancedBufferGeometry as a0p,InstancedInterleavedBuffer as a0q,InterleavedBufferAttribute as a0r,WireframeGeometry as a0s,Sphere as a0t,ShaderMaterial as a0u,ShaderLib as a0v,UniformsUtils as a0w,UniformsLib as a0x,Vector4 as a0y,Line3 as a0z,MathUtils as a0A,Loader as a0B,FileLoader as a0C,SRGBColorSpace as a0D,LinearSRGBColorSpace as a0E,BufferAttribute as a0F,Color as a0G,ColorManagement as a0H,CompressedCubeTexture as a0I,CompressedArrayTexture as a0J,CompressedTexture as a0K,LinearFilter as a0L,LinearMipmapLinearFilter as a0M,NoColorSpace as a0N,RGBA_ASTC_6x6_Format as a0O,RGBA_ASTC_4x4_Format as a0P,RedFormat as a0Q,RGFormat as a0R,RGBAFormat as a0S,UnsignedByteType as a0T,HalfFloatType as a0U,FloatType as a0V,DataTexture as a0W,Data3DTexture as a0X,RGBA_S3TC_DXT1_Format as a0Y,RGB_PVRTC_4BPPV1_Format as a0Z,RGB_ETC2_Format as a0a0,RGB_ETC1_Format as a0a1,RGBA_S3TC_DXT5_Format as a0a2,RGBA_PVRTC_4BPPV1_Format as a0a3,RGBA_ETC2_EAC_Format as a0a4,RGBA_BPTC_Format as a0a5,RGB_BPTC_UNSIGNED_Format as a0a6,WebGLRenderTarget as a0a7,NoBlending as a0a8,Clock as a0a9,DepthTexture as a0aa,DepthStencilFormat as a0ab,UnsignedInt248Type as a0ac,NearestFilter as a0ad,MeshNormalMaterial as a0ae,AddEquation as a0af,ZeroFactor as a0ag,DstAlphaFactor as a0ah,DstColorFactor as a0ai,CustomBlending as a0aj,RepeatWrapping as a0ak,AdditiveBlending as a0al,BoxGeometry as a0am,EdgesGeometry as a0an,Line as a0ao,CylinderGeometry as a0ap,Plane as a0aq,CanvasTexture as a0ar,PlaneGeometry as a0as,DoubleSide as a0at,Quaternion as a0au,LOD as a0av,InstancedMesh as a0aw,Matrix3 as a0ax,Group as a0ay,ShapeUtils as a0az,Triangle as a0aA,BackSide as a0aB,REVISION as a0aC,FrontSide as a0aD,BatchedMesh as a0aE,Ray as a0aF,MeshStandardMaterial as a0aG,MeshPhysicalMaterial as a0aH,WebGLRenderer as a0aI,Raycaster as a0aJ,Spherical as a0aK,PerspectiveCamera as a0aL,TrianglesDrawMode as a0aM,TriangleFanDrawMode as a0aN,TriangleStripDrawMode as a0aO,LoaderUtils as a0aP,SpotLight as a0aQ,PointLight as a0aR,DirectionalLight as a0aS,InstancedBufferAttribute as a0aT,TextureLoader as a0aU,ImageBitmapLoader as a0aV,InterleavedBuffer as a0aW,NearestMipmapLinearFilter as a0aX,LinearMipmapNearestFilter as a0aY,NearestMipmapNearestFilter as a0aZ,MirroredRepeatWrapping as a0b0,ClampToEdgeWrapping as a0b1,PointsMaterial as a0b2,Material as a0b3,MeshPhongMaterial as a0b4,PropertyBinding as a0b5,SkinnedMesh as a0b6,LineLoop as a0b7,Points as a0b8,Skeleton as a0b9,AnimationClip as a0ba,Bone as a0bb,InterpolateDiscrete as a0bc,InterpolateLinear as a0bd,Texture as a0be,VectorKeyframeTrack as a0bf,NumberKeyframeTrack as a0bg,QuaternionKeyframeTrack as a0bh,Interpolant as a0bi,LoadingManager as a0bj,CubeTextureLoader as a0bk,LineDashedMaterial as a0bl,EventDispatcher as a0bm,AmbientLight as a0bn,HemisphereLight as a0bo,Scene as a0bp}from'three';import{merge as a0bq,throttle as a0br}from'lodash-es';function zl(b,c){return new Promise((d,f)=>{const bL=a0b;if(!b||typeof b!=bL(0xb0b)){f(new Error('Invalid\x20URL:\x20expected\x20a\x20non-empty\x20string'));return;}if(typeof c!='function'){f(new Error(bL(0x27f)));return;}const g=new XMLHttpRequest();g['open'](bL(0x1ba),b,!0x0),g[bL(0x642)]=bL(0x56b),g[bL(0x77a)]=function(h){const bM=bL;if(h['lengthComputable']&&h['total']>0x0){const i=h[bM(0x49e)]/h['total']*0x64;c(i[bM(0x39d)](0x2));}},g['onload']=function(){const bN=bL;g[bN(0x741)]>=0xc8&&g[bN(0x741)]<0x12c?d(g['response']):f(new Error(bN(0x918)+g['status']+':\x20'+(g[bN(0x96f)]||'Request\x20failed')));},g['onerror']=function(){const bO=bL;f(new Error(bO(0x300)));},g[bL(0x70b)]=function(){const bP=bL;f(new Error(bP(0x2e0)));},g[bL(0x49a)]();});}function Hl(b,c){if(!Array['isArray'](b))throw new Error('First\x20argument\x20must\x20be\x20an\x20array');if(!Number['isInteger'](c)||c<0x1)throw new Error('Second\x20argument\x20must\x20be\x20a\x20positive\x20integer');const d=Array['from']({'length':c},()=>[]);return b['forEach']((f,g)=>{const bQ=a0b;d[g%c][bQ(0x50e)](f);}),d;}function ql(b){const bR=a0b;if(!(b instanceof a0d)){console['warn'](bR(0x4fb));return;}b['visible']=!0x1,b['traverse'](c=>{const bS=bR;c[bS(0x921)]=!0x1;});}function Vl(){const bT=a0b;return typeof navigator>'u'?!0x1:[bT(0x1f8),bT(0x999),bT(0x3a4),bT(0x340),bT(0x6c1),bT(0x99b)]['includes'](navigator[bT(0x26e)])||navigator['userAgent']['includes'](bT(0x98c))&&'ontouchend'in document;}function jl(b,c){const bU=a0b;if(!Number['isFinite'](b)||!Number[bU(0x565)](c))throw new Error(bU(0xa11));if(b>c)throw new Error(bU(0x571));return Math[bU(0xa7a)](Math['random']()*(c-b+0x1))+b;}function Yl(b,c=0.7){const bV=a0b;if(typeof b!=bV(0x199))throw new Error('First\x20argument\x20must\x20be\x20a\x20function');if(typeof c!='number'||c<0x0||c>0x1)throw new Error('Probability\x20must\x20be\x20a\x20number\x20between\x200\x20and\x201');Math[bV(0x886)]()<=c&&b();}function Gr(b){const bW=a0b;return b===null||typeof b!='object'||(Object[bW(0x469)](b),Object[bW(0x762)](b)['forEach'](c=>{const d=b[c];typeof d=='object'&&d!==null&&!Object['isFrozen'](d)&&Gr(d);})),b;}function Kl(b=new a0c(0x0,0x0,0x0),c=0.1){const bX=a0b;if(!b||typeof b['x']!=bX(0x7ca)&&!(b instanceof a0c))throw new Error('Point\x20must\x20be\x20a\x20Vector3\x20or\x20an\x20object\x20with\x20x,\x20y,\x20z\x20properties');if(typeof c!='number'||c<=0x0)throw new Error(bX(0x4c7));const d=new a0e(new a0f(c,0x20,0x20),new a0g({'color':0xff0000}));return b instanceof a0c?d[bX(0x3e0)][bX(0x195)](b):d[bX(0x3e0)]['set'](b['x']||0x0,b['y']||0x0,b['z']||0x0),d;}function Wl(b,d){const bY=a0b;if(!b||!d)throw new Error(bY(0x420));const f=new a0h()['setFromObject'](b),{min:g,max:h}=f,i=[new a0c(g['x'],g['y'],g['z']),new a0c(h['x'],g['y'],g['z']),new a0c(h['x'],h['y'],g['z']),new a0c(g['x'],h['y'],g['z']),new a0c(g['x'],g['y'],h['z']),new a0c(h['x'],g['y'],h['z']),new a0c(h['x'],h['y'],h['z']),new a0c(g['x'],h['y'],h['z'])],j=[[0x0,0x1],[0x1,0x2],[0x2,0x3],[0x3,0x0],[0x4,0x5],[0x5,0x6],[0x6,0x7],[0x7,0x4],[0x0,0x4],[0x1,0x5],[0x2,0x6],[0x3,0x7]],k=[],m=new a0i({'color':0xff00});return j['forEach'](p=>{const bZ=bY,u=new a0j()['setFromPoints']([i[p[0x0]],i[p[0x1]]]),v=new a0k(u,m);k[bZ(0x50e)](v),d[bZ(0x644)](v);}),k;}function Jl(b){const c0=a0b;if(typeof b!=c0(0x7ca)||b<0x0)throw new Error(c0(0x546));const d=0x5*0x400*0x400,f=0xf*0x400*0x400,g=0x46,h=0xa,i=0x64;if(b<d)return i;if(b>=f)return h;const j=(b-d)/(f-d),k=g-j*(g-h);return Math['round'](k);}function zr(b,c){const c1=a0b;if(b===null||typeof b!=c1(0x8c0)||c===null||typeof c!='object')return c!==void 0x0?c:b;const d=Array['isArray'](b)?[...b]:{...b};for(const f in c){if(!Object['prototype'][c1(0x2d7)]['call'](c,f))continue;const g=c[f],h=d[f];g===null||Array['isArray'](g)||typeof g!='object'?d[f]=g:typeof h==c1(0x8c0)&&h!==null&&!Array[c1(0x1d4)](h)?d[f]=zr(h,g):d[f]=g;}return d;}function mr(b){const c2=a0b;if(!b||typeof b[c2(0x730)]!=c2(0x199))throw new Error(c2(0x939));let c=0x0,d=0x0,f=0x0;return b[c2(0x730)](g=>{const c3=c2;if(g['isMesh']&&g['geometry']){if(f++,g[c3(0x45e)]['isBufferGeometry']){const h=g[c3(0x45e)][c3(0x974)]['position'];h&&(d+=h['count'],g['geometry']['index']?c+=g[c3(0x45e)]['index']['count']/0x3:c+=Math['floor'](h[c3(0xa6a)]/0x3));}else g[c3(0x45e)][c3(0x953)]&&(g[c3(0x45e)]['vertices']&&(d+=g[c3(0x45e)]['vertices'][c3(0x576)]),g[c3(0x45e)][c3(0x46d)]&&(c+=g['geometry'][c3(0x46d)]['length']));}}),{'triangles':Math[c2(0xa7a)](c),'vertices':d,'geometries':f};}function br(b,d){const c4=a0b;if(typeof b!='string'||typeof d!='string')throw new Error('Both\x20arguments\x20must\x20be\x20version\x20strings');const f=b[c4(0x704)]('.')['map'](Number),g=d[c4(0x704)]('.')['map'](Number);if(f[c4(0x6a3)](isNaN)||g['some'](isNaN))throw new Error('Invalid\x20version\x20format');const h=Math['max'](f[c4(0x576)],g['length']);for(let i=0x0;i<h;i++){const j=f[i]||0x0,k=g[i]||0x0;if(j>k)return!0x0;if(j<k)return!0x1;}return!0x0;}function xa(b){const c5=a0b;if(b){if(b['name']&&b[c5(0x587)]['includes'](c5(0x538)))return b;if(b[c5(0x717)])return xa(b[c5(0x717)]);}}function va(b){const c6=a0b;if(b){if(b['name']&&(b['name'][c6(0x36a)]('DFC_NODE')||b[c6(0x587)][c6(0x36a)](c6(0x3e6))))return b;if(b[c6(0x717)])return va(b[c6(0x717)]);}}function _a(b){const c7=a0b;if(b){if(b[c7(0x587)]&&['泵','锅炉',c7(0x5fb),'管'][c7(0x6a3)](c=>b[c7(0x587)]['includes'](c)))return b;if(b[c7(0x717)])return _a(b['parent']);}}function Ta(b,c){const c8=a0b;if(!b)return!0x1;if(!Array[c8(0x1d4)](c))throw new Error('Second\x20argument\x20must\x20be\x20an\x20array\x20of\x20layer\x20names');return b[c8(0x587)]==='root'||b[c8(0x47e)][c8(0x9a3)]===void 0x0?!0x0:b[c8(0x717)]&&Ta(b['parent'],c)===!0x1?!0x1:b[c8(0x47e)][c8(0x9a3)]['name']==='Layer0'?!0x0:c['includes'](b[c8(0x47e)][c8(0x9a3)][c8(0x587)]);}const Xl=((()=>{const c9=a0b;let b=performance[c9(0x371)](),c=0x0,d=0x0;return{'compute'(){c++;const f=performance['now']();return f-b>=0x3e8&&(d=c,c=0x0,b=f),d;},'reset'(){b=performance['now'](),c=0x0,d=0x0;}};})());function $l(){return Xl['compute']();}function Zl(b){const cb=a0b;if(!b||typeof b[cb(0x730)]!=cb(0x199))throw new Error('Invalid\x20scene\x20object');const c=new Set();return b[cb(0x730)](d=>{const ce=cb;if(d['isMesh']&&d['material']){const f=d['material'];Array['isArray'](f)?f[ce(0x2cd)](g=>{g&&c['add'](g);}):c['add'](f);}}),c[cb(0x18b)];}function eh(b,c){const cj=a0b;if(!b||!c)throw new Error('Element\x20and\x20event\x20are\x20required');let d,f;if(c instanceof TouchEvent){if(c['touches'][cj(0x576)]===0x0)throw new Error('TouchEvent\x20has\x20no\x20touches');d=c[cj(0x275)][0x0][cj(0xa4c)],f=c[cj(0x275)][0x0][cj(0x6f9)];}else{if(c instanceof MouseEvent)d=c['clientX'],f=c['clientY'];else throw new Error(cj(0x88a));}const g=b['getBoundingClientRect'](),h=new a0l();return h['x']=(d-g[cj(0x4d1)])/b['offsetWidth']*0x2-0x1,h['y']=-((f-g['top'])/b[cj(0x735)])*0x2+0x1,h;}function th(b){const ck=a0b;if(!b||typeof b!='string'&&!Array['isArray'](b)&&!(b instanceof Uint8Array))throw new Error('Input\x20must\x20be\x20an\x20array,\x20Uint8Array,\x20or\x20string');let c=0x1505;for(let d=0x0;d<b[ck(0x576)];d++){const f=typeof b=='string'?b[ck(0x64c)](d):b[d];c=(c<<0x5)+c+f;}return c>>>0x0;}function ih(b){const cm=a0b;if(typeof b!='number'||!isFinite(b))throw new Error(cm(0x43c));const c=(b%0x168+0x168)%0x168;return c>=337.5||c<22.5?cm(0x889):c>=22.5&&c<67.5?cm(0x461):c>=67.5&&c<112.5?'up':c>=112.5&&c<157.5?cm(0x173):c>=157.5&&c<202.5?'left':c>=202.5&&c<247.5?cm(0x6fa):c>=247.5&&c<292.5?'down':cm(0x477);}function sn(){const cn=a0b;if(typeof navigator>'u'||typeof window>'u')return!0x1;const b=/Android|iPhone|iPod|Mobile/i[cn(0x805)](navigator[cn(0x855)]),c=window[cn(0x16b)][cn(0x69c)]<=0x3e8,d=cn(0x444)in window||navigator[cn(0x402)]>0x0;return b&&(c||d);}function sh(b={}){const cp=a0b,f={'id':b['id']||'toggle-'+Math['random']()[cp(0xa82)](0x24)[cp(0x8ab)](0x2,0x8),'checked':b[cp(0x73f)]||!0x1,'size':b[cp(0x18b)]||'medium','onColor':b['onColor']||cp(0x4c5),'offColor':b[cp(0x90a)]||cp(0x8b1),'label':b[cp(0xb15)]||'','labelPosition':b['labelPosition']||cp(0x4d1),'onChange':b['onChange']||null},g={'small':{'width':0x28,'height':0x16,'sliderSize':0x10},'medium':{'width':0x3c,'height':0x22,'sliderSize':0x1a},'large':{'width':0x50,'height':0x2e,'sliderSize':0x24}},{width:i,height:j,sliderSize:k}=g[f[cp(0x18b)]]||g['medium'],m=document[cp(0x558)](cp(0x4b6));m['className']=cp(0x6de)+f[cp(0x424)];let p=null;f['label']&&(p=document['createElement']('span'),p[cp(0x757)]=cp(0x9ea),p['textContent']=f['label']);const v=document['createElement'](cp(0xb15));v['className']='switch',v[cp(0x639)][cp(0x69c)]=i+'px',v[cp(0x639)]['height']=j+'px';const w=document['createElement']('input');w[cp(0x223)]=cp(0xa95),w['id']=f['id'],w['checked']=f[cp(0x73f)];const x=document['createElement']('span');if(x[cp(0x757)]='slider\x20round',v['appendChild'](w),v[cp(0x89a)](x),p){if(f[cp(0x424)]===cp(0x4d1))m[cp(0x89a)](p),m['appendChild'](v);else{if(f['labelPosition']==='right')m[cp(0x89a)](v),m['appendChild'](p);else{if(f['labelPosition']===cp(0x2a9)){const z=document[cp(0x558)]('div');z['className']=cp(0x61b),z[cp(0x89a)](p),z[cp(0x89a)](v),m['appendChild'](z);}else{if(f[cp(0x424)]==='bottom'){const B=document[cp(0x558)](cp(0x4b6));B[cp(0x757)]='toggle-vertical',B['appendChild'](v),B['appendChild'](p),m['appendChild'](B);}}}}}else m['appendChild'](v);f[cp(0x524)]&&w[cp(0x1f6)]('change',E=>{const cq=cp;f[cq(0x524)](E[cq(0x427)]['checked']);});const y=document[cp(0x558)](cp(0x639));return y['textContent']=cp(0x631)+k/0x2+cp(0x89c)+f['offColor']+';\x0a\x20\x20\x20\x20\x20\x20transition:\x20.4s;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20.slider:before\x20{\x0a\x20\x20\x20\x20\x20\x20position:\x20absolute;\x0a\x20\x20\x20\x20\x20\x20content:\x20\x22\x22;\x0a\x20\x20\x20\x20\x20\x20height:\x20'+k+'px;\x0a\x20\x20\x20\x20\x20\x20width:\x20'+k+'px;\x0a\x20\x20\x20\x20\x20\x20left:\x20'+(j-k)/0x2+cp(0x48d)+(j-k)/0x2+cp(0x767)+f[cp(0x5ff)]+cp(0xa1e)+(i-k-(j-k))+'px);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20.slider.round\x20{\x0a\x20\x20\x20\x20\x20\x20border-radius:\x20'+j+'px;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20.slider.round:before\x20{\x0a\x20\x20\x20\x20\x20\x20border-radius:\x2050%;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20input:focus\x20+\x20.slider\x20{\x0a\x20\x20\x20\x20\x20\x20box-shadow:\x200\x200\x201px\x20'+f['onColor']+';\x0a\x20\x20\x20\x20}\x0a\x20\x20',m['appendChild'](y),m;}function nh(){return typeof window<'u'&&window['location']?window['location']['hostname']:'';}function rh(b){const cv=a0b;if(typeof b!=cv(0xb0b))return!0x1;try{return new URL(b);}catch{return!0x1;}}function Qa(b){const cw=a0b;if(typeof b!=cw(0xb0b)||!b)return'';if(b['startsWith'](cw(0x623))){const d=b['split']('/');return d[d[cw(0x576)]-0x1]||'';}const c=rh(b);if(c===!0x1)return b[cw(0x704)]('/')[cw(0x3da)]()||b['split']('\x5c')[cw(0x3da)]()||'';{const f=c['pathname'];return f[cw(0x221)](f['lastIndexOf']('/')+0x1)||'';}}async function oh(){const cx=a0b;if(typeof navigator>'u'||!navigator[cx(0xa69)]||!navigator[cx(0xa69)][cx(0x2e8)])return null;try{const b=await navigator['storage'][cx(0x2e8)](),c=b['usage']||0x0,d=b[cx(0x64e)]||0x0,f=d>0x0?(c/d*0x64)[cx(0x39d)](0x1):cx(0x6b7);return{'usage':c,'quota':d,'usagePercent':parseFloat(f)};}catch(g){return console[cx(0x323)](cx(0x1f0),g),null;}}async function ah(){const cB=a0b;try{if(!('indexedDB'in window))return!0x1;const b='__bmv_indexedDB_test_'+Date['now']();return await new Promise(c=>{const cy=a0b;let d=!0x1;const f=indexedDB[cy(0x75f)](b);f[cy(0xa61)]=()=>{const cz=cy;d||(d=!0x0,indexedDB[cz(0x1d1)](b),c(!0x0));},f[cy(0x6ee)]=()=>{d||(d=!0x0,c(!0x1));},setTimeout(()=>{d||(d=!0x0,c(!0x1));},0x2710);});}catch(c){return console['error'](cB(0x7e1),c),!0x1;}}async function Sa(){const cC=a0b;try{const b=(await window[cC(0x534)]['databases']())['map'](c=>new Promise((d,f)=>{const cE=cC,g=indexedDB['deleteDatabase'](c['name']);g['onsuccess']=()=>{d();},g['onerror']=h=>{const cD=a0b;console['error']('数据库\x20'+c['name']+cD(0x43e),h),f(new Error(cD(0x217)+c[cD(0x587)]+cD(0x29b)));},g[cE(0x931)]=()=>{const cF=cE;alert(cF(0x4ca)),console[cF(0x637)](cF(0x7a7)+c[cF(0x587)]+'\x20删除被阻塞(可能仍有连接未关闭)');};}));await Promise['all'](b);}catch(c){throw console[cC(0x323)]('删除IndexedDB时出错:',c),c;}}function ch(b,c='m'){const cG=a0b;if(typeof b!='number'||!isFinite(b))throw new Error('Distance\x20must\x20be\x20a\x20finite\x20number');if(b<0x0)throw new Error('Distance\x20must\x20be\x20non-negative');const d=c[cG(0x816)]();let f;switch(d){case'm':f=b;break;case'cm':f=b*0x64;break;case'mm':f=b*0x3e8;break;default:throw new Error(cG(0x4ef));}return f['toFixed'](0x2)+c;}const Wg=Object['freeze'](Object[a0cH(0x1c5)]({'__proto__':null,'addSphereByPoint':Kl,'calculateMousePosition':eh,'calculateScaleFactor':Jl,'checkStorageQuota':oh,'clearAllIndexedDB':Sa,'computeFPS':$l,'countGeometryStats':mr,'createBoundBoxEdge':Wl,'createLabeledToggleSwitch':sh,'deepFreeze':Gr,'djb2Hash':th,'downloadFileWithProgress':zl,'formatDistance':ch,'getCurrentDomain':nh,'getDfcHHNodeByMesh':_a,'getDfcNodeByMesh':va,'getEightDirection':ih,'getFileNameByUrl':Qa,'getRandomNumber':jl,'getRootLODByMesh':xa,'getUniqueMaterialsCount':Zl,'hideAllChildren':ql,'isIOS':Vl,'isIndexedDBSupported':ah,'isMobileEnhanced':sn,'isVersionGreaterOrEqual':br,'layerIsVisible':Ta,'mergeOptions':zr,'randomExecute':Yl,'splitArrayIntoParts':Hl},Symbol[a0cH(0x6ed)],{'value':a0cH(0x968)}));class lh extends a0d{constructor(b=document[a0cH(0x558)](a0cH(0x4b6))){const cI=a0cH;super(),this[cI(0x32f)]=!0x0,this['element']=b,this[cI(0x798)]['style'][cI(0x3e0)]='absolute',this[cI(0x798)][cI(0x639)][cI(0x6bc)]='none',this['element'][cI(0x86c)](cI(0x714),!0x1),this[cI(0x231)]=new a0l(0.5,0.5),this[cI(0x1f6)](cI(0x660),function(){const cJ=cI;this[cJ(0x730)](function(c){const cK=cJ;c[cK(0x798)]instanceof c[cK(0x798)]['ownerDocument']['defaultView'][cK(0xa34)]&&c['element']['parentNode']!==null&&c['element'][cK(0x1da)]();});});}['copy'](b,c){const cL=a0cH;return super['copy'](b,c),this[cL(0x798)]=b['element'][cL(0x988)](!0x0),this[cL(0x231)]=b[cL(0x231)],this;}}const Wt=new a0c(),Ao=new a0m(),uo=new a0m(),go=new a0c(),fo=new a0c();class hh{constructor(b={}){const cM=a0cH,f=this;let i,j,k,m;const p={'objects':new WeakMap()},v=b[cM(0x798)]!==void 0x0?b[cM(0x798)]:document[cM(0x558)](cM(0x4b6));v['style']['overflow']='hidden',this[cM(0x736)]=v,this[cM(0x20b)]=function(){return{'width':i,'height':j};},this[cM(0x181)]=function(E,F){const cN=cM;E['matrixWorldAutoUpdate']===!0x0&&E['updateMatrixWorld'](),F['parent']===null&&F[cN(0x447)]===!0x0&&F[cN(0x6e5)](),Ao['copy'](F[cN(0xb5e)]),uo['multiplyMatrices'](F[cN(0xa30)],Ao),x(E,E,F),B(E);},this[cM(0x1f4)]=function(E,F){const cO=cM;i=E,j=F,k=i/0x2,m=j/0x2,v['style']['width']=E+'px',v[cO(0x639)]['height']=F+'px';};function w(E){const cP=cM;E[cP(0x32f)]&&(E['element']['style']['display']='none');for(let F=0x0,H=E[cP(0x330)]['length'];F<H;F++)w(E['children'][F]);}function x(F,H,L){const cQ=cM;if(F[cQ(0x921)]===!0x1){w(F);return;}if(F['isCSS2DObject']){Wt['setFromMatrixPosition'](F['matrixWorld']),Wt['applyMatrix4'](uo);const N=Wt['z']>=-0x1&&Wt['z']<=0x1&&F['layers']['test'](L['layers'])===!0x0,R=F[cQ(0x798)];R['style'][cQ(0x9e9)]=N===!0x0?'':cQ(0x6ab),N===!0x0&&(F['onBeforeRender'](f,H,L),R[cQ(0x639)][cQ(0xb0c)]='translate('+-0x64*F['center']['x']+'%,'+-0x64*F['center']['y']+cQ(0x658)+(Wt['x']*k+k)+'px,'+(-Wt['y']*m+m)+cQ(0x1cb),R[cQ(0x909)]!==v&&v[cQ(0x89a)](R),F[cQ(0xb77)](f,H,L));const S={'distanceToCameraSquared':y(L,F)};p['objects']['set'](F,S);}for(let T=0x0,U=F[cQ(0x330)]['length'];T<U;T++)x(F[cQ(0x330)][T],H,L);}function y(E,F){const cR=cM;return go[cR(0x738)](E['matrixWorld']),fo['setFromMatrixPosition'](F['matrixWorld']),go[cR(0x967)](fo);}function z(E){const cS=cM,F=[];return E[cS(0x95e)](function(H){const cT=cS;H[cT(0x32f)]&&F[cT(0x50e)](H);}),F;}function B(F){const cU=cM,H=z(F)[cU(0x32e)](function(N,R){const cV=cU;if(N['renderOrder']!==R[cV(0x32b)])return R['renderOrder']-N['renderOrder'];const S=p[cV(0x25b)][cV(0x20c)](N)[cV(0x206)],T=p[cV(0x25b)]['get'](R)['distanceToCameraSquared'];return S-T;}),L=H['length'];for(let N=0x0,R=H['length'];N<R;N++)H[N][cU(0x798)]['style']['zIndex']=L-N;}}}class vi{constructor(){const cW=a0cH;this['isPass']=!0x0,this[cW(0x95b)]=!0x0,this[cW(0x4ea)]=!0x0,this[cW(0x6d2)]=!0x1,this['renderToScreen']=!0x1;}[a0cH(0x1f4)](){}['render'](){console['error']('THREE.Pass:\x20.render()\x20must\x20be\x20implemented\x20in\x20derived\x20pass.');}['dispose'](){}}const Ah=new a0n(-0x1,0x1,0x1,-0x1,0x0,0x1);class dh extends a0j{constructor(){const cX=a0cH;super(),this[cX(0x86c)](cX(0x3e0),new a0o([-0x1,0x3,0x0,-0x1,-0x1,0x0,0x3,-0x1,0x0],0x3)),this[cX(0x86c)]('uv',new a0o([0x0,0x2,0x0,0x0,0x2,0x0],0x2));}}const uh=new dh();class Hr{constructor(b){this['_mesh']=new a0e(uh,b);}[a0cH(0xa58)](){const cY=a0cH;this[cY(0x648)][cY(0x45e)][cY(0xa58)]();}[a0cH(0x181)](b){const cZ=a0cH;b['render'](this[cZ(0x648)],Ah);}get[a0cH(0xb87)](){return this['_mesh']['material'];}set['material'](b){const d0=a0cH;this[d0(0x648)][d0(0xb87)]=b;}}const gh=0x0,po=0x2,fh=0x1,mo=0x2,ph=0x0,mh=0x1,bh=0xa,Eh=0x0,Da=0x9,Ma=0xf,La=0x10,Ra=0x16,Pa=0x25,ka=0x2b,Fa=0x4c,Oa=0x53,Na=0x61,Ua=0x64,Ga=0x67,za=0x6d,Ha=0xa5,qa=0xa6,qr=0x3b9bcbd0;class Ch{constructor(){const d1=a0cH;this[d1(0x3e1)]=0x0,this['typeSize']=0x1,this['pixelWidth']=0x0,this[d1(0xaf9)]=0x0,this['pixelDepth']=0x0,this[d1(0x547)]=0x0,this['faceCount']=0x1,this['supercompressionScheme']=0x0,this['levels']=[],this[d1(0xac0)]=[{'vendorId':0x0,'descriptorType':0x0,'descriptorBlockSize':0x0,'versionNumber':0x2,'colorModel':0x0,'colorPrimaries':0x1,'transferFunction':0x2,'flags':0x0,'texelBlockDimension':[0x0,0x0,0x0,0x0],'bytesPlane':[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0],'samples':[]}],this[d1(0x8b3)]={},this['globalData']=null;}}class Oi{constructor(b,c,d,f){const d2=a0cH;this['_dataView']=void 0x0,this['_littleEndian']=void 0x0,this['_offset']=void 0x0,this[d2(0x175)]=new DataView(b[d2(0x67a)],b['byteOffset']+c,d),this[d2(0x463)]=f,this['_offset']=0x0;}['_nextUint8'](){const d3=a0cH,b=this[d3(0x175)]['getUint8'](this['_offset']);return this[d3(0x472)]+=0x1,b;}['_nextUint16'](){const d4=a0cH,b=this['_dataView'][d4(0x34b)](this[d4(0x472)],this[d4(0x463)]);return this['_offset']+=0x2,b;}[a0cH(0x7ae)](){const d5=a0cH,b=this['_dataView']['getUint32'](this[d5(0x472)],this['_littleEndian']);return this[d5(0x472)]+=0x4,b;}['_nextUint64'](){const d6=a0cH,b=this['_dataView'][d6(0x345)](this[d6(0x472)],this[d6(0x463)])+0x100000000*this[d6(0x175)][d6(0x345)](this['_offset']+0x4,this['_littleEndian']);return this[d6(0x472)]+=0x8,b;}['_nextInt32'](){const d7=a0cH,b=this[d7(0x175)]['getInt32'](this[d7(0x472)],this[d7(0x463)]);return this['_offset']+=0x4,b;}['_nextUint8Array'](b){const d8=a0cH,c=new Uint8Array(this['_dataView'][d8(0x67a)],this['_dataView'][d8(0x4b1)]+this[d8(0x472)],b);return this[d8(0x472)]+=b,c;}['_skip'](b){return this['_offset']+=b,this;}['_scan'](b,c){const d9=a0cH;c===void 0x0&&(c=0x0);const d=this['_offset'];let f=0x0;for(;this['_dataView'][d9(0x265)](this[d9(0x472)])!==c&&f<b;)f++,this['_offset']++;return f<b&&this['_offset']++,new Uint8Array(this['_dataView'][d9(0x67a)],this[d9(0x175)][d9(0x4b1)]+d,f);}}const xe=[0xab,0x4b,0x54,0x58,0x20,0x32,0x30,0xbb,0xd,0xa,0x1a,0xa];function bo(b){const db=a0cH;return new TextDecoder()[db(0x8e1)](b);}function yh(i){const df=a0cH,a0=new Uint8Array(i[df(0x67a)],i[df(0x4b1)],xe['length']);if(a0[0x0]!==xe[0x0]||a0[0x1]!==xe[0x1]||a0[0x2]!==xe[0x2]||a0[0x3]!==xe[0x3]||a0[0x4]!==xe[0x4]||a0[0x5]!==xe[0x5]||a0[0x6]!==xe[0x6]||a0[0x7]!==xe[0x7]||a0[0x8]!==xe[0x8]||a0[0x9]!==xe[0x9]||a0[0xa]!==xe[0xa]||a0[0xb]!==xe[0xb])throw new Error(df(0xb66));const a1=new Ch(),a2=0x11*Uint32Array[df(0x443)],a3=new Oi(i,xe['length'],a2,!0x0);a1[df(0x3e1)]=a3['_nextUint32'](),a1['typeSize']=a3['_nextUint32'](),a1[df(0x55b)]=a3[df(0x7ae)](),a1[df(0xaf9)]=a3['_nextUint32'](),a1[df(0x45b)]=a3[df(0x7ae)](),a1[df(0x547)]=a3['_nextUint32'](),a1['faceCount']=a3[df(0x7ae)]();const a4=a3[df(0x7ae)]();a1[df(0x898)]=a3['_nextUint32']();const a5=a3['_nextUint32'](),a6=a3[df(0x7ae)](),a7=a3[df(0x7ae)](),a8=a3['_nextUint32'](),a9=a3[df(0x79d)](),ab=a3[df(0x79d)](),aj=new Oi(i,xe['length']+a2,0x3*a4*0x8,!0x0);for(let aL=0x0;aL<a4;aL++)a1[df(0xac4)][df(0x50e)]({'levelData':new Uint8Array(i[df(0x67a)],i['byteOffset']+aj['_nextUint64'](),aj[df(0x79d)]()),'uncompressedByteLength':aj[df(0x79d)]()});const ak=new Oi(i,a5,a6,!0x0),am={'vendorId':ak[df(0x30b)](0x4)[df(0x268)](),'descriptorType':ak[df(0x268)](),'versionNumber':ak['_nextUint16'](),'descriptorBlockSize':ak['_nextUint16'](),'colorModel':ak['_nextUint8'](),'colorPrimaries':ak['_nextUint8'](),'transferFunction':ak['_nextUint8'](),'flags':ak['_nextUint8'](),'texelBlockDimension':[ak['_nextUint8'](),ak['_nextUint8'](),ak['_nextUint8'](),ak['_nextUint8']()],'bytesPlane':[ak['_nextUint8'](),ak[df(0x843)](),ak[df(0x843)](),ak['_nextUint8'](),ak[df(0x843)](),ak[df(0x843)](),ak[df(0x843)](),ak['_nextUint8']()],'samples':[]},an=(am['descriptorBlockSize']/0x4-0x6)/0x4;for(let aM=0x0;aM<an;aM++){const aN={'bitOffset':ak[df(0x268)](),'bitLength':ak[df(0x843)](),'channelType':ak['_nextUint8'](),'samplePosition':[ak['_nextUint8'](),ak['_nextUint8'](),ak[df(0x843)](),ak['_nextUint8']()],'sampleLower':-0x1/0x0,'sampleUpper':0x1/0x0};0x40&aN[df(0x250)]?(aN['sampleLower']=ak['_nextInt32'](),aN[df(0x200)]=ak[df(0x4b5)]()):(aN[df(0x801)]=ak[df(0x7ae)](),aN['sampleUpper']=ak[df(0x7ae)]()),am[df(0x85a)][aM]=aN;}a1['dataFormatDescriptor']['length']=0x0,a1[df(0xac0)][df(0x50e)](am);const ap=new Oi(i,a7,a8,!0x0);for(;ap['_offset']<a8;){const aO=ap[df(0x7ae)](),aP=ap['_scan'](aO),aQ=bo(aP);if(a1['keyValue'][aQ]=ap['_nextUint8Array'](aO-aP['byteLength']-0x1),aQ['match'](/^ktx/i)){const aR=bo(a1['keyValue'][aQ]);a1[df(0x8b3)][aQ]=aR[df(0x221)](0x0,aR['lastIndexOf']('\x00'));}ap[df(0x30b)](aO%0x4?0x4-aO%0x4:0x0);}if(ab<=0x0)return a1;const aq=new Oi(i,a9,ab,!0x0),av=aq[df(0x268)](),aw=aq['_nextUint16'](),ax=aq['_nextUint32'](),ay=aq[df(0x7ae)](),az=aq[df(0x7ae)](),aB=aq['_nextUint32'](),aC=[];for(let aS=0x0;aS<a4;aS++)aC['push']({'imageFlags':aq['_nextUint32'](),'rgbSliceByteOffset':aq[df(0x7ae)](),'rgbSliceByteLength':aq['_nextUint32'](),'alphaSliceByteOffset':aq[df(0x7ae)](),'alphaSliceByteLength':aq[df(0x7ae)]()});const aD=a9+aq['_offset'],aE=aD+ax,aF=aE+ay,aG=aF+az,aH=new Uint8Array(i[df(0x67a)],i[df(0x4b1)]+aD,ax),aI=new Uint8Array(i['buffer'],i[df(0x4b1)]+aE,ay),aJ=new Uint8Array(i['buffer'],i['byteOffset']+aF,az),aK=new Uint8Array(i['buffer'],i['byteOffset']+aG,aB);return a1[df(0x8e6)]={'endpointCount':av,'selectorCount':aw,'imageDescs':aC,'endpointsData':aH,'selectorsData':aI,'tablesData':aJ,'extendedData':aK},a1;}const Eo=new a0h(),fs=new a0c();class Va extends a0p{constructor(){const dj=a0cH;super(),this['isLineSegmentsGeometry']=!0x0,this[dj(0x223)]='LineSegmentsGeometry';const b=[-0x1,0x2,0x0,0x1,0x2,0x0,-0x1,0x1,0x0,0x1,0x1,0x0,-0x1,0x0,0x0,0x1,0x0,0x0,-0x1,-0x1,0x0,0x1,-0x1,0x0],c=[-0x1,0x2,0x1,0x2,-0x1,0x1,0x1,0x1,-0x1,-0x1,0x1,-0x1,-0x1,-0x2,0x1,-0x2],d=[0x0,0x2,0x1,0x2,0x3,0x1,0x2,0x4,0x3,0x4,0x5,0x3,0x4,0x6,0x5,0x6,0x7,0x5];this['setIndex'](d),this[dj(0x86c)](dj(0x3e0),new a0o(b,0x3)),this['setAttribute']('uv',new a0o(c,0x2));}['applyMatrix4'](b){const dk=a0cH,c=this[dk(0x974)][dk(0x7b9)],d=this['attributes']['instanceEnd'];return c!==void 0x0&&(c[dk(0x5e0)](b),d['applyMatrix4'](b),c[dk(0x5f7)]=!0x0),this[dk(0x785)]!==null&&this['computeBoundingBox'](),this['boundingSphere']!==null&&this[dk(0x5e3)](),this;}[a0cH(0x58e)](b){const dm=a0cH;let c;b instanceof Float32Array?c=b:Array['isArray'](b)&&(c=new Float32Array(b));const d=new a0q(c,0x6,0x1);return this[dm(0x86c)](dm(0x7b9),new a0r(d,0x3,0x0)),this[dm(0x86c)](dm(0x63d),new a0r(d,0x3,0x3)),this[dm(0x70f)]=this[dm(0x974)][dm(0x7b9)]['count'],this['computeBoundingBox'](),this['computeBoundingSphere'](),this;}['setColors'](b){const dn=a0cH;let c;b instanceof Float32Array?c=b:Array['isArray'](b)&&(c=new Float32Array(b));const d=new a0q(c,0x6,0x1);return this['setAttribute'](dn(0x4f5),new a0r(d,0x3,0x0)),this[dn(0x86c)]('instanceColorEnd',new a0r(d,0x3,0x3)),this;}[a0cH(0xa86)](b){const dp=a0cH;return this[dp(0x58e)](b[dp(0x974)][dp(0x3e0)][dp(0x779)]),this;}[a0cH(0x6ca)](b){const dq=a0cH;return this['setPositions'](b[dq(0x974)]['position'][dq(0x779)]),this;}[a0cH(0x45f)](b){const dv=a0cH;return this[dv(0xa86)](new a0s(b[dv(0x45e)])),this;}[a0cH(0xa23)](b){const dw=a0cH,c=b[dw(0x45e)];return this['setPositions'](c[dw(0x974)][dw(0x3e0)][dw(0x779)]),this;}['computeBoundingBox'](){const dx=a0cH;this[dx(0x785)]===null&&(this[dx(0x785)]=new a0h());const b=this['attributes'][dx(0x7b9)],c=this['attributes'][dx(0x63d)];b!==void 0x0&&c!==void 0x0&&(this[dx(0x785)][dx(0x915)](b),Eo['setFromBufferAttribute'](c),this['boundingBox'][dx(0x7dc)](Eo));}[a0cH(0x5e3)](){const dy=a0cH;this['boundingSphere']===null&&(this['boundingSphere']=new a0t()),this['boundingBox']===null&&this[dy(0x5b1)]();const b=this[dy(0x974)]['instanceStart'],c=this['attributes'][dy(0x63d)];if(b!==void 0x0&&c!==void 0x0){const d=this['boundingSphere']['center'];this['boundingBox'][dy(0x8f7)](d);let f=0x0;for(let g=0x0,h=b[dy(0xa6a)];g<h;g++)fs['fromBufferAttribute'](b,g),f=Math[dy(0x894)](f,d[dy(0x967)](fs)),fs['fromBufferAttribute'](c,g),f=Math[dy(0x894)](f,d['distanceToSquared'](fs));this['boundingSphere'][dy(0x9f0)]=Math[dy(0x902)](f),isNaN(this['boundingSphere']['radius'])&&console[dy(0x323)](dy(0x8ef),this);}}[a0cH(0x1e9)](){}['applyMatrix'](b){const dz=a0cH;return console[dz(0x637)](dz(0xb3c)),this['applyMatrix4'](b);}}a0x[a0cH(0x876)]={'worldUnits':{'value':0x1},'linewidth':{'value':0x1},'resolution':{'value':new a0l(0x1,0x1)},'dashOffset':{'value':0x0},'dashScale':{'value':0x1},'dashSize':{'value':0x1},'gapSize':{'value':0x1}},a0v['line']={'uniforms':a0w['merge']([a0x[a0cH(0xa7b)],a0x[a0cH(0x41d)],a0x['line']]),'vertexShader':'\x0a\x09\x09#include\x20<common>\x0a\x09\x09#include\x20<color_pars_vertex>\x0a\x09\x09#include\x20<fog_pars_vertex>\x0a\x09\x09#include\x20<logdepthbuf_pars_vertex>\x0a\x09\x09#include\x20<clipping_planes_pars_vertex>\x0a\x0a\x09\x09uniform\x20float\x20linewidth;\x0a\x09\x09uniform\x20vec2\x20resolution;\x0a\x0a\x09\x09attribute\x20vec3\x20instanceStart;\x0a\x09\x09attribute\x20vec3\x20instanceEnd;\x0a\x0a\x09\x09attribute\x20vec3\x20instanceColorStart;\x0a\x09\x09attribute\x20vec3\x20instanceColorEnd;\x0a\x0a\x09\x09#ifdef\x20WORLD_UNITS\x0a\x0a\x09\x09\x09varying\x20vec4\x20worldPos;\x0a\x09\x09\x09varying\x20vec3\x20worldStart;\x0a\x09\x09\x09varying\x20vec3\x20worldEnd;\x0a\x0a\x09\x09\x09#ifdef\x20USE_DASH\x0a\x0a\x09\x09\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09\x09#endif\x0a\x0a\x09\x09#else\x0a\x0a\x09\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09#endif\x0a\x0a\x09\x09#ifdef\x20USE_DASH\x0a\x0a\x09\x09\x09uniform\x20float\x20dashScale;\x0a\x09\x09\x09attribute\x20float\x20instanceDistanceStart;\x0a\x09\x09\x09attribute\x20float\x20instanceDistanceEnd;\x0a\x09\x09\x09varying\x20float\x20vLineDistance;\x0a\x0a\x09\x09#endif\x0a\x0a\x09\x09void\x20trimSegment(\x20const\x20in\x20vec4\x20start,\x20inout\x20vec4\x20end\x20)\x20{\x0a\x0a\x09\x09\x09//\x20trim\x20end\x20segment\x20so\x20it\x20terminates\x20between\x20the\x20camera\x20plane\x20and\x20the\x20near\x20plane\x0a\x0a\x09\x09\x09//\x20conservative\x20estimate\x20of\x20the\x20near\x20plane\x0a\x09\x09\x09float\x20a\x20=\x20projectionMatrix[\x202\x20][\x202\x20];\x20//\x203nd\x20entry\x20in\x203th\x20column\x0a\x09\x09\x09float\x20b\x20=\x20projectionMatrix[\x203\x20][\x202\x20];\x20//\x203nd\x20entry\x20in\x204th\x20column\x0a\x09\x09\x09float\x20nearEstimate\x20=\x20-\x200.5\x20*\x20b\x20/\x20a;\x0a\x0a\x09\x09\x09float\x20alpha\x20=\x20(\x20nearEstimate\x20-\x20start.z\x20)\x20/\x20(\x20end.z\x20-\x20start.z\x20);\x0a\x0a\x09\x09\x09end.xyz\x20=\x20mix(\x20start.xyz,\x20end.xyz,\x20alpha\x20);\x0a\x0a\x09\x09}\x0a\x0a\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09#ifdef\x20USE_COLOR\x0a\x0a\x09\x09\x09\x09vColor.xyz\x20=\x20(\x20position.y\x20<\x200.5\x20)\x20?\x20instanceColorStart\x20:\x20instanceColorEnd;\x0a\x0a\x09\x09\x09#endif\x0a\x0a\x09\x09\x09#ifdef\x20USE_DASH\x0a\x0a\x09\x09\x09\x09vLineDistance\x20=\x20(\x20position.y\x20<\x200.5\x20)\x20?\x20dashScale\x20*\x20instanceDistanceStart\x20:\x20dashScale\x20*\x20instanceDistanceEnd;\x0a\x09\x09\x09\x09vUv\x20=\x20uv;\x0a\x0a\x09\x09\x09#endif\x0a\x0a\x09\x09\x09float\x20aspect\x20=\x20resolution.x\x20/\x20resolution.y;\x0a\x0a\x09\x09\x09//\x20camera\x20space\x0a\x09\x09\x09vec4\x20start\x20=\x20modelViewMatrix\x20*\x20vec4(\x20instanceStart,\x201.0\x20);\x0a\x09\x09\x09vec4\x20end\x20=\x20modelViewMatrix\x20*\x20vec4(\x20instanceEnd,\x201.0\x20);\x0a\x0a\x09\x09\x09#ifdef\x20WORLD_UNITS\x0a\x0a\x09\x09\x09\x09worldStart\x20=\x20start.xyz;\x0a\x09\x09\x09\x09worldEnd\x20=\x20end.xyz;\x0a\x0a\x09\x09\x09#else\x0a\x0a\x09\x09\x09\x09vUv\x20=\x20uv;\x0a\x0a\x09\x09\x09#endif\x0a\x0a\x09\x09\x09//\x20special\x20case\x20for\x20perspective\x20projection,\x20and\x20segments\x20that\x20terminate\x20either\x20in,\x20or\x20behind,\x20the\x20camera\x20plane\x0a\x09\x09\x09//\x20clearly\x20the\x20gpu\x20firmware\x20has\x20a\x20way\x20of\x20addressing\x20this\x20issue\x20when\x20projecting\x20into\x20ndc\x20space\x0a\x09\x09\x09//\x20but\x20we\x20need\x20to\x20perform\x20ndc-space\x20calculations\x20in\x20the\x20shader,\x20so\x20we\x20must\x20address\x20this\x20issue\x20directly\x0a\x09\x09\x09//\x20perhaps\x20there\x20is\x20a\x20more\x20elegant\x20solution\x20--\x20WestLangley\x0a\x0a\x09\x09\x09bool\x20perspective\x20=\x20(\x20projectionMatrix[\x202\x20][\x203\x20]\x20==\x20-\x201.0\x20);\x20//\x204th\x20entry\x20in\x20the\x203rd\x20column\x0a\x0a\x09\x09\x09if\x20(\x20perspective\x20)\x20{\x0a\x0a\x09\x09\x09\x09if\x20(\x20start.z\x20<\x200.0\x20&&\x20end.z\x20>=\x200.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09trimSegment(\x20start,\x20end\x20);\x0a\x0a\x09\x09\x09\x09}\x20else\x20if\x20(\x20end.z\x20<\x200.0\x20&&\x20start.z\x20>=\x200.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09trimSegment(\x20end,\x20start\x20);\x0a\x0a\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09}\x0a\x0a\x09\x09\x09//\x20clip\x20space\x0a\x09\x09\x09vec4\x20clipStart\x20=\x20projectionMatrix\x20*\x20start;\x0a\x09\x09\x09vec4\x20clipEnd\x20=\x20projectionMatrix\x20*\x20end;\x0a\x0a\x09\x09\x09//\x20ndc\x20space\x0a\x09\x09\x09vec3\x20ndcStart\x20=\x20clipStart.xyz\x20/\x20clipStart.w;\x0a\x09\x09\x09vec3\x20ndcEnd\x20=\x20clipEnd.xyz\x20/\x20clipEnd.w;\x0a\x0a\x09\x09\x09//\x20direction\x0a\x09\x09\x09vec2\x20dir\x20=\x20ndcEnd.xy\x20-\x20ndcStart.xy;\x0a\x0a\x09\x09\x09//\x20account\x20for\x20clip-space\x20aspect\x20ratio\x0a\x09\x09\x09dir.x\x20*=\x20aspect;\x0a\x09\x09\x09dir\x20=\x20normalize(\x20dir\x20);\x0a\x0a\x09\x09\x09#ifdef\x20WORLD_UNITS\x0a\x0a\x09\x09\x09\x09vec3\x20worldDir\x20=\x20normalize(\x20end.xyz\x20-\x20start.xyz\x20);\x0a\x09\x09\x09\x09vec3\x20tmpFwd\x20=\x20normalize(\x20mix(\x20start.xyz,\x20end.xyz,\x200.5\x20)\x20);\x0a\x09\x09\x09\x09vec3\x20worldUp\x20=\x20normalize(\x20cross(\x20worldDir,\x20tmpFwd\x20)\x20);\x0a\x09\x09\x09\x09vec3\x20worldFwd\x20=\x20cross(\x20worldDir,\x20worldUp\x20);\x0a\x09\x09\x09\x09worldPos\x20=\x20position.y\x20<\x200.5\x20?\x20start:\x20end;\x0a\x0a\x09\x09\x09\x09//\x20height\x20offset\x0a\x09\x09\x09\x09float\x20hw\x20=\x20linewidth\x20*\x200.5;\x0a\x09\x09\x09\x09worldPos.xyz\x20+=\x20position.x\x20<\x200.0\x20?\x20hw\x20*\x20worldUp\x20:\x20-\x20hw\x20*\x20worldUp;\x0a\x0a\x09\x09\x09\x09//\x20don\x27t\x20extend\x20the\x20line\x20if\x20we\x27re\x20rendering\x20dashes\x20because\x20we\x0a\x09\x09\x09\x09//\x20won\x27t\x20be\x20rendering\x20the\x20endcaps\x0a\x09\x09\x09\x09#ifndef\x20USE_DASH\x0a\x0a\x09\x09\x09\x09\x09//\x20cap\x20extension\x0a\x09\x09\x09\x09\x09worldPos.xyz\x20+=\x20position.y\x20<\x200.5\x20?\x20-\x20hw\x20*\x20worldDir\x20:\x20hw\x20*\x20worldDir;\x0a\x0a\x09\x09\x09\x09\x09//\x20add\x20width\x20to\x20the\x20box\x0a\x09\x09\x09\x09\x09worldPos.xyz\x20+=\x20worldFwd\x20*\x20hw;\x0a\x0a\x09\x09\x09\x09\x09//\x20endcaps\x0a\x09\x09\x09\x09\x09if\x20(\x20position.y\x20>\x201.0\x20||\x20position.y\x20<\x200.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09\x09worldPos.xyz\x20-=\x20worldFwd\x20*\x202.0\x20*\x20hw;\x0a\x0a\x09\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09#endif\x0a\x0a\x09\x09\x09\x09//\x20project\x20the\x20worldpos\x0a\x09\x09\x09\x09vec4\x20clip\x20=\x20projectionMatrix\x20*\x20worldPos;\x0a\x0a\x09\x09\x09\x09//\x20shift\x20the\x20depth\x20of\x20the\x20projected\x20points\x20so\x20the\x20line\x0a\x09\x09\x09\x09//\x20segments\x20overlap\x20neatly\x0a\x09\x09\x09\x09vec3\x20clipPose\x20=\x20(\x20position.y\x20<\x200.5\x20)\x20?\x20ndcStart\x20:\x20ndcEnd;\x0a\x09\x09\x09\x09clip.z\x20=\x20clipPose.z\x20*\x20clip.w;\x0a\x0a\x09\x09\x09#else\x0a\x0a\x09\x09\x09\x09vec2\x20offset\x20=\x20vec2(\x20dir.y,\x20-\x20dir.x\x20);\x0a\x09\x09\x09\x09//\x20undo\x20aspect\x20ratio\x20adjustment\x0a\x09\x09\x09\x09dir.x\x20/=\x20aspect;\x0a\x09\x09\x09\x09offset.x\x20/=\x20aspect;\x0a\x0a\x09\x09\x09\x09//\x20sign\x20flip\x0a\x09\x09\x09\x09if\x20(\x20position.x\x20<\x200.0\x20)\x20offset\x20*=\x20-\x201.0;\x0a\x0a\x09\x09\x09\x09//\x20endcaps\x0a\x09\x09\x09\x09if\x20(\x20position.y\x20<\x200.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09offset\x20+=\x20-\x20dir;\x0a\x0a\x09\x09\x09\x09}\x20else\x20if\x20(\x20position.y\x20>\x201.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09offset\x20+=\x20dir;\x0a\x0a\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09//\x20adjust\x20for\x20linewidth\x0a\x09\x09\x09\x09offset\x20*=\x20linewidth;\x0a\x0a\x09\x09\x09\x09//\x20adjust\x20for\x20clip-space\x20to\x20screen-space\x20conversion\x20//\x20maybe\x20resolution\x20should\x20be\x20based\x20on\x20viewport\x20...\x0a\x09\x09\x09\x09offset\x20/=\x20resolution.y;\x0a\x0a\x09\x09\x09\x09//\x20select\x20end\x0a\x09\x09\x09\x09vec4\x20clip\x20=\x20(\x20position.y\x20<\x200.5\x20)\x20?\x20clipStart\x20:\x20clipEnd;\x0a\x0a\x09\x09\x09\x09//\x20back\x20to\x20clip\x20space\x0a\x09\x09\x09\x09offset\x20*=\x20clip.w;\x0a\x0a\x09\x09\x09\x09clip.xy\x20+=\x20offset;\x0a\x0a\x09\x09\x09#endif\x0a\x0a\x09\x09\x09gl_Position\x20=\x20clip;\x0a\x0a\x09\x09\x09vec4\x20mvPosition\x20=\x20(\x20position.y\x20<\x200.5\x20)\x20?\x20start\x20:\x20end;\x20//\x20this\x20is\x20an\x20approximation\x0a\x0a\x09\x09\x09#include\x20<logdepthbuf_vertex>\x0a\x09\x09\x09#include\x20<clipping_planes_vertex>\x0a\x09\x09\x09#include\x20<fog_vertex>\x0a\x0a\x09\x09}\x0a\x09\x09','fragmentShader':'\x0a\x09\x09uniform\x20vec3\x20diffuse;\x0a\x09\x09uniform\x20float\x20opacity;\x0a\x09\x09uniform\x20float\x20linewidth;\x0a\x0a\x09\x09#ifdef\x20USE_DASH\x0a\x0a\x09\x09\x09uniform\x20float\x20dashOffset;\x0a\x09\x09\x09uniform\x20float\x20dashSize;\x0a\x09\x09\x09uniform\x20float\x20gapSize;\x0a\x0a\x09\x09#endif\x0a\x0a\x09\x09varying\x20float\x20vLineDistance;\x0a\x0a\x09\x09#ifdef\x20WORLD_UNITS\x0a\x0a\x09\x09\x09varying\x20vec4\x20worldPos;\x0a\x09\x09\x09varying\x20vec3\x20worldStart;\x0a\x09\x09\x09varying\x20vec3\x20worldEnd;\x0a\x0a\x09\x09\x09#ifdef\x20USE_DASH\x0a\x0a\x09\x09\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09\x09#endif\x0a\x0a\x09\x09#else\x0a\x0a\x09\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09#endif\x0a\x0a\x09\x09#include\x20<common>\x0a\x09\x09#include\x20<color_pars_fragment>\x0a\x09\x09#include\x20<fog_pars_fragment>\x0a\x09\x09#include\x20<logdepthbuf_pars_fragment>\x0a\x09\x09#include\x20<clipping_planes_pars_fragment>\x0a\x0a\x09\x09vec2\x20closestLineToLine(vec3\x20p1,\x20vec3\x20p2,\x20vec3\x20p3,\x20vec3\x20p4)\x20{\x0a\x0a\x09\x09\x09float\x20mua;\x0a\x09\x09\x09float\x20mub;\x0a\x0a\x09\x09\x09vec3\x20p13\x20=\x20p1\x20-\x20p3;\x0a\x09\x09\x09vec3\x20p43\x20=\x20p4\x20-\x20p3;\x0a\x0a\x09\x09\x09vec3\x20p21\x20=\x20p2\x20-\x20p1;\x0a\x0a\x09\x09\x09float\x20d1343\x20=\x20dot(\x20p13,\x20p43\x20);\x0a\x09\x09\x09float\x20d4321\x20=\x20dot(\x20p43,\x20p21\x20);\x0a\x09\x09\x09float\x20d1321\x20=\x20dot(\x20p13,\x20p21\x20);\x0a\x09\x09\x09float\x20d4343\x20=\x20dot(\x20p43,\x20p43\x20);\x0a\x09\x09\x09float\x20d2121\x20=\x20dot(\x20p21,\x20p21\x20);\x0a\x0a\x09\x09\x09float\x20denom\x20=\x20d2121\x20*\x20d4343\x20-\x20d4321\x20*\x20d4321;\x0a\x0a\x09\x09\x09float\x20numer\x20=\x20d1343\x20*\x20d4321\x20-\x20d1321\x20*\x20d4343;\x0a\x0a\x09\x09\x09mua\x20=\x20numer\x20/\x20denom;\x0a\x09\x09\x09mua\x20=\x20clamp(\x20mua,\x200.0,\x201.0\x20);\x0a\x09\x09\x09mub\x20=\x20(\x20d1343\x20+\x20d4321\x20*\x20(\x20mua\x20)\x20)\x20/\x20d4343;\x0a\x09\x09\x09mub\x20=\x20clamp(\x20mub,\x200.0,\x201.0\x20);\x0a\x0a\x09\x09\x09return\x20vec2(\x20mua,\x20mub\x20);\x0a\x0a\x09\x09}\x0a\x0a\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09#include\x20<clipping_planes_fragment>\x0a\x0a\x09\x09\x09#ifdef\x20USE_DASH\x0a\x0a\x09\x09\x09\x09if\x20(\x20vUv.y\x20<\x20-\x201.0\x20||\x20vUv.y\x20>\x201.0\x20)\x20discard;\x20//\x20discard\x20endcaps\x0a\x0a\x09\x09\x09\x09if\x20(\x20mod(\x20vLineDistance\x20+\x20dashOffset,\x20dashSize\x20+\x20gapSize\x20)\x20>\x20dashSize\x20)\x20discard;\x20//\x20todo\x20-\x20FIX\x0a\x0a\x09\x09\x09#endif\x0a\x0a\x09\x09\x09float\x20alpha\x20=\x20opacity;\x0a\x0a\x09\x09\x09#ifdef\x20WORLD_UNITS\x0a\x0a\x09\x09\x09\x09//\x20Find\x20the\x20closest\x20points\x20on\x20the\x20view\x20ray\x20and\x20the\x20line\x20segment\x0a\x09\x09\x09\x09vec3\x20rayEnd\x20=\x20normalize(\x20worldPos.xyz\x20)\x20*\x201e5;\x0a\x09\x09\x09\x09vec3\x20lineDir\x20=\x20worldEnd\x20-\x20worldStart;\x0a\x09\x09\x09\x09vec2\x20params\x20=\x20closestLineToLine(\x20worldStart,\x20worldEnd,\x20vec3(\x200.0,\x200.0,\x200.0\x20),\x20rayEnd\x20);\x0a\x0a\x09\x09\x09\x09vec3\x20p1\x20=\x20worldStart\x20+\x20lineDir\x20*\x20params.x;\x0a\x09\x09\x09\x09vec3\x20p2\x20=\x20rayEnd\x20*\x20params.y;\x0a\x09\x09\x09\x09vec3\x20delta\x20=\x20p1\x20-\x20p2;\x0a\x09\x09\x09\x09float\x20len\x20=\x20length(\x20delta\x20);\x0a\x09\x09\x09\x09float\x20norm\x20=\x20len\x20/\x20linewidth;\x0a\x0a\x09\x09\x09\x09#ifndef\x20USE_DASH\x0a\x0a\x09\x09\x09\x09\x09#ifdef\x20USE_ALPHA_TO_COVERAGE\x0a\x0a\x09\x09\x09\x09\x09\x09float\x20dnorm\x20=\x20fwidth(\x20norm\x20);\x0a\x09\x09\x09\x09\x09\x09alpha\x20=\x201.0\x20-\x20smoothstep(\x200.5\x20-\x20dnorm,\x200.5\x20+\x20dnorm,\x20norm\x20);\x0a\x0a\x09\x09\x09\x09\x09#else\x0a\x0a\x09\x09\x09\x09\x09\x09if\x20(\x20norm\x20>\x200.5\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09\x09\x09discard;\x0a\x0a\x09\x09\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09\x09#endif\x0a\x0a\x09\x09\x09\x09#endif\x0a\x0a\x09\x09\x09#else\x0a\x0a\x09\x09\x09\x09#ifdef\x20USE_ALPHA_TO_COVERAGE\x0a\x0a\x09\x09\x09\x09\x09//\x20artifacts\x20appear\x20on\x20some\x20hardware\x20if\x20a\x20derivative\x20is\x20taken\x20within\x20a\x20conditional\x0a\x09\x09\x09\x09\x09float\x20a\x20=\x20vUv.x;\x0a\x09\x09\x09\x09\x09float\x20b\x20=\x20(\x20vUv.y\x20>\x200.0\x20)\x20?\x20vUv.y\x20-\x201.0\x20:\x20vUv.y\x20+\x201.0;\x0a\x09\x09\x09\x09\x09float\x20len2\x20=\x20a\x20*\x20a\x20+\x20b\x20*\x20b;\x0a\x09\x09\x09\x09\x09float\x20dlen\x20=\x20fwidth(\x20len2\x20);\x0a\x0a\x09\x09\x09\x09\x09if\x20(\x20abs(\x20vUv.y\x20)\x20>\x201.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09\x09alpha\x20=\x201.0\x20-\x20smoothstep(\x201.0\x20-\x20dlen,\x201.0\x20+\x20dlen,\x20len2\x20);\x0a\x0a\x09\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09#else\x0a\x0a\x09\x09\x09\x09\x09if\x20(\x20abs(\x20vUv.y\x20)\x20>\x201.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09\x09float\x20a\x20=\x20vUv.x;\x0a\x09\x09\x09\x09\x09\x09float\x20b\x20=\x20(\x20vUv.y\x20>\x200.0\x20)\x20?\x20vUv.y\x20-\x201.0\x20:\x20vUv.y\x20+\x201.0;\x0a\x09\x09\x09\x09\x09\x09float\x20len2\x20=\x20a\x20*\x20a\x20+\x20b\x20*\x20b;\x0a\x0a\x09\x09\x09\x09\x09\x09if\x20(\x20len2\x20>\x201.0\x20)\x20discard;\x0a\x0a\x09\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09#endif\x0a\x0a\x09\x09\x09#endif\x0a\x0a\x09\x09\x09vec4\x20diffuseColor\x20=\x20vec4(\x20diffuse,\x20alpha\x20);\x0a\x0a\x09\x09\x09#include\x20<logdepthbuf_fragment>\x0a\x09\x09\x09#include\x20<color_fragment>\x0a\x0a\x09\x09\x09gl_FragColor\x20=\x20vec4(\x20diffuseColor.rgb,\x20alpha\x20);\x0a\x0a\x09\x09\x09#include\x20<tonemapping_fragment>\x0a\x09\x09\x09#include\x20<colorspace_fragment>\x0a\x09\x09\x09#include\x20<fog_fragment>\x0a\x09\x09\x09#include\x20<premultiplied_alpha_fragment>\x0a\x0a\x09\x09}\x0a\x09\x09'};class ne extends a0u{constructor(b){const dB=a0cH;super({'type':dB(0x6b4),'uniforms':a0w[dB(0x8e8)](a0v['line']['uniforms']),'vertexShader':a0v['line'][dB(0x609)],'fragmentShader':a0v['line']['fragmentShader'],'clipping':!0x0}),this[dB(0x6b2)]=!0x0,this[dB(0x81a)](b);}get['color'](){const dC=a0cH;return this[dC(0x4b8)]['diffuse'][dC(0x372)];}set[a0cH(0xa89)](b){const dD=a0cH;this['uniforms'][dD(0xa93)][dD(0x372)]=b;}get[a0cH(0x8e0)](){const dE=a0cH;return dE(0x9e6)in this[dE(0xa0c)];}set['worldUnits'](b){const dF=a0cH;b===!0x0?this[dF(0xa0c)]['WORLD_UNITS']='':delete this[dF(0xa0c)]['WORLD_UNITS'];}get['linewidth'](){const dG=a0cH;return this['uniforms'][dG(0x488)][dG(0x372)];}set['linewidth'](b){const dH=a0cH;this[dH(0x4b8)][dH(0x488)]&&(this[dH(0x4b8)]['linewidth'][dH(0x372)]=b);}get['dashed'](){return'USE_DASH'in this['defines'];}set['dashed'](b){const dI=a0cH;b===!0x0!==this['dashed']&&(this['needsUpdate']=!0x0),b===!0x0?this[dI(0xa0c)]['USE_DASH']='':delete this[dI(0xa0c)][dI(0x861)];}get['dashScale'](){const dJ=a0cH;return this[dJ(0x4b8)]['dashScale'][dJ(0x372)];}set[a0cH(0x832)](b){this['uniforms']['dashScale']['value']=b;}get['dashSize'](){const dK=a0cH;return this[dK(0x4b8)]['dashSize']['value'];}set[a0cH(0x3b2)](b){const dL=a0cH;this[dL(0x4b8)]['dashSize'][dL(0x372)]=b;}get['dashOffset'](){const dM=a0cH;return this[dM(0x4b8)][dM(0x822)]['value'];}set['dashOffset'](b){const dN=a0cH;this[dN(0x4b8)]['dashOffset'][dN(0x372)]=b;}get['gapSize'](){const dO=a0cH;return this['uniforms']['gapSize'][dO(0x372)];}set['gapSize'](b){const dP=a0cH;this[dP(0x4b8)][dP(0x8eb)]['value']=b;}get[a0cH(0xab5)](){const dQ=a0cH;return this[dQ(0x4b8)][dQ(0xab5)]['value'];}set['opacity'](b){const dR=a0cH;this[dR(0x4b8)]&&(this[dR(0x4b8)]['opacity'][dR(0x372)]=b);}get['resolution'](){const dS=a0cH;return this['uniforms'][dS(0x96c)]['value'];}set[a0cH(0x96c)](b){const dT=a0cH;this[dT(0x4b8)][dT(0x96c)]['value']['copy'](b);}get[a0cH(0x243)](){const dU=a0cH;return dU(0x9d0)in this[dU(0xa0c)];}set['alphaToCoverage'](b){const dV=a0cH;this['defines']&&(b===!0x0!==this['alphaToCoverage']&&(this[dV(0x5f7)]=!0x0),b===!0x0?this['defines']['USE_ALPHA_TO_COVERAGE']='':delete this[dV(0xa0c)][dV(0x9d0)]);}}const In=new a0y(),Co=new a0c(),yo=new a0c(),me=new a0y(),be=new a0y(),tt=new a0y(),Bn=new a0c(),xn=new a0m(),Ce=new a0z(),wo=new a0c(),ps=new a0h(),ms=new a0t(),it=new a0y();let rt,qt;function Io(b,c,d){const dW=a0cH;return it[dW(0x46c)](0x0,0x0,-c,0x1)['applyMatrix4'](b['projectionMatrix']),it['multiplyScalar'](0x1/ it['w']),it['x']=qt/d['width'],it['y']=qt/d[dW(0x75a)],it[dW(0x5e0)](b[dW(0xa55)]),it['multiplyScalar'](0x1/ it['w']),Math[dW(0x2f1)](Math[dW(0x894)](it['x'],it['y']));}function wh(b,d){const dX=a0cH,f=b['matrixWorld'],g=b[dX(0x45e)],i=g['attributes'][dX(0x7b9)],j=g[dX(0x974)]['instanceEnd'],k=Math[dX(0x2f8)](g['instanceCount'],i[dX(0xa6a)]);for(let m=0x0,p=k;m<p;m++){Ce['start']['fromBufferAttribute'](i,m),Ce[dX(0x9b6)]['fromBufferAttribute'](j,m),Ce[dX(0x5e0)](f);const u=new a0c(),v=new a0c();rt['distanceSqToSegment'](Ce[dX(0x8ec)],Ce['end'],v,u),v['distanceTo'](u)<qt*0.5&&d[dX(0x50e)]({'point':v,'pointOnLine':u,'distance':rt['origin'][dX(0x5ac)](v),'object':b,'face':null,'faceIndex':m,'uv':null,'uv1':null});}}function Ih(f,i,j){const dY=a0cH,k=i['projectionMatrix'],n=f[dY(0xb87)]['resolution'],v=f['matrixWorld'],x=f['geometry'],z=x['attributes']['instanceStart'],B=x['attributes']['instanceEnd'],F=Math['min'](x[dY(0x70f)],z['count']),H=-i[dY(0xa4e)];rt['at'](0x1,tt),tt['w']=0x1,tt['applyMatrix4'](i['matrixWorldInverse']),tt['applyMatrix4'](k),tt['multiplyScalar'](0x1/tt['w']),tt['x']*=n['x']/0x2,tt['y']*=n['y']/0x2,tt['z']=0x0,Bn[dY(0x195)](tt),xn['multiplyMatrices'](i['matrixWorldInverse'],v);for(let L=0x0,N=F;L<N;L++){if(me['fromBufferAttribute'](z,L),be[dY(0x7bd)](B,L),me['w']=0x1,be['w']=0x1,me['applyMatrix4'](xn),be[dY(0x5e0)](xn),me['z']>H&&be['z']>H)continue;if(me['z']>H){const a0=me['z']-be['z'],a1=(me['z']-H)/a0;me['lerp'](be,a1);}else{if(be['z']>H){const a2=be['z']-me['z'],a3=(be['z']-H)/a2;be['lerp'](me,a3);}}me[dY(0x5e0)](k),be[dY(0x5e0)](k),me['multiplyScalar'](0x1/me['w']),be['multiplyScalar'](0x1/be['w']),me['x']*=n['x']/0x2,me['y']*=n['y']/0x2,be['x']*=n['x']/0x2,be['y']*=n['y']/0x2,Ce[dY(0x8ec)]['copy'](me),Ce['start']['z']=0x0,Ce[dY(0x9b6)][dY(0x195)](be),Ce[dY(0x9b6)]['z']=0x0;const R=Ce['closestPointToPointParameter'](Bn,!0x0);Ce['at'](R,wo);const S=a0A[dY(0x27b)](me['z'],be['z'],R),T=S>=-0x1&&S<=0x1,U=Bn[dY(0x5ac)](wo)<qt*0.5;if(T&&U){Ce[dY(0x8ec)]['fromBufferAttribute'](z,L),Ce[dY(0x9b6)][dY(0x7bd)](B,L),Ce[dY(0x8ec)]['applyMatrix4'](v),Ce['end'][dY(0x5e0)](v);const a4=new a0c(),a5=new a0c();rt['distanceSqToSegment'](Ce[dY(0x8ec)],Ce['end'],a5,a4),j[dY(0x50e)]({'point':a5,'pointOnLine':a4,'distance':rt[dY(0x812)]['distanceTo'](a5),'object':f,'face':null,'faceIndex':L,'uv':null,'uv1':null});}}}class Bh extends a0e{constructor(b=new Va(),c=new ne({'color':Math['random']()*0xffffff})){const dZ=a0cH;super(b,c),this[dZ(0x4c9)]=!0x0,this['type']=dZ(0x8a0);}['computeLineDistances'](){const e0=a0cH,b=this['geometry'],d=b[e0(0x974)]['instanceStart'],f=b['attributes']['instanceEnd'],g=new Float32Array(0x2*d['count']);for(let i=0x0,j=0x0,k=d['count'];i<k;i++,j+=0x2)Co[e0(0x7bd)](d,i),yo[e0(0x7bd)](f,i),g[j]=j===0x0?0x0:g[j-0x1],g[j+0x1]=g[j]+Co['distanceTo'](yo);const h=new a0q(g,0x2,0x1);return b['setAttribute'](e0(0x41a),new a0r(h,0x1,0x0)),b[e0(0x86c)]('instanceDistanceEnd',new a0r(h,0x1,0x1)),this;}['raycast'](b,f){const e1=a0cH,g=this[e1(0xb87)]['worldUnits'],i=b['camera'];i===null&&!g&&console[e1(0x323)](e1(0x8a4));const j=b['params'][e1(0xadc)]!==void 0x0&&b[e1(0x242)]['Line2']['threshold']||0x0;rt=b[e1(0x9c8)];const k=this['matrixWorld'],m=this[e1(0x45e)],p=this['material'];qt=p['linewidth']+j,m['boundingSphere']===null&&m['computeBoundingSphere'](),ms['copy'](m['boundingSphere'])['applyMatrix4'](k);let u;if(g)u=qt*0.5;else{const w=Math[e1(0x894)](i[e1(0xa4e)],ms['distanceToPoint'](rt[e1(0x812)]));u=Io(i,w,p[e1(0x96c)]);}if(ms['radius']+=u,rt[e1(0x6d7)](ms)===!0x1)return;m[e1(0x785)]===null&&m[e1(0x5b1)](),ps['copy'](m[e1(0x785)])['applyMatrix4'](k);let v;if(g)v=qt*0.5;else{const x=Math[e1(0x894)](i['near'],ps['distanceToPoint'](rt[e1(0x812)]));v=Io(i,x,p['resolution']);}ps['expandByScalar'](v),rt['intersectsBox'](ps)!==!0x1&&(g?wh(this,f):Ih(this,i,f));}[a0cH(0x4f6)](b){const e2=a0cH,c=this['material']['uniforms'];c&&c[e2(0x96c)]&&(b['getViewport'](In),this['material']['uniforms']['resolution'][e2(0x372)][e2(0x46c)](In['z'],In['w']));}}class Ae extends Va{constructor(){const e3=a0cH;super(),this['isLineGeometry']=!0x0,this['type']=e3(0x7e2);}[a0cH(0x58e)](b){const e4=a0cH,c=b[e4(0x576)]-0x3,d=new Float32Array(0x2*c);for(let f=0x0;f<c;f+=0x3)d[0x2*f]=b[f],d[0x2*f+0x1]=b[f+0x1],d[0x2*f+0x2]=b[f+0x2],d[0x2*f+0x3]=b[f+0x3],d[0x2*f+0x4]=b[f+0x4],d[0x2*f+0x5]=b[f+0x5];return super['setPositions'](d),this;}['setColors'](b){const e5=a0cH,c=b[e5(0x576)]-0x3,d=new Float32Array(0x2*c);for(let f=0x0;f<c;f+=0x3)d[0x2*f]=b[f],d[0x2*f+0x1]=b[f+0x1],d[0x2*f+0x2]=b[f+0x2],d[0x2*f+0x3]=b[f+0x3],d[0x2*f+0x4]=b[f+0x4],d[0x2*f+0x5]=b[f+0x5];return super['setColors'](d),this;}['setFromPoints'](b){const e6=a0cH,c=b[e6(0x576)]-0x1,d=new Float32Array(0x6*c);for(let f=0x0;f<c;f++)d[0x6*f]=b[f]['x'],d[0x6*f+0x1]=b[f]['y'],d[0x6*f+0x2]=b[f]['z']||0x0,d[0x6*f+0x3]=b[f+0x1]['x'],d[0x6*f+0x4]=b[f+0x1]['y'],d[0x6*f+0x5]=b[f+0x1]['z']||0x0;return super['setPositions'](d),this;}['fromLine'](b){const e7=a0cH,c=b[e7(0x45e)];return this[e7(0x58e)](c['attributes'][e7(0x3e0)]['array']),this;}}class de extends Bh{constructor(b=new Ae(),c=new ne({'color':Math[a0cH(0x886)]()*0xffffff})){const e8=a0cH;super(b,c),this[e8(0x6b1)]=!0x0,this['type']=e8(0xadc);}}const vn=new WeakMap();class xh extends a0B{constructor(b){const e9=a0cH;super(b),this[e9(0x9aa)]='',this[e9(0x518)]={},this['decoderBinary']=null,this['decoderPending']=null,this['workerLimit']=0x4,this[e9(0x139)]=[],this[e9(0x7b1)]=0x1,this[e9(0x597)]='',this[e9(0x1bf)]={'position':'POSITION','normal':e9(0x400),'color':e9(0xa87),'uv':'TEX_COORD'},this[e9(0x9f1)]={'position':'Float32Array','normal':e9(0x80b),'color':e9(0x80b),'uv':'Float32Array'};}[a0cH(0xac8)](b){const eb=a0cH;return this[eb(0x9aa)]=b,this;}['setDecoderConfig'](b){const ej=a0cH;return this[ej(0x518)]=b,this;}[a0cH(0x80a)](b){const ek=a0cH;return this[ek(0x411)]=b,this;}[a0cH(0x774)](b,c,d,f){const em=a0cH,g=new a0C(this['manager']);g['setPath'](this[em(0xa88)]),g['setResponseType']('arraybuffer'),g['setRequestHeader'](this['requestHeader']),g[em(0x1f5)](this['withCredentials']),g[em(0x774)](b,h=>{const ep=em;this[ep(0x20f)](h,c,f);},d,f);}[a0cH(0x20f)](b,c,d=()=>{}){const eq=a0cH;this['decodeDracoFile'](b,c,null,null,a0D,d)[eq(0xb17)](d);}['decodeDracoFile'](b,d,f,g,h=a0E,i=()=>{}){const et=a0cH,j={'attributeIDs':f||this[et(0x1bf)],'attributeTypes':g||this['defaultAttributeTypes'],'useUniqueIDs':!!f,'vertexColorSpace':h};return this['decodeGeometry'](b,j)[et(0x75d)](d)[et(0xb17)](i);}['decodeGeometry'](b,d){const ev=a0cH,f=JSON['stringify'](d);if(vn[ev(0x2ce)](b)){const k=vn['get'](b);if(k['key']===f)return k[ev(0x13a)];if(b['byteLength']===0x0)throw new Error(ev(0x632));}let g;const h=this['workerNextTaskID']++,i=b[ev(0x4ba)],j=this['_getWorker'](h,i)['then'](m=>(g=m,new Promise((p,u)=>{const ew=ev;g['_callbacks'][h]={'resolve':p,'reject':u},g['postMessage']({'type':ew(0x8e1),'id':h,'taskConfig':d,'buffer':b},[b]);})))[ev(0x75d)](m=>this[ev(0x991)](m['geometry']));return j['catch'](()=>!0x0)[ev(0x75d)](()=>{const ex=ev;g&&h&&this[ex(0x619)](g,h);}),vn['set'](b,{'key':f,'promise':j}),j;}['_createGeometry'](b){const ey=a0cH,d=new a0j();b[ey(0x1f9)]&&d[ey(0x31e)](new a0F(b[ey(0x1f9)]['array'],0x1));for(let f=0x0;f<b[ey(0x974)]['length'];f++){const g=b[ey(0x974)][f],h=g[ey(0x587)],i=g['array'],j=g['itemSize'],k=new a0F(i,j);h===ey(0xa89)&&(this[ey(0xad2)](k,g[ey(0x5b7)]),k['normalized']=!(i instanceof Float32Array)),d[ey(0x86c)](h,k);}return d;}[a0cH(0xad2)](b,c){const ez=a0cH;if(c!==a0D)return;const d=new a0G();for(let f=0x0,g=b[ez(0xa6a)];f<g;f++)d['fromBufferAttribute'](b,f),a0H[ez(0x905)](d,a0D),b[ez(0x484)](f,d['r'],d['g'],d['b']);}[a0cH(0x205)](b,c){const eB=a0cH,d=new a0C(this[eB(0xad0)]);return d[eB(0x475)](this[eB(0x9aa)]),d[eB(0x924)](c),d['setWithCredentials'](this[eB(0xaa7)]),new Promise((f,g)=>{const eC=eB;d[eC(0x774)](b,f,void 0x0,g);});}['preload'](){return this['_initDecoder'](),this;}[a0cH(0x3a6)](){const eD=a0cH;if(this[eD(0x79c)])return this[eD(0x79c)];const b=typeof WebAssembly!='object'||this['decoderConfig'][eD(0x223)]==='js',c=[];return b?c[eD(0x50e)](this['_loadLibrary'](eD(0x943),'text')):(c['push'](this['_loadLibrary'](eD(0x236),'text')),c[eD(0x50e)](this[eD(0x205)](eD(0x306),'arraybuffer'))),this['decoderPending']=Promise['all'](c)[eD(0x75d)](d=>{const eE=eD,f=d[0x0];b||(this[eE(0x518)]['wasmBinary']=d[0x1]);const g=vh[eE(0xa82)](),h=['/*\x20draco\x20decoder\x20*/',f,'',eE(0x360),g[eE(0x221)](g['indexOf']('{')+0x1,g['lastIndexOf']('}'))]['join']('\x0a');this['workerSourceURL']=URL[eE(0x2de)](new Blob([h]));}),this['decoderPending'];}['_getWorker'](b,c){const eF=a0cH;return this[eF(0x3a6)]()['then'](()=>{const eG=eF;if(this['workerPool']['length']<this[eG(0x411)]){const f=new Worker(this['workerSourceURL']);f['_callbacks']={},f[eG(0x96e)]={},f[eG(0x844)]=0x0,f[eG(0x19e)]({'type':'init','decoderConfig':this[eG(0x518)]}),f['onmessage']=function(g){const eH=eG,h=g[eH(0x1a4)];switch(h[eH(0x223)]){case eH(0x8e1):f['_callbacks'][h['id']][eH(0x83e)](h);break;case'error':f['_callbacks'][h['id']]['reject'](h);break;default:console['error']('THREE.DRACOLoader:\x20Unexpected\x20message,\x20\x22'+h[eH(0x223)]+'\x22');}},this['workerPool']['push'](f);}else this['workerPool']['sort'](function(g,h){const eI=eG;return g[eI(0x844)]>h[eI(0x844)]?-0x1:0x1;});const d=this['workerPool'][this[eG(0x139)]['length']-0x1];return d[eG(0x96e)][b]=c,d['_taskLoad']+=c,d;});}['_releaseTask'](b,c){const eJ=a0cH;b[eJ(0x844)]-=b[eJ(0x96e)][c],delete b['_callbacks'][c],delete b[eJ(0x96e)][c];}['debug'](){const eK=a0cH;console[eK(0x60b)]('Task\x20load:\x20',this[eK(0x139)][eK(0x941)](b=>b[eK(0x844)]));}[a0cH(0xa58)](){const eL=a0cH;for(let b=0x0;b<this['workerPool'][eL(0x576)];++b)this[eL(0x139)][b]['terminate']();return this['workerPool'][eL(0x576)]=0x0,this[eL(0x597)]!==''&&URL['revokeObjectURL'](this['workerSourceURL']),this;}}function vh(){let b,c;onmessage=function(i){const eM=a0b,j=i['data'];switch(j['type']){case'init':b=j['decoderConfig'],c=new Promise(function(p){b['onModuleLoaded']=function(u){p({'draco':u});},DracoDecoderModule(b);});break;case eM(0x8e1):const k=j[eM(0x67a)],m=j['taskConfig'];c[eM(0x75d)](p=>{const eN=eM,v=p[eN(0x756)],w=new v['Decoder']();try{const x=d(v,w,new Int8Array(k),m),y=x['attributes'][eN(0x941)](z=>z['array'][eN(0x67a)]);x['index']&&y['push'](x[eN(0x1f9)]['array']['buffer']),self[eN(0x19e)]({'type':eN(0x8e1),'id':j['id'],'geometry':x},y);}catch(z){console[eN(0x323)](z),self[eN(0x19e)]({'type':'error','id':j['id'],'error':z['message']});}finally{v['destroy'](w);}});break;}};function d(i,j,k,v){const eO=a0b,x=v['attributeIDs'],z=v[eO(0xb03)];let B,F;const H=j['GetEncodedGeometryType'](k);if(H===i['TRIANGULAR_MESH'])B=new i[(eO(0x376))](),F=j[eO(0x8dd)](k,k[eO(0x4ba)],B);else{if(H===i[eO(0x880)])B=new i[(eO(0x6ae))](),F=j[eO(0x237)](k,k['byteLength'],B);else throw new Error(eO(0x455));}if(!F['ok']()||B[eO(0x434)]===0x0)throw new Error('THREE.DRACOLoader:\x20Decoding\x20failed:\x20'+F[eO(0x1a6)]());const L={'index':null,'attributes':[]};for(const N in x){const R=self[z[N]];let S,T;if(v['useUniqueIDs'])T=x[N],S=j[eO(0x3f8)](B,T);else{if(T=j[eO(0x743)](B,i[x[N]]),T===-0x1)continue;S=j[eO(0xb5b)](B,T);}const U=g(i,j,B,N,R,S);N==='color'&&(U[eO(0x5b7)]=v['vertexColorSpace']),L['attributes']['push'](U);}return H===i['TRIANGULAR_MESH']&&(L[eO(0x1f9)]=f(i,j,B)),i[eO(0xa85)](B),L;}function f(i,j,k){const eP=a0b,m=k['num_faces']()*0x3,p=m*0x4,v=i[eP(0x361)](p);j['GetTrianglesUInt32Array'](k,p,v);const w=new Uint32Array(i['HEAPF32'][eP(0x67a)],v,m)['slice']();return i['_free'](v),{'array':w,'itemSize':0x1};}function g(i,j,k,v,w,x){const eQ=a0b,y=x['num_components'](),z=k[eQ(0x3df)]()*y,B=z*w['BYTES_PER_ELEMENT'],F=h(i,w),H=i['_malloc'](B);j['GetAttributeDataArrayForAllPoints'](k,x,F,B,H);const L=new w(i[eQ(0x3e9)][eQ(0x67a)],H,z)[eQ(0x791)]();return i[eQ(0x912)](H),{'name':v,'array':L,'itemSize':y};}function h(i,j){const eR=a0b;switch(j){case Float32Array:return i['DT_FLOAT32'];case Int8Array:return i['DT_INT8'];case Int16Array:return i['DT_INT16'];case Int32Array:return i['DT_INT32'];case Uint8Array:return i[eR(0x1a8)];case Uint16Array:return i[eR(0x474)];case Uint32Array:return i[eR(0x566)];}}}class _h{constructor(b=0x4){const eS=a0cH;this['pool']=b,this[eS(0x86f)]=[],this['workers']=[],this[eS(0x6eb)]=[],this['workerStatus']=0x0;}['_initWorker'](b){const eT=a0cH;if(!this['workers'][b]){const c=this['workerCreator']();c['addEventListener']('message',this['_onMessage']['bind'](this,b)),this[eT(0x8e7)][b]=c;}}['_getIdleWorker'](){const eU=a0cH;for(let b=0x0;b<this[eU(0x157)];b++)if(!(this[eU(0xaf7)]&0x1<<b))return b;return-0x1;}[a0cH(0xa20)](b,c){const eV=a0cH,d=this['workersResolve'][b];if(d&&d(c),this['queue']['length']){const {resolve:f,msg:g,transfer:h}=this[eV(0x86f)][eV(0xba0)]();this[eV(0x6eb)][b]=f,this['workers'][b][eV(0x19e)](g,h);}else this[eV(0xaf7)]^=0x1<<b;}[a0cH(0x744)](b){this['workerCreator']=b;}['setWorkerLimit'](b){this['pool']=b;}[a0cH(0x19e)](b,c){return new Promise(d=>{const eW=a0b,f=this['_getIdleWorker']();f!==-0x1?(this[eW(0xb68)](f),this['workerStatus']|=0x1<<f,this['workersResolve'][f]=d,this[eW(0x8e7)][f]['postMessage'](b,c)):this[eW(0x86f)]['push']({'resolve':d,'msg':b,'transfer':c});});}['dispose'](){const eX=a0cH;this[eX(0x8e7)][eX(0x2cd)](b=>b[eX(0x22c)]()),this[eX(0x6eb)]['length']=0x0,this[eX(0x8e7)]['length']=0x0,this['queue']['length']=0x0,this[eX(0xaf7)]=0x0;}}let _n,ft,Er;const Tn={'env':{'emscripten_notify_memory_growth':function(b){const eY=a0cH;Er=new Uint8Array(ft['exports'][eY(0xb3f)][eY(0x67a)]);}}};class Th{[a0cH(0x840)](){const eZ=a0cH;return _n||(_n=typeof fetch<'u'?fetch('data:application/wasm;base64,'+Bo)['then'](b=>b[eZ(0x2fa)]())[eZ(0x75d)](b=>WebAssembly['instantiate'](b,Tn))[eZ(0x75d)](this['_init']):WebAssembly['instantiate'](Buffer[eZ(0xb73)](Bo,'base64'),Tn)['then'](this[eZ(0x875)]),_n);}['_init'](b){const f0=a0cH;ft=b[f0(0x7fd)],Tn['env'][f0(0xa0e)](0x0);}['decode'](b,d=0x0){const f1=a0cH;if(!ft)throw new Error(f1(0x84d));const f=b['byteLength'],g=ft[f1(0x91c)]['malloc'](f);Er[f1(0x46c)](b,g),d=d||Number(ft[f1(0x91c)][f1(0x6d4)](g,f));const h=ft['exports'][f1(0x702)](d),i=ft['exports']['ZSTD_decompress'](h,d,g,f),j=Er['slice'](h,h+i);return ft['exports'][f1(0x9c7)](g),ft['exports']['free'](h),j;}}const Bo='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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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',Qh='display-p3',Sh=a0cH(0xa7e),Qn=new WeakMap();let Sn=0x0,Dn;class Fe extends a0B{constructor(b){const f2=a0cH;super(b),this['transcoderPath']='',this['transcoderBinary']=null,this[f2(0x14e)]=null,this[f2(0x139)]=new _h(),this['workerSourceURL']='',this['workerConfig']=null,typeof MSC_TRANSCODER<'u'&&console['warn'](f2(0x9c2));}['setTranscoderPath'](b){const f3=a0cH;return this[f3(0x903)]=b,this;}[a0cH(0x80a)](b){const f4=a0cH;return this[f4(0x139)]['setWorkerLimit'](b),this;}async['detectSupportAsync'](b){const f5=a0cH;return this['workerConfig']={'astcSupported':await b[f5(0x148)]('texture-compression-astc'),'astcHDRSupported':!0x1,'etc1Supported':await b['hasFeatureAsync']('texture-compression-etc1'),'etc2Supported':await b['hasFeatureAsync']('texture-compression-etc2'),'dxtSupported':await b['hasFeatureAsync']('texture-compression-bc'),'bptcSupported':await b[f5(0x148)](f5(0x348)),'pvrtcSupported':await b['hasFeatureAsync']('texture-compression-pvrtc')},this;}['detectSupport'](b){const f6=a0cH;return b[f6(0x9a2)]===!0x0?this['workerConfig']={'astcSupported':b['hasFeature']('texture-compression-astc'),'astcHDRSupported':!0x1,'etc1Supported':b['hasFeature'](f6(0x81b)),'etc2Supported':b[f6(0xa77)](f6(0x40f)),'dxtSupported':b[f6(0xa77)](f6(0x50c)),'bptcSupported':b[f6(0xa77)]('texture-compression-bptc'),'pvrtcSupported':b[f6(0xa77)](f6(0x865))}:this[f6(0xb4e)]={'astcSupported':b[f6(0x22a)][f6(0x2ce)](f6(0x29d)),'astcHDRSupported':b[f6(0x22a)]['has']('WEBGL_compressed_texture_astc')&&b[f6(0x22a)][f6(0x20c)]('WEBGL_compressed_texture_astc')[f6(0x626)]()['includes']('hdr'),'etc1Supported':b[f6(0x22a)]['has']('WEBGL_compressed_texture_etc1'),'etc2Supported':b[f6(0x22a)][f6(0x2ce)](f6(0x2fd)),'dxtSupported':b['extensions'][f6(0x2ce)](f6(0x562)),'bptcSupported':b['extensions'][f6(0x2ce)]('EXT_texture_compression_bptc'),'pvrtcSupported':b['extensions'][f6(0x2ce)]('WEBGL_compressed_texture_pvrtc')||b['extensions']['has'](f6(0x97a))},this;}[a0cH(0x840)](){const f7=a0cH;if(!this[f7(0x14e)]){const b=new a0C(this[f7(0xad0)]);b[f7(0x475)](this[f7(0x903)]),b['setWithCredentials'](this[f7(0xaa7)]);const c=b['loadAsync'](f7(0x77b)),d=new a0C(this[f7(0xad0)]);d[f7(0x475)](this[f7(0x903)]),d[f7(0x924)]('arraybuffer'),d['setWithCredentials'](this[f7(0xaa7)]);const f=d[f7(0x17e)]('basis_transcoder.wasm');this[f7(0x14e)]=Promise[f7(0xa5a)]([c,f])['then'](([g,h])=>{const f8=f7,i=Fe[f8(0x795)]['toString'](),j=['/*\x20constants\x20*/',f8(0x7c0)+JSON['stringify'](Fe[f8(0x996)]),'let\x20_EngineType\x20=\x20'+JSON[f8(0x2cf)](Fe[f8(0xac2)]),f8(0xb76)+JSON[f8(0x2cf)](Fe['TranscoderFormat']),'let\x20_BasisFormat\x20=\x20'+JSON[f8(0x2cf)](Fe[f8(0x515)]),'/*\x20basis_transcoder.js\x20*/',g,'/*\x20worker\x20*/',i[f8(0x221)](i[f8(0x279)]('{')+0x1,i['lastIndexOf']('}'))][f8(0x84a)]('\x0a');this[f8(0x597)]=URL[f8(0x2de)](new Blob([j])),this[f8(0x1fe)]=h,this['workerPool'][f8(0x744)](()=>{const f9=f8,k=new Worker(this[f9(0x597)]),m=this[f9(0x1fe)]['slice'](0x0);return k['postMessage']({'type':f9(0x840),'config':this['workerConfig'],'transcoderBinary':m},[m]),k;});}),Sn>0x0&&console[f7(0x637)]('THREE.KTX2Loader:\x20Multiple\x20active\x20KTX2\x20loaders\x20may\x20cause\x20performance\x20issues.\x20Use\x20a\x20single\x20KTX2Loader\x20instance,\x20or\x20call\x20.dispose()\x20on\x20old\x20instances.'),Sn++;}return this['transcoderPending'];}[a0cH(0x774)](b,c,d,f){const fb=a0cH;if(this[fb(0xb4e)]===null)throw new Error('THREE.KTX2Loader:\x20Missing\x20initialization\x20with\x20`.detectSupport(\x20renderer\x20)`.');const g=new a0C(this['manager']);g[fb(0x924)](fb(0x871)),g['setWithCredentials'](this[fb(0xaa7)]),g[fb(0x774)](b,h=>{const fe=fb;this[fe(0x20f)](h,c,f);},d,f);}[a0cH(0x20f)](b,c,d){const ff=a0cH;if(this['workerConfig']===null)throw new Error('THREE.KTX2Loader:\x20Missing\x20initialization\x20with\x20`.detectSupport(\x20renderer\x20)`.');if(Qn['has'](b))return Qn[ff(0x20c)](b)['promise'][ff(0x75d)](c)['catch'](d);this['_createTexture'](b)[ff(0x75d)](f=>c?c(f):null)[ff(0xb17)](d);}[a0cH(0x494)](b,f){const fj=a0cH,{type:g,error:i,data:{faces:j,width:k,height:m,format:p,type:v,dfdFlags:w}}=b;if(g==='error')return Promise['reject'](i);let x;if(f[fj(0x881)]===0x6)x=new a0I(j,p,v);else{const y=j[0x0]['mipmaps'];x=f['layerCount']>0x1?new a0J(y,k,m,f['layerCount'],p,v):new a0K(y,k,m,p,v);}return x['minFilter']=j[0x0][fj(0x3e4)]['length']===0x1?a0L:a0M,x[fj(0x38a)]=a0L,x['generateMipmaps']=!0x1,x['needsUpdate']=!0x0,x[fj(0x71e)]=ja(f),x['premultiplyAlpha']=!!(w&fh),x;}async[a0cH(0xb70)](b,d={}){const fk=a0cH,f=yh(new Uint8Array(b)),g=f[fk(0x3e1)]===qr&&f['dataFormatDescriptor'][0x0]['colorModel']===0xa7;if(!(f['vkFormat']===Eh||g&&!this[fk(0xb4e)]['astcHDRSupported']))return Mh(f);const h=d,i=this['init']()['then'](()=>this[fk(0x139)]['postMessage']({'type':fk(0x1db),'buffer':b,'taskConfig':h},[b]))[fk(0x75d)](j=>this['_createTextureFrom'](j[fk(0x1a4)],f));return Qn[fk(0x46c)](b,{'promise':i}),i;}['dispose'](){const fm=a0cH;return this[fm(0x139)]['dispose'](),this[fm(0x597)]&&URL['revokeObjectURL'](this[fm(0x597)]),Sn--,this;}}Fe['BasisFormat']={'ETC1S':0x0,'UASTC':0x1,'UASTC_HDR':0x2},Fe['TranscoderFormat']={'ETC1':0x0,'ETC2':0x1,'BC1':0x2,'BC3':0x3,'BC4':0x4,'BC5':0x5,'BC7_M6_OPAQUE_ONLY':0x6,'BC7_M5':0x7,'PVRTC1_4_RGB':0x8,'PVRTC1_4_RGBA':0x9,'ASTC_4x4':0xa,'ATC_RGB':0xb,'ATC_RGBA_INTERPOLATED_ALPHA':0xc,'RGBA32':0xd,'RGB565':0xe,'BGR565':0xf,'RGBA4444':0x10,'BC6H':0x16,'RGB_HALF':0x18,'RGBA_HALF':0x19},Fe['EngineFormat']={'RGBAFormat':a0S,'RGBA_ASTC_4x4_Format':a0P,'RGB_BPTC_UNSIGNED_Format':a0a6,'RGBA_BPTC_Format':a0a5,'RGBA_ETC2_EAC_Format':a0a4,'RGBA_PVRTC_4BPPV1_Format':a0a3,'RGBA_S3TC_DXT5_Format':a0a2,'RGB_ETC1_Format':a0a1,'RGB_ETC2_Format':a0a0,'RGB_PVRTC_4BPPV1_Format':a0Z,'RGBA_S3TC_DXT1_Format':a0Y},Fe[a0cH(0xac2)]={'UnsignedByteType':a0T,'HalfFloatType':a0U,'FloatType':a0V},Fe['BasisWorker']=function(){const fn=a0cH;let b,f,i;const j=_EngineFormat,k=_EngineType,m=_TranscoderFormat,p=_BasisFormat;self['addEventListener'](fn(0x98d),function(F){const fp=fn,H=F['data'];switch(H[fp(0x223)]){case'init':b=H['config'],v(H[fp(0x1fe)]);break;case fp(0x1db):f['then'](()=>{const fq=fp;try{const {faces:L,buffers:N,width:R,height:S,hasAlpha:T,format:U,type:a0,dfdFlags:a1}=w(H['buffer']);self['postMessage']({'type':fq(0x1db),'id':H['id'],'data':{'faces':L,'width':R,'height':S,'hasAlpha':T,'format':U,'type':a0,'dfdFlags':a1}},N);}catch(a2){console['error'](a2),self['postMessage']({'type':fq(0x323),'id':H['id'],'error':a2[fq(0x98d)]});}});break;}});function v(F){const fv=fn;f=new Promise(H=>{i={'wasmBinary':F,'onRuntimeInitialized':H},BASIS(i);})[fv(0x75d)](()=>{const fw=fv;i[fw(0xb1c)](),i[fw(0xa40)]===void 0x0&&console[fw(0x637)]('THREE.KTX2Loader:\x20Please\x20update\x20Basis\x20Universal\x20transcoder.');});}function w(a0){const fx=fn,a1=new i[(fx(0xa40))](new Uint8Array(a0));function a2(){a1['close'](),a1['delete']();}if(!a1[fx(0x2df)]())throw a2(),new Error(fx(0xb4d));let a3;if(a1[fx(0x5dc)]())a3=p['UASTC'];else{if(a1[fx(0x6e2)]())a3=p['ETC1S'];else{if(a1['isHDR']())a3=p[fx(0x719)];else throw new Error(fx(0x21e));}}const a4=a1['getWidth'](),a5=a1['getHeight'](),a6=a1[fx(0xa45)]()||0x1,a7=a1['getLevels'](),a8=a1['getFaces'](),a9=a1['getHasAlpha'](),ab=a1[fx(0xb02)](),{transcoderFormat:aj,engineFormat:ak,engineType:am}=z(a3,a4,a5,a9);if(!a4||!a5||!a7)throw a2(),new Error('THREE.KTX2Loader:\x09Invalid\x20texture');if(!a1['startTranscoding']())throw a2(),new Error(fx(0x35e));const an=[],ap=[];for(let aq=0x0;aq<a8;aq++){const av=[];for(let aw=0x0;aw<a7;aw++){const ax=[];let ay,az;for(let aC=0x0;aC<a6;aC++){const aD=a1['getImageLevelInfo'](aw,aC,aq);aq===0x0&&aw===0x0&&aC===0x0&&(aD[fx(0x52e)]%0x4!==0x0||aD['origHeight']%0x4!==0x0)&&console['warn']('THREE.KTX2Loader:\x20ETC1S\x20and\x20UASTC\x20textures\x20should\x20use\x20multiple-of-four\x20dimensions.'),a7>0x1?(ay=aD[fx(0x52e)],az=aD[fx(0xaab)]):(ay=aD[fx(0x69c)],az=aD[fx(0x75a)]);let aE=new Uint8Array(a1[fx(0x849)](aw,aC,0x0,aj));const aF=a1['transcodeImage'](aE,aw,aC,aq,aj,0x0,-0x1,-0x1);if(am===k['HalfFloatType']&&(aE=new Uint16Array(aE['buffer'],aE[fx(0x4b1)],aE['byteLength']/Uint16Array[fx(0x443)])),!aF)throw a2(),new Error('THREE.KTX2Loader:\x20.transcodeImage\x20failed.');ax[fx(0x50e)](aE);}const aB=E(ax);av[fx(0x50e)]({'data':aB,'width':ay,'height':az}),ap['push'](aB[fx(0x67a)]);}an['push']({'mipmaps':av,'width':a4,'height':a5,'format':ak,'type':am});}return a2(),{'faces':an,'buffers':ap,'width':a4,'height':a5,'hasAlpha':a9,'dfdFlags':ab,'format':ak,'type':am};}const x=[{'if':'astcSupported','basisFormat':[p[fn(0x540)]],'transcoderFormat':[m['ASTC_4x4'],m[fn(0x88f)]],'engineFormat':[j[fn(0x45d)],j[fn(0x45d)]],'engineType':[k[fn(0x716)]],'priorityETC1S':0x1/0x0,'priorityUASTC':0x1,'needsPowerOfTwo':!0x1},{'if':fn(0x1cc),'basisFormat':[p['ETC1S'],p[fn(0x540)]],'transcoderFormat':[m[fn(0x46f)],m[fn(0x46f)]],'engineFormat':[j['RGBA_BPTC_Format'],j['RGBA_BPTC_Format']],'engineType':[k[fn(0x716)]],'priorityETC1S':0x3,'priorityUASTC':0x2,'needsPowerOfTwo':!0x1},{'if':fn(0x839),'basisFormat':[p[fn(0x691)],p[fn(0x540)]],'transcoderFormat':[m[fn(0x5ae)],m[fn(0x8d5)]],'engineFormat':[j['RGBA_S3TC_DXT1_Format'],j[fn(0xb48)]],'engineType':[k['UnsignedByteType']],'priorityETC1S':0x4,'priorityUASTC':0x5,'needsPowerOfTwo':!0x1},{'if':'etc2Supported','basisFormat':[p[fn(0x691)],p['UASTC']],'transcoderFormat':[m[fn(0x6c4)],m['ETC2']],'engineFormat':[j['RGB_ETC2_Format'],j[fn(0xb1b)]],'engineType':[k['UnsignedByteType']],'priorityETC1S':0x1,'priorityUASTC':0x3,'needsPowerOfTwo':!0x1},{'if':'etc1Supported','basisFormat':[p[fn(0x691)],p['UASTC']],'transcoderFormat':[m[fn(0x6c4)]],'engineFormat':[j['RGB_ETC1_Format']],'engineType':[k[fn(0x716)]],'priorityETC1S':0x2,'priorityUASTC':0x4,'needsPowerOfTwo':!0x1},{'if':'pvrtcSupported','basisFormat':[p['ETC1S'],p['UASTC']],'transcoderFormat':[m['PVRTC1_4_RGB'],m['PVRTC1_4_RGBA']],'engineFormat':[j['RGB_PVRTC_4BPPV1_Format'],j[fn(0x2f2)]],'engineType':[k['UnsignedByteType']],'priorityETC1S':0x5,'priorityUASTC':0x6,'needsPowerOfTwo':!0x0},{'if':'bptcSupported','basisFormat':[p['UASTC_HDR']],'transcoderFormat':[m['BC6H']],'engineFormat':[j['RGB_BPTC_UNSIGNED_Format']],'engineType':[k[fn(0x82e)]],'priorityHDR':0x1,'needsPowerOfTwo':!0x1},{'basisFormat':[p['ETC1S'],p['UASTC']],'transcoderFormat':[m[fn(0x490)],m[fn(0x490)]],'engineFormat':[j[fn(0x672)],j['RGBAFormat']],'engineType':[k['UnsignedByteType'],k[fn(0x716)]],'priorityETC1S':0x64,'priorityUASTC':0x64,'needsPowerOfTwo':!0x1},{'basisFormat':[p[fn(0x719)]],'transcoderFormat':[m['RGBA_HALF']],'engineFormat':[j[fn(0x672)]],'engineType':[k['HalfFloatType']],'priorityHDR':0x64,'needsPowerOfTwo':!0x1}],y={[p['ETC1S']]:x[fn(0x781)](F=>F[fn(0xa0f)]['includes'](p[fn(0x691)]))[fn(0x32e)]((F,H)=>F[fn(0xb1a)]-H[fn(0xb1a)]),[p[fn(0x540)]]:x[fn(0x781)](F=>F['basisFormat'][fn(0x36a)](p['UASTC']))['sort']((F,H)=>F['priorityUASTC']-H[fn(0xb1a)]),[p[fn(0x719)]]:x[fn(0x781)](F=>F[fn(0xa0f)]['includes'](p['UASTC_HDR']))[fn(0x32e)]((F,H)=>F[fn(0x23c)]-H['priorityHDR'])};function z(F,H,L,N){const fy=fn,R=y[F];for(let S=0x0;S<R['length'];S++){const T=R[S];if(T['if']&&!b[T['if']]||!T[fy(0xa0f)][fy(0x36a)](F)||N&&T[fy(0x232)]['length']<0x2||T['needsPowerOfTwo']&&!(B(H)&&B(L)))continue;const U=T['transcoderFormat'][N?0x1:0x0],a0=T['engineFormat'][N?0x1:0x0],a1=T[fy(0x14f)][0x0];return{'transcoderFormat':U,'engineFormat':a0,'engineType':a1};}throw new Error('THREE.KTX2Loader:\x20Failed\x20to\x20identify\x20transcoding\x20target.');}function B(F){return F<=0x2?!0x0:(F&F-0x1)===0x0&&F!==0x0;}function E(F){const fz=fn;if(F['length']===0x1)return F[0x0];let H=0x0;for(let R=0x0;R<F['length'];R++){const S=F[R];H+=S['byteLength'];}const L=new Uint8Array(H);let N=0x0;for(let T=0x0;T<F[fz(0x576)];T++){const U=F[T];L[fz(0x46c)](U,N),N+=U['byteLength'];}return L;}};const Dh=new Set([a0S,a0R,a0Q]),Mn={[za]:a0S,[Na]:a0S,[Pa]:a0S,[ka]:a0S,[Ga]:a0R,[Oa]:a0R,[La]:a0R,[Ra]:a0R,[Ua]:a0Q,[Fa]:a0Q,[Ma]:a0Q,[Da]:a0Q,[qr]:a0P,[qa]:a0O,[Ha]:a0O},Ln={[za]:a0V,[Na]:a0U,[Pa]:a0T,[ka]:a0T,[Ga]:a0V,[Oa]:a0U,[La]:a0T,[Ra]:a0T,[Ua]:a0V,[Fa]:a0U,[Ma]:a0T,[Da]:a0T,[qr]:a0U,[qa]:a0T,[Ha]:a0T};async function Mh(b){const fB=a0cH,{vkFormat:f}=b;if(Mn[f]===void 0x0)throw new Error(fB(0x612));let g;b[fB(0x898)]===po&&(Dn||(Dn=new Promise(async k=>{const fC=fB,m=new Th();await m[fC(0x840)](),k(m);})),g=await Dn);const i=[];for(let k=0x0;k<b[fB(0xac4)]['length'];k++){const m=Math[fB(0x894)](0x1,b[fB(0x55b)]>>k),p=Math['max'](0x1,b['pixelHeight']>>k),u=b['pixelDepth']?Math[fB(0x894)](0x1,b[fB(0x45b)]>>k):0x0,v=b['levels'][k];let w;if(b['supercompressionScheme']===gh)w=v['levelData'];else{if(b['supercompressionScheme']===po)w=g[fB(0x8e1)](v['levelData'],v['uncompressedByteLength']);else throw new Error(fB(0x4a7));}let x;Ln[f]===a0V?x=new Float32Array(w[fB(0x67a)],w[fB(0x4b1)],w['byteLength']/Float32Array[fB(0x443)]):Ln[f]===a0U?x=new Uint16Array(w[fB(0x67a)],w[fB(0x4b1)],w[fB(0x4ba)]/Uint16Array[fB(0x443)]):x=w,i['push']({'data':x,'width':m,'height':p,'depth':u});}let j;if(Dh['has'](Mn[f]))j=b['pixelDepth']===0x0?new a0W(i[0x0][fB(0x1a4)],b['pixelWidth'],b['pixelHeight']):new a0X(i[0x0]['data'],b['pixelWidth'],b['pixelHeight'],b['pixelDepth']);else{if(b[fB(0x45b)]>0x0)throw new Error('THREE.KTX2Loader:\x20Unsupported\x20pixelDepth.');j=new a0K(i,b['pixelWidth'],b['pixelHeight']),j[fB(0x533)]=i['length']===0x1?a0L:a0M,j['magFilter']=a0L;}return j['mipmaps']=i,j[fB(0x223)]=Ln[f],j['format']=Mn[f],j[fB(0x71e)]=ja(b),j[fB(0x5f7)]=!0x0,Promise[fB(0x83e)](j);}function ja(b){const fD=a0cH,c=b[fD(0xac0)][0x0];return c['colorPrimaries']===mh?c[fD(0x52c)]===mo?a0D:a0E:c['colorPrimaries']===bh?c[fD(0x52c)]===mo?Qh:Sh:c['colorPrimaries']===ph?a0N:(console['warn']('THREE.KTX2Loader:\x20Unsupported\x20color\x20primaries,\x20\x22'+c[fD(0x26c)]+'\x22'),a0N);}class Lh{constructor(b=Math){const fE=a0cH;this[fE(0x814)]=[[0x1,0x1,0x0],[-0x1,0x1,0x0],[0x1,-0x1,0x0],[-0x1,-0x1,0x0],[0x1,0x0,0x1],[-0x1,0x0,0x1],[0x1,0x0,-0x1],[-0x1,0x0,-0x1],[0x0,0x1,0x1],[0x0,-0x1,0x1],[0x0,0x1,-0x1],[0x0,-0x1,-0x1]],this[fE(0x3d1)]=[[0x0,0x1,0x1,0x1],[0x0,0x1,0x1,-0x1],[0x0,0x1,-0x1,0x1],[0x0,0x1,-0x1,-0x1],[0x0,-0x1,0x1,0x1],[0x0,-0x1,0x1,-0x1],[0x0,-0x1,-0x1,0x1],[0x0,-0x1,-0x1,-0x1],[0x1,0x0,0x1,0x1],[0x1,0x0,0x1,-0x1],[0x1,0x0,-0x1,0x1],[0x1,0x0,-0x1,-0x1],[-0x1,0x0,0x1,0x1],[-0x1,0x0,0x1,-0x1],[-0x1,0x0,-0x1,0x1],[-0x1,0x0,-0x1,-0x1],[0x1,0x1,0x0,0x1],[0x1,0x1,0x0,-0x1],[0x1,-0x1,0x0,0x1],[0x1,-0x1,0x0,-0x1],[-0x1,0x1,0x0,0x1],[-0x1,0x1,0x0,-0x1],[-0x1,-0x1,0x0,0x1],[-0x1,-0x1,0x0,-0x1],[0x1,0x1,0x1,0x0],[0x1,0x1,-0x1,0x0],[0x1,-0x1,0x1,0x0],[0x1,-0x1,-0x1,0x0],[-0x1,0x1,0x1,0x0],[-0x1,0x1,-0x1,0x0],[-0x1,-0x1,0x1,0x0],[-0x1,-0x1,-0x1,0x0]],this['p']=[];for(let c=0x0;c<0x100;c++)this['p'][c]=Math['floor'](b[fE(0x886)]()*0x100);this['perm']=[];for(let d=0x0;d<0x200;d++)this[fE(0x185)][d]=this['p'][d&0xff];this[fE(0x7a3)]=[[0x0,0x1,0x2,0x3],[0x0,0x1,0x3,0x2],[0x0,0x0,0x0,0x0],[0x0,0x2,0x3,0x1],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x1,0x2,0x3,0x0],[0x0,0x2,0x1,0x3],[0x0,0x0,0x0,0x0],[0x0,0x3,0x1,0x2],[0x0,0x3,0x2,0x1],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x1,0x3,0x2,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x1,0x2,0x0,0x3],[0x0,0x0,0x0,0x0],[0x1,0x3,0x0,0x2],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x2,0x3,0x0,0x1],[0x2,0x3,0x1,0x0],[0x1,0x0,0x2,0x3],[0x1,0x0,0x3,0x2],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x2,0x0,0x3,0x1],[0x0,0x0,0x0,0x0],[0x2,0x1,0x3,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x2,0x0,0x1,0x3],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x3,0x0,0x1,0x2],[0x3,0x0,0x2,0x1],[0x0,0x0,0x0,0x0],[0x3,0x1,0x2,0x0],[0x2,0x1,0x0,0x3],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0],[0x3,0x1,0x0,0x2],[0x0,0x0,0x0,0x0],[0x3,0x2,0x0,0x1],[0x3,0x2,0x1,0x0]];}[a0cH(0x24b)](b,c,d){return b[0x0]*c+b[0x1]*d;}['dot3'](b,c,d,f){return b[0x0]*c+b[0x1]*d+b[0x2]*f;}['dot4'](b,c,d,f,g){return b[0x0]*c+b[0x1]*d+b[0x2]*f+b[0x3]*g;}['noise'](i,j){const fF=a0cH;let z,F,H;const N=0.5*(Math[fF(0x902)](0x3)-0x1),U=(i+j)*N,a0=Math['floor'](i+U),a1=Math['floor'](j+U),a2=(0x3-Math[fF(0x902)](0x3))/0x6,a3=(a0+a1)*a2,a4=a0-a3,a5=a1-a3,a6=i-a4,a7=j-a5;let a8,a9;a6>a7?(a8=0x1,a9=0x0):(a8=0x0,a9=0x1);const ab=a6-a8+a2,aj=a7-a9+a2,ak=a6-0x1+0x2*a2,am=a7-0x1+0x2*a2,an=a0&0xff,ap=a1&0xff,aq=this['perm'][an+this['perm'][ap]]%0xc,av=this[fF(0x185)][an+a8+this[fF(0x185)][ap+a9]]%0xc,aw=this['perm'][an+0x1+this[fF(0x185)][ap+0x1]]%0xc;let ax=0.5-a6*a6-a7*a7;ax<0x0?z=0x0:(ax*=ax,z=ax*ax*this['dot'](this[fF(0x814)][aq],a6,a7));let ay=0.5-ab*ab-aj*aj;ay<0x0?F=0x0:(ay*=ay,F=ay*ay*this['dot'](this['grad3'][av],ab,aj));let az=0.5-ak*ak-am*am;return az<0x0?H=0x0:(az*=az,H=az*az*this[fF(0x24b)](this['grad3'][aw],ak,am)),0x46*(z+F+H);}['noise3d'](i,l,a0){const fG=a0cH;let a1,a2,a3,a4;const a5=(i+l+a0)*0.3333333333333333,a6=Math['floor'](i+a5),a7=Math['floor'](l+a5),a8=Math['floor'](a0+a5),a9=0x1/0x6,ab=(a6+a7+a8)*a9,aj=a6-ab,ak=a7-ab,am=a8-ab,an=i-aj,ap=l-ak,aq=a0-am;let av,aw,ax,ay,az,aB;an>=ap?ap>=aq?(av=0x1,aw=0x0,ax=0x0,ay=0x1,az=0x1,aB=0x0):an>=aq?(av=0x1,aw=0x0,ax=0x0,ay=0x1,az=0x0,aB=0x1):(av=0x0,aw=0x0,ax=0x1,ay=0x1,az=0x0,aB=0x1):ap<aq?(av=0x0,aw=0x0,ax=0x1,ay=0x0,az=0x1,aB=0x1):an<aq?(av=0x0,aw=0x1,ax=0x0,ay=0x0,az=0x1,aB=0x1):(av=0x0,aw=0x1,ax=0x0,ay=0x1,az=0x1,aB=0x0);const aC=an-av+a9,aD=ap-aw+a9,aE=aq-ax+a9,aF=an-ay+0x2*a9,aG=ap-az+0x2*a9,aH=aq-aB+0x2*a9,aI=an-0x1+0x3*a9,aJ=ap-0x1+0x3*a9,aK=aq-0x1+0x3*a9,aL=a6&0xff,aM=a7&0xff,aN=a8&0xff,aO=this[fG(0x185)][aL+this['perm'][aM+this['perm'][aN]]]%0xc,aP=this[fG(0x185)][aL+av+this[fG(0x185)][aM+aw+this[fG(0x185)][aN+ax]]]%0xc,aQ=this[fG(0x185)][aL+ay+this['perm'][aM+az+this['perm'][aN+aB]]]%0xc,aR=this[fG(0x185)][aL+0x1+this['perm'][aM+0x1+this[fG(0x185)][aN+0x1]]]%0xc;let aS=0.6-an*an-ap*ap-aq*aq;aS<0x0?a1=0x0:(aS*=aS,a1=aS*aS*this[fG(0xae7)](this[fG(0x814)][aO],an,ap,aq));let aT=0.6-aC*aC-aD*aD-aE*aE;aT<0x0?a2=0x0:(aT*=aT,a2=aT*aT*this['dot3'](this[fG(0x814)][aP],aC,aD,aE));let aU=0.6-aF*aF-aG*aG-aH*aH;aU<0x0?a3=0x0:(aU*=aU,a3=aU*aU*this[fG(0xae7)](this['grad3'][aQ],aF,aG,aH));let aV=0.6-aI*aI-aJ*aJ-aK*aK;return aV<0x0?a4=0x0:(aV*=aV,a4=aV*aV*this['dot3'](this['grad3'][aR],aI,aJ,aK)),0x20*(a1+a2+a3+a4);}[a0cH(0x5e6)](i,a0,a1,a2){const fH=a0cH,a3=this['grad4'],a4=this[fH(0x7a3)],a5=this['perm'],a6=(Math[fH(0x902)](0x5)-0x1)/0x4,a7=(0x5-Math[fH(0x902)](0x5))/0x14;let a8,a9,ab,aj,ak;const am=(i+a0+a1+a2)*a6,ap=Math['floor'](i+am),aq=Math[fH(0xa7a)](a0+am),av=Math['floor'](a1+am),aw=Math[fH(0xa7a)](a2+am),ax=(ap+aq+av+aw)*a7,ay=ap-ax,az=aq-ax,aB=av-ax,aC=aw-ax,aD=i-ay,aE=a0-az,aF=a1-aB,aG=a2-aC,aH=aD>aE?0x20:0x0,aI=aD>aF?0x10:0x0,aJ=aE>aF?0x8:0x0,aK=aD>aG?0x4:0x0,aL=aE>aG?0x2:0x0,aM=aF>aG?0x1:0x0,aN=aH+aI+aJ+aK+aL+aM,aO=a4[aN][0x0]>=0x3?0x1:0x0,aP=a4[aN][0x1]>=0x3?0x1:0x0,aQ=a4[aN][0x2]>=0x3?0x1:0x0,aR=a4[aN][0x3]>=0x3?0x1:0x0,aS=a4[aN][0x0]>=0x2?0x1:0x0,aT=a4[aN][0x1]>=0x2?0x1:0x0,aU=a4[aN][0x2]>=0x2?0x1:0x0,aV=a4[aN][0x3]>=0x2?0x1:0x0,aW=a4[aN][0x0]>=0x1?0x1:0x0,aX=a4[aN][0x1]>=0x1?0x1:0x0,aY=a4[aN][0x2]>=0x1?0x1:0x0,aZ=a4[aN][0x3]>=0x1?0x1:0x0,b0=aD-aO+a7,b1=aE-aP+a7,b2=aF-aQ+a7,b3=aG-aR+a7,b4=aD-aS+0x2*a7,b5=aE-aT+0x2*a7,b6=aF-aU+0x2*a7,b7=aG-aV+0x2*a7,b8=aD-aW+0x3*a7,b9=aE-aX+0x3*a7,bb=aF-aY+0x3*a7,bf=aG-aZ+0x3*a7,bj=aD-0x1+0x4*a7,bk=aE-0x1+0x4*a7,bm=aF-0x1+0x4*a7,bp=aG-0x1+0x4*a7,bq=ap&0xff,bv=aq&0xff,bw=av&0xff,bx=aw&0xff,by=a5[bq+a5[bv+a5[bw+a5[bx]]]]%0x20,bz=a5[bq+aO+a5[bv+aP+a5[bw+aQ+a5[bx+aR]]]]%0x20,bB=a5[bq+aS+a5[bv+aT+a5[bw+aU+a5[bx+aV]]]]%0x20,bC=a5[bq+aW+a5[bv+aX+a5[bw+aY+a5[bx+aZ]]]]%0x20,bD=a5[bq+0x1+a5[bv+0x1+a5[bw+0x1+a5[bx+0x1]]]]%0x20;let bE=0.6-aD*aD-aE*aE-aF*aF-aG*aG;bE<0x0?a8=0x0:(bE*=bE,a8=bE*bE*this[fH(0x8ca)](a3[by],aD,aE,aF,aG));let bF=0.6-b0*b0-b1*b1-b2*b2-b3*b3;bF<0x0?a9=0x0:(bF*=bF,a9=bF*bF*this['dot4'](a3[bz],b0,b1,b2,b3));let bG=0.6-b4*b4-b5*b5-b6*b6-b7*b7;bG<0x0?ab=0x0:(bG*=bG,ab=bG*bG*this[fH(0x8ca)](a3[bB],b4,b5,b6,b7));let bH=0.6-b8*b8-b9*b9-bb*bb-bf*bf;bH<0x0?aj=0x0:(bH*=bH,aj=bH*bH*this['dot4'](a3[bC],b8,b9,bb,bf));let bI=0.6-bj*bj-bk*bk-bm*bm-bp*bp;return bI<0x0?ak=0x0:(bI*=bI,ak=bI*bI*this['dot4'](a3[bD],bj,bk,bm,bp)),0x1b*(a8+a9+ab+aj+ak);}}const ns={'name':'CopyShader','uniforms':{'tDiffuse':{'value':null},'opacity':{'value':0x1}},'vertexShader':'\x0a\x0a\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09vUv\x20=\x20uv;\x0a\x09\x09\x09gl_Position\x20=\x20projectionMatrix\x20*\x20modelViewMatrix\x20*\x20vec4(\x20position,\x201.0\x20);\x0a\x0a\x09\x09}','fragmentShader':a0cH(0x8d2)};class Rh extends vi{constructor(b,c){const fI=a0cH;super(),this[fI(0xa65)]=c!==void 0x0?c:fI(0x470),b instanceof a0u?(this['uniforms']=b['uniforms'],this['material']=b):b&&(this['uniforms']=a0w[fI(0x8e8)](b[fI(0x4b8)]),this[fI(0xb87)]=new a0u({'name':b[fI(0x587)]!==void 0x0?b['name']:fI(0x3f9),'defines':Object['assign']({},b['defines']),'uniforms':this['uniforms'],'vertexShader':b['vertexShader'],'fragmentShader':b[fI(0x266)]})),this['fsQuad']=new Hr(this[fI(0xb87)]);}[a0cH(0x181)](b,c,d){const fJ=a0cH;this[fJ(0x4b8)][this[fJ(0xa65)]]&&(this[fJ(0x4b8)][this['textureID']]['value']=d['texture']),this['fsQuad']['material']=this[fJ(0xb87)],this['renderToScreen']?(b['setRenderTarget'](null),this[fJ(0x5b0)]['render'](b)):(b['setRenderTarget'](c),this[fJ(0x6d2)]&&b['clear'](b[fJ(0x315)],b[fJ(0x868)],b['autoClearStencil']),this[fJ(0x5b0)][fJ(0x181)](b));}[a0cH(0xa58)](){const fK=a0cH;this['material'][fK(0xa58)](),this[fK(0x5b0)][fK(0xa58)]();}}class xo extends vi{constructor(b,c){const fL=a0cH;super(),this[fL(0x770)]=b,this[fL(0x3e2)]=c,this['clear']=!0x0,this['needsSwap']=!0x1,this['inverse']=!0x1;}['render'](b,d,f){const fM=a0cH,g=b['getContext'](),h=b['state'];h['buffers']['color'][fM(0x75e)](!0x1),h['buffers']['depth'][fM(0x75e)](!0x1),h[fM(0x9be)][fM(0xa89)]['setLocked'](!0x0),h[fM(0x9be)][fM(0x73a)]['setLocked'](!0x0);let i,j;this[fM(0xa4b)]?(i=0x0,j=0x1):(i=0x1,j=0x0),h[fM(0x9be)]['stencil']['setTest'](!0x0),h['buffers'][fM(0xa08)]['setOp'](g['REPLACE'],g['REPLACE'],g[fM(0x5ab)]),h['buffers']['stencil']['setFunc'](g['ALWAYS'],i,0xffffffff),h[fM(0x9be)][fM(0xa08)]['setClear'](j),h[fM(0x9be)][fM(0xa08)]['setLocked'](!0x0),b[fM(0x4b7)](f),this['clear']&&b['clear'](),b[fM(0x181)](this[fM(0x770)],this[fM(0x3e2)]),b['setRenderTarget'](d),this['clear']&&b['clear'](),b['render'](this[fM(0x770)],this[fM(0x3e2)]),h['buffers']['color']['setLocked'](!0x1),h[fM(0x9be)]['depth'][fM(0xb7c)](!0x1),h[fM(0x9be)]['color'][fM(0x75e)](!0x0),h[fM(0x9be)]['depth'][fM(0x75e)](!0x0),h['buffers'][fM(0xa08)][fM(0xb7c)](!0x1),h['buffers']['stencil'][fM(0x9f8)](g[fM(0xb05)],0x1,0xffffffff),h[fM(0x9be)][fM(0xa08)]['setOp'](g[fM(0x963)],g[fM(0x963)],g[fM(0x963)]),h['buffers'][fM(0xa08)]['setLocked'](!0x0);}}class Ph extends vi{constructor(){super(),this['needsSwap']=!0x1;}[a0cH(0x181)](b){const fN=a0cH;b['state'][fN(0x9be)]['stencil']['setLocked'](!0x1),b['state']['buffers'][fN(0xa08)]['setTest'](!0x1);}}class kh{constructor(b,c){const fO=a0cH;if(this[fO(0x976)]=b,this['_pixelRatio']=b[fO(0xb86)](),c===void 0x0){const d=b[fO(0x20b)](new a0l());this[fO(0xa5f)]=d[fO(0x69c)],this[fO(0x88b)]=d['height'],c=new a0a7(this['_width']*this[fO(0x292)],this['_height']*this[fO(0x292)],{'type':a0U}),c[fO(0x897)]['name']=fO(0xb72);}else this['_width']=c['width'],this['_height']=c['height'];this['renderTarget1']=c,this['renderTarget2']=c[fO(0x8e8)](),this[fO(0x602)][fO(0x897)]['name']=fO(0x4ab),this['writeBuffer']=this['renderTarget1'],this[fO(0x3d9)]=this[fO(0x602)],this[fO(0x5a5)]=!0x0,this['passes']=[],this['copyPass']=new Rh(ns),this[fO(0x56e)][fO(0xb87)]['blending']=a0a8,this['clock']=new a0a9();}[a0cH(0x4e6)](){const fP=a0cH,b=this[fP(0x3d9)];this['readBuffer']=this['writeBuffer'],this[fP(0x9d5)]=b;}[a0cH(0x47d)](b){const fQ=a0cH;this[fQ(0x59e)][fQ(0x50e)](b),b[fQ(0x1f4)](this['_width']*this['_pixelRatio'],this[fQ(0x88b)]*this['_pixelRatio']);}['insertPass'](b,c){const fR=a0cH;this['passes'][fR(0x263)](c,0x0,b),b[fR(0x1f4)](this[fR(0xa5f)]*this['_pixelRatio'],this[fR(0x88b)]*this['_pixelRatio']);}[a0cH(0xa5b)](b){const fS=a0cH,c=this['passes'][fS(0x279)](b);c!==-0x1&&this[fS(0x59e)]['splice'](c,0x1);}[a0cH(0x579)](b){for(let c=b+0x1;c<this['passes']['length'];c++)if(this['passes'][c]['enabled'])return!0x1;return!0x0;}['render'](b){const fT=a0cH;b===void 0x0&&(b=this['clock']['getDelta']());const d=this['renderer'][fT(0x808)]();let f=!0x1;for(let g=0x0,h=this['passes']['length'];g<h;g++){const i=this[fT(0x59e)][g];if(i['enabled']!==!0x1){if(i[fT(0x5a5)]=this['renderToScreen']&&this[fT(0x579)](g),i[fT(0x181)](this[fT(0x976)],this[fT(0x9d5)],this[fT(0x3d9)],b,f),i[fT(0x4ea)]){if(f){const j=this['renderer'][fT(0x4d3)](),k=this['renderer']['state']['buffers']['stencil'];k['setFunc'](j[fT(0x3bc)],0x1,0xffffffff),this['copyPass'][fT(0x181)](this[fT(0x976)],this['writeBuffer'],this[fT(0x3d9)],b),k['setFunc'](j['EQUAL'],0x1,0xffffffff);}this[fT(0x4e6)]();}xo!==void 0x0&&(i instanceof xo?f=!0x0:i instanceof Ph&&(f=!0x1));}}this[fT(0x976)]['setRenderTarget'](d);}[a0cH(0x7f4)](b){const fU=a0cH;if(b===void 0x0){const c=this[fU(0x976)][fU(0x20b)](new a0l());this['_pixelRatio']=this[fU(0x976)]['getPixelRatio'](),this['_width']=c[fU(0x69c)],this[fU(0x88b)]=c[fU(0x75a)],b=this['renderTarget1']['clone'](),b['setSize'](this['_width']*this['_pixelRatio'],this[fU(0x88b)]*this['_pixelRatio']);}this[fU(0x30a)][fU(0xa58)](),this['renderTarget2'][fU(0xa58)](),this['renderTarget1']=b,this[fU(0x602)]=b['clone'](),this['writeBuffer']=this[fU(0x30a)],this[fU(0x3d9)]=this['renderTarget2'];}['setSize'](b,c){const fV=a0cH;this[fV(0xa5f)]=b,this['_height']=c;const d=this['_width']*this['_pixelRatio'],f=this[fV(0x88b)]*this[fV(0x292)];this['renderTarget1']['setSize'](d,f),this['renderTarget2'][fV(0x1f4)](d,f);for(let g=0x0;g<this['passes'][fV(0x576)];g++)this[fV(0x59e)][g]['setSize'](d,f);}[a0cH(0x7eb)](b){const fW=a0cH;this['_pixelRatio']=b,this['setSize'](this['_width'],this[fW(0x88b)]);}['dispose'](){const fX=a0cH;this['renderTarget1']['dispose'](),this[fX(0x602)][fX(0xa58)](),this[fX(0x56e)][fX(0xa58)]();}}class Fh extends vi{constructor(b,c,d=null,f=null,g=null){const fY=a0cH;super(),this['scene']=b,this[fY(0x3e2)]=c,this[fY(0x617)]=d,this[fY(0x5b8)]=f,this[fY(0xa64)]=g,this['clear']=!0x0,this['clearDepth']=!0x1,this['needsSwap']=!0x1,this[fY(0x8ba)]=new a0G();}['render'](b,c,d){const fZ=a0cH,f=b[fZ(0x604)];b[fZ(0x604)]=!0x1;let g,h;this['overrideMaterial']!==null&&(h=this[fZ(0x770)]['overrideMaterial'],this['scene'][fZ(0x617)]=this[fZ(0x617)]),this['clearColor']!==null&&(b['getClearColor'](this['_oldClearColor']),b[fZ(0xb89)](this['clearColor'],b[fZ(0x87e)]())),this['clearAlpha']!==null&&(g=b[fZ(0x87e)](),b['setClearAlpha'](this[fZ(0xa64)])),this['clearDepth']==!0x0&&b['clearDepth'](),b[fZ(0x4b7)](this['renderToScreen']?null:d),this[fZ(0x6d2)]===!0x0&&b['clear'](b['autoClearColor'],b['autoClearDepth'],b[fZ(0xafa)]),b['render'](this[fZ(0x770)],this[fZ(0x3e2)]),this['clearColor']!==null&&b[fZ(0xb89)](this[fZ(0x8ba)]),this['clearAlpha']!==null&&b['setClearAlpha'](g),this[fZ(0x617)]!==null&&(this['scene']['overrideMaterial']=h),b['autoClear']=f;}}const bs={'defines':{'PERSPECTIVE_CAMERA':0x1,'KERNEL_SIZE':0x20},'uniforms':{'tNormal':{'value':null},'tDepth':{'value':null},'tNoise':{'value':null},'kernel':{'value':null},'cameraNear':{'value':null},'cameraFar':{'value':null},'resolution':{'value':new a0l()},'cameraProjectionMatrix':{'value':new a0m()},'cameraInverseProjectionMatrix':{'value':new a0m()},'kernelRadius':{'value':0x8},'minDistance':{'value':0.005},'maxDistance':{'value':0.05}},'vertexShader':a0cH(0x5a4),'fragmentShader':a0cH(0x342)},Es={'defines':{'PERSPECTIVE_CAMERA':0x1},'uniforms':{'tDepth':{'value':null},'cameraNear':{'value':null},'cameraFar':{'value':null}},'vertexShader':'varying\x20vec2\x20vUv;\x0a\x0a\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09vUv\x20=\x20uv;\x0a\x09\x09\x09gl_Position\x20=\x20projectionMatrix\x20*\x20modelViewMatrix\x20*\x20vec4(\x20position,\x201.0\x20);\x0a\x0a\x09\x09}','fragmentShader':'uniform\x20sampler2D\x20tDepth;\x0a\x0a\x09\x09uniform\x20float\x20cameraNear;\x0a\x09\x09uniform\x20float\x20cameraFar;\x0a\x0a\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09#include\x20<packing>\x0a\x0a\x09\x09float\x20getLinearDepth(\x20const\x20in\x20vec2\x20screenPosition\x20)\x20{\x0a\x0a\x09\x09\x09#if\x20PERSPECTIVE_CAMERA\x20==\x201\x0a\x0a\x09\x09\x09\x09float\x20fragCoordZ\x20=\x20texture2D(\x20tDepth,\x20screenPosition\x20).x;\x0a\x09\x09\x09\x09float\x20viewZ\x20=\x20perspectiveDepthToViewZ(\x20fragCoordZ,\x20cameraNear,\x20cameraFar\x20);\x0a\x09\x09\x09\x09return\x20viewZToOrthographicDepth(\x20viewZ,\x20cameraNear,\x20cameraFar\x20);\x0a\x0a\x09\x09\x09#else\x0a\x0a\x09\x09\x09\x09return\x20texture2D(\x20tDepth,\x20screenPosition\x20).x;\x0a\x0a\x09\x09\x09#endif\x0a\x0a\x09\x09}\x0a\x0a\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09float\x20depth\x20=\x20getLinearDepth(\x20vUv\x20);\x0a\x09\x09\x09gl_FragColor\x20=\x20vec4(\x20vec3(\x201.0\x20-\x20depth\x20),\x201.0\x20);\x0a\x0a\x09\x09}'},Cs={'uniforms':{'tDiffuse':{'value':null},'resolution':{'value':new a0l()}},'vertexShader':'varying\x20vec2\x20vUv;\x0a\x0a\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09vUv\x20=\x20uv;\x0a\x09\x09\x09gl_Position\x20=\x20projectionMatrix\x20*\x20modelViewMatrix\x20*\x20vec4(\x20position,\x201.0\x20);\x0a\x0a\x09\x09}','fragmentShader':a0cH(0x39b)};class ot extends vi{constructor(b,c,d,f,g=0x20){const g0=a0cH;super(),this['width']=d!==void 0x0?d:0x200,this['height']=f!==void 0x0?f:0x200,this['clear']=!0x0,this['needsSwap']=!0x1,this['camera']=c,this['scene']=b,this[g0(0x2d4)]=0x8,this['kernel']=[],this[g0(0x746)]=null,this[g0(0x836)]=0x0,this[g0(0x72b)]=0.005,this['maxDistance']=0.1,this[g0(0x854)]=new Map(),this[g0(0x97d)](g),this['generateRandomKernelRotations']();const h=new a0aa();h[g0(0x207)]=a0ab,h['type']=a0ac,this[g0(0x5fc)]=new a0a7(this[g0(0x69c)],this[g0(0x75a)],{'minFilter':a0ad,'magFilter':a0ad,'type':a0U,'depthTexture':h}),this[g0(0x3ab)]=new a0a7(this[g0(0x69c)],this['height'],{'type':a0U}),this['blurRenderTarget']=this['ssaoRenderTarget'][g0(0x8e8)](),this[g0(0x6d5)]=new a0u({'defines':Object[g0(0x9a8)]({},bs[g0(0xa0c)]),'uniforms':a0w[g0(0x8e8)](bs[g0(0x4b8)]),'vertexShader':bs[g0(0x609)],'fragmentShader':bs['fragmentShader'],'blending':a0a8}),this[g0(0x6d5)][g0(0xa0c)]['KERNEL_SIZE']=g,this['ssaoMaterial']['uniforms'][g0(0x987)]['value']=this['normalRenderTarget']['texture'],this['ssaoMaterial']['uniforms']['tDepth']['value']=this['normalRenderTarget']['depthTexture'],this[g0(0x6d5)]['uniforms']['tNoise']['value']=this['noiseTexture'],this['ssaoMaterial'][g0(0x4b8)][g0(0x259)]['value']=this[g0(0x259)],this[g0(0x6d5)][g0(0x4b8)][g0(0x178)][g0(0x372)]=this[g0(0x3e2)]['near'],this['ssaoMaterial']['uniforms']['cameraFar']['value']=this[g0(0x3e2)][g0(0x42b)],this['ssaoMaterial']['uniforms']['resolution']['value']['set'](this[g0(0x69c)],this[g0(0x75a)]),this['ssaoMaterial'][g0(0x4b8)][g0(0xb60)]['value']['copy'](this['camera']['projectionMatrix']),this[g0(0x6d5)][g0(0x4b8)][g0(0x1ab)][g0(0x372)][g0(0x195)](this[g0(0x3e2)][g0(0xa55)]),this[g0(0x9a1)]=new a0ae(),this['normalMaterial'][g0(0x6cb)]=a0a8,this[g0(0xba4)]=new a0u({'defines':Object[g0(0x9a8)]({},Cs['defines']),'uniforms':a0w[g0(0x8e8)](Cs[g0(0x4b8)]),'vertexShader':Cs[g0(0x609)],'fragmentShader':Cs[g0(0x266)]}),this['blurMaterial'][g0(0x4b8)]['tDiffuse'][g0(0x372)]=this['ssaoRenderTarget']['texture'],this[g0(0xba4)]['uniforms'][g0(0x96c)][g0(0x372)][g0(0x46c)](this['width'],this['height']),this['depthRenderMaterial']=new a0u({'defines':Object['assign']({},Es[g0(0xa0c)]),'uniforms':a0w[g0(0x8e8)](Es[g0(0x4b8)]),'vertexShader':Es[g0(0x609)],'fragmentShader':Es['fragmentShader'],'blending':a0a8}),this[g0(0xab9)][g0(0x4b8)][g0(0x1f7)][g0(0x372)]=this[g0(0x5fc)]['depthTexture'],this[g0(0xab9)][g0(0x4b8)]['cameraNear'][g0(0x372)]=this[g0(0x3e2)]['near'],this['depthRenderMaterial']['uniforms']['cameraFar'][g0(0x372)]=this[g0(0x3e2)]['far'],this[g0(0x5ba)]=new a0u({'uniforms':a0w['clone'](ns['uniforms']),'vertexShader':ns['vertexShader'],'fragmentShader':ns[g0(0x266)],'transparent':!0x0,'depthTest':!0x1,'depthWrite':!0x1,'blendSrc':a0ai,'blendDst':a0ag,'blendEquation':a0af,'blendSrcAlpha':a0ah,'blendDstAlpha':a0ag,'blendEquationAlpha':a0af}),this[g0(0x5b0)]=new Hr(null),this['originalClearColor']=new a0G();}['dispose'](){const g1=a0cH;this['normalRenderTarget']['dispose'](),this['ssaoRenderTarget'][g1(0xa58)](),this[g1(0x403)]['dispose'](),this['normalMaterial'][g1(0xa58)](),this[g1(0xba4)][g1(0xa58)](),this[g1(0x5ba)][g1(0xa58)](),this[g1(0xab9)]['dispose'](),this[g1(0x5b0)][g1(0xa58)]();}['render'](b,c,d){const g2=a0cH;switch(this['overrideVisibility'](),this['renderOverride'](b,this['normalMaterial'],this[g2(0x5fc)],0x7777ff,0x1),this[g2(0x44c)](),this['ssaoMaterial'][g2(0x4b8)][g2(0x2d4)][g2(0x372)]=this[g2(0x2d4)],this['ssaoMaterial'][g2(0x4b8)]['minDistance']['value']=this[g2(0x72b)],this['ssaoMaterial'][g2(0x4b8)][g2(0xaf6)][g2(0x372)]=this[g2(0xaf6)],this['renderPass'](b,this['ssaoMaterial'],this[g2(0x3ab)]),this[g2(0x23d)](b,this['blurMaterial'],this['blurRenderTarget']),this[g2(0x836)]){case ot[g2(0x5fa)]['SSAO']:this['copyMaterial'][g2(0x4b8)][g2(0x470)]['value']=this['ssaoRenderTarget'][g2(0x897)],this[g2(0x5ba)][g2(0x6cb)]=a0a8,this[g2(0x23d)](b,this['copyMaterial'],this['renderToScreen']?null:d);break;case ot['OUTPUT'][g2(0x282)]:this['copyMaterial'][g2(0x4b8)]['tDiffuse']['value']=this[g2(0x403)][g2(0x897)],this['copyMaterial']['blending']=a0a8,this[g2(0x23d)](b,this['copyMaterial'],this[g2(0x5a5)]?null:d);break;case ot['OUTPUT'][g2(0x6f8)]:this['renderPass'](b,this[g2(0xab9)],this['renderToScreen']?null:d);break;case ot['OUTPUT'][g2(0x680)]:this[g2(0x5ba)][g2(0x4b8)]['tDiffuse']['value']=this[g2(0x5fc)]['texture'],this['copyMaterial']['blending']=a0a8,this[g2(0x23d)](b,this[g2(0x5ba)],this[g2(0x5a5)]?null:d);break;case ot['OUTPUT'][g2(0x6b9)]:this[g2(0x5ba)][g2(0x4b8)]['tDiffuse'][g2(0x372)]=this['blurRenderTarget'][g2(0x897)],this[g2(0x5ba)]['blending']=a0aj,this['renderPass'](b,this['copyMaterial'],this[g2(0x5a5)]?null:d);break;default:console['warn'](g2(0x313));}}['renderPass'](b,d,f,g,h){const g3=a0cH;b[g3(0xaf8)](this['originalClearColor']);const i=b['getClearAlpha'](),j=b['autoClear'];b['setRenderTarget'](f),b['autoClear']=!0x1,g!=null&&(b[g3(0xb89)](g),b[g3(0x2f5)](h||0x0),b[g3(0x6d2)]()),this['fsQuad'][g3(0xb87)]=d,this['fsQuad']['render'](b),b[g3(0x604)]=j,b['setClearColor'](this[g3(0x3a7)]),b['setClearAlpha'](i);}['renderOverride'](b,d,f,g,h){const g4=a0cH;b['getClearColor'](this[g4(0x3a7)]);const i=b[g4(0x87e)](),j=b['autoClear'];b['setRenderTarget'](f),b['autoClear']=!0x1,g=d['clearColor']||g,h=d[g4(0xa64)]||h,g!=null&&(b['setClearColor'](g),b[g4(0x2f5)](h||0x0),b[g4(0x6d2)]()),this[g4(0x770)][g4(0x617)]=d,b[g4(0x181)](this['scene'],this['camera']),this[g4(0x770)][g4(0x617)]=null,b['autoClear']=j,b['setClearColor'](this[g4(0x3a7)]),b[g4(0x2f5)](i);}[a0cH(0x1f4)](b,c){const g5=a0cH;this[g5(0x69c)]=b,this['height']=c,this['ssaoRenderTarget']['setSize'](b,c),this['normalRenderTarget']['setSize'](b,c),this['blurRenderTarget']['setSize'](b,c),this['ssaoMaterial'][g5(0x4b8)]['resolution'][g5(0x372)]['set'](b,c),this[g5(0x6d5)]['uniforms']['cameraProjectionMatrix']['value']['copy'](this['camera']['projectionMatrix']),this['ssaoMaterial'][g5(0x4b8)][g5(0x1ab)]['value'][g5(0x195)](this[g5(0x3e2)]['projectionMatrixInverse']),this[g5(0xba4)][g5(0x4b8)][g5(0x96c)][g5(0x372)]['set'](b,c);}['generateSampleKernel'](b){const g6=a0cH,c=this[g6(0x259)];for(let d=0x0;d<b;d++){const f=new a0c();f['x']=Math[g6(0x886)]()*0x2-0x1,f['y']=Math['random']()*0x2-0x1,f['z']=Math['random'](),f['normalize']();let g=d/b;g=a0A[g6(0x27b)](0.1,0x1,g*g),f[g6(0xa49)](g),c[g6(0x50e)](f);}}[a0cH(0x171)](){const g7=a0cH,b=new Lh(),d=0x4*0x4,e=new Float32Array(d);for(let f=0x0;f<d;f++){const g=Math[g7(0x886)]()*0x2-0x1,i=Math['random']()*0x2-0x1,j=0x0;e[f]=b[g7(0x62e)](g,i,j);}this['noiseTexture']=new a0W(e,0x4,0x4,a0Q,a0V),this[g7(0x746)][g7(0xa46)]=a0ak,this['noiseTexture']['wrapT']=a0ak,this[g7(0x746)][g7(0x5f7)]=!0x0;}[a0cH(0x67f)](){const g8=a0cH,b=this[g8(0x770)],c=this['_visibilityCache'];b['traverse'](function(d){const g9=g8;c[g9(0x46c)](d,d[g9(0x921)]),(d['isPoints']||d['isLine'])&&(d['visible']=!0x1);});}[a0cH(0x44c)](){const gb=a0cH,b=this[gb(0x770)],c=this['_visibilityCache'];b[gb(0x730)](function(d){const f=c['get'](d);d['visible']=f;}),c['clear']();}}ot['OUTPUT']={'Default':0x0,'SSAO':0x1,'Blur':0x2,'Depth':0x3,'Normal':0x4};const Oh={'uniforms':{'tDiffuse':{'value':null},'luminosityThreshold':{'value':0x1},'smoothWidth':{'value':0x1},'defaultColor':{'value':new a0G(0x0)},'defaultOpacity':{'value':0x0}},'vertexShader':'\x0a\x0a\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09vUv\x20=\x20uv;\x0a\x0a\x09\x09\x09gl_Position\x20=\x20projectionMatrix\x20*\x20modelViewMatrix\x20*\x20vec4(\x20position,\x201.0\x20);\x0a\x0a\x09\x09}','fragmentShader':'\x0a\x0a\x09\x09uniform\x20sampler2D\x20tDiffuse;\x0a\x09\x09uniform\x20vec3\x20defaultColor;\x0a\x09\x09uniform\x20float\x20defaultOpacity;\x0a\x09\x09uniform\x20float\x20luminosityThreshold;\x0a\x09\x09uniform\x20float\x20smoothWidth;\x0a\x0a\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09vec4\x20texel\x20=\x20texture2D(\x20tDiffuse,\x20vUv\x20);\x0a\x0a\x09\x09\x09float\x20v\x20=\x20luminance(\x20texel.xyz\x20);\x0a\x0a\x09\x09\x09vec4\x20outputColor\x20=\x20vec4(\x20defaultColor.rgb,\x20defaultOpacity\x20);\x0a\x0a\x09\x09\x09float\x20alpha\x20=\x20smoothstep(\x20luminosityThreshold,\x20luminosityThreshold\x20+\x20smoothWidth,\x20v\x20);\x0a\x0a\x09\x09\x09gl_FragColor\x20=\x20mix(\x20outputColor,\x20texel,\x20alpha\x20);\x0a\x0a\x09\x09}'};class jt extends vi{constructor(b,f,i,j){const ge=a0cH;super(),this[ge(0xa39)]=f!==void 0x0?f:0x1,this['radius']=i,this['threshold']=j,this['resolution']=b!==void 0x0?new a0l(b['x'],b['y']):new a0l(0x100,0x100),this['clearColor']=new a0G(0x0,0x0,0x0),this['renderTargetsHorizontal']=[],this[ge(0x33c)]=[],this[ge(0x530)]=0x5;let k=Math['round'](this[ge(0x96c)]['x']/0x2),m=Math['round'](this[ge(0x96c)]['y']/0x2);this['renderTargetBright']=new a0a7(k,m,{'type':a0U}),this[ge(0xaed)][ge(0x897)]['name']=ge(0x95f),this[ge(0xaed)]['texture'][ge(0x8d1)]=!0x1;for(let y=0x0;y<this['nMips'];y++){const z=new a0a7(k,m,{'type':a0U});z[ge(0x897)]['name']='UnrealBloomPass.h'+y,z[ge(0x897)][ge(0x8d1)]=!0x1,this[ge(0x5ec)]['push'](z);const B=new a0a7(k,m,{'type':a0U});B[ge(0x897)]['name']=ge(0x9e1)+y,B['texture'][ge(0x8d1)]=!0x1,this['renderTargetsVertical'][ge(0x50e)](B),k=Math['round'](k/0x2),m=Math['round'](m/0x2);}const p=Oh;this[ge(0x806)]=a0w[ge(0x8e8)](p[ge(0x4b8)]),this['highPassUniforms']['luminosityThreshold'][ge(0x372)]=j,this[ge(0x806)]['smoothWidth']['value']=0.01,this['materialHighPassFilter']=new a0u({'uniforms':this['highPassUniforms'],'vertexShader':p['vertexShader'],'fragmentShader':p['fragmentShader']}),this['separableBlurMaterials']=[];const v=[0x3,0x5,0x7,0x9,0xb];k=Math[ge(0xa2a)](this[ge(0x96c)]['x']/0x2),m=Math['round'](this['resolution']['y']/0x2);for(let E=0x0;E<this['nMips'];E++)this['separableBlurMaterials']['push'](this['getSeperableBlurMaterial'](v[E])),this[ge(0x965)][E]['uniforms'][ge(0x3d0)][ge(0x372)]=new a0l(0x1/k,0x1/m),k=Math[ge(0xa2a)](k/0x2),m=Math['round'](m/0x2);this['compositeMaterial']=this[ge(0x273)](this[ge(0x530)]),this['compositeMaterial']['uniforms'][ge(0x4d9)]['value']=this['renderTargetsVertical'][0x0][ge(0x897)],this['compositeMaterial'][ge(0x4b8)][ge(0x1a9)]['value']=this['renderTargetsVertical'][0x1][ge(0x897)],this['compositeMaterial'][ge(0x4b8)][ge(0xba5)][ge(0x372)]=this[ge(0x33c)][0x2][ge(0x897)],this['compositeMaterial']['uniforms']['blurTexture4']['value']=this['renderTargetsVertical'][0x3]['texture'],this['compositeMaterial'][ge(0x4b8)][ge(0x68b)]['value']=this['renderTargetsVertical'][0x4][ge(0x897)],this[ge(0x97b)][ge(0x4b8)]['bloomStrength']['value']=f,this[ge(0x97b)][ge(0x4b8)]['bloomRadius']['value']=0.1;const w=[0x1,0.8,0.6,0.4,0.2];this[ge(0x97b)][ge(0x4b8)]['bloomFactors'][ge(0x372)]=w,this[ge(0x364)]=[new a0c(0x1,0x1,0x1),new a0c(0x1,0x1,0x1),new a0c(0x1,0x1,0x1),new a0c(0x1,0x1,0x1),new a0c(0x1,0x1,0x1)],this[ge(0x97b)]['uniforms'][ge(0x364)]['value']=this[ge(0x364)];const x=ns;this[ge(0x335)]=a0w[ge(0x8e8)](x[ge(0x4b8)]),this[ge(0x5c8)]=new a0u({'uniforms':this['copyUniforms'],'vertexShader':x['vertexShader'],'fragmentShader':x['fragmentShader'],'blending':a0al,'depthTest':!0x1,'depthWrite':!0x1,'transparent':!0x0}),this[ge(0x95b)]=!0x0,this['needsSwap']=!0x1,this['_oldClearColor']=new a0G(),this['oldClearAlpha']=0x1,this['basic']=new a0g(),this['fsQuad']=new Hr(null);}[a0cH(0xa58)](){const gf=a0cH;for(let b=0x0;b<this['renderTargetsHorizontal'][gf(0x576)];b++)this['renderTargetsHorizontal'][b][gf(0xa58)]();for(let c=0x0;c<this[gf(0x33c)]['length'];c++)this[gf(0x33c)][c][gf(0xa58)]();this['renderTargetBright']['dispose']();for(let d=0x0;d<this['separableBlurMaterials']['length'];d++)this['separableBlurMaterials'][d][gf(0xa58)]();this['compositeMaterial']['dispose'](),this[gf(0x5c8)]['dispose'](),this[gf(0x695)]['dispose'](),this['fsQuad'][gf(0xa58)]();}['setSize'](b,c){const gj=a0cH;let d=Math['round'](b/0x2),f=Math['round'](c/0x2);this['renderTargetBright'][gj(0x1f4)](d,f);for(let g=0x0;g<this[gj(0x530)];g++)this[gj(0x5ec)][g]['setSize'](d,f),this['renderTargetsVertical'][g]['setSize'](d,f),this[gj(0x965)][g]['uniforms']['invSize']['value']=new a0l(0x1/d,0x1/f),d=Math[gj(0xa2a)](d/0x2),f=Math[gj(0xa2a)](f/0x2);}[a0cH(0x181)](b,d,f,g,h){const gk=a0cH;b['getClearColor'](this[gk(0x8ba)]),this['oldClearAlpha']=b[gk(0x87e)]();const i=b['autoClear'];b['autoClear']=!0x1,b[gk(0xb89)](this[gk(0x5b8)],0x0),h&&b[gk(0x1c6)][gk(0x9be)][gk(0xa08)][gk(0x89b)](!0x1),this[gk(0x5a5)]&&(this['fsQuad'][gk(0xb87)]=this[gk(0x695)],this[gk(0x695)][gk(0x941)]=f['texture'],b['setRenderTarget'](null),b['clear'](),this['fsQuad']['render'](b)),this['highPassUniforms'][gk(0x470)]['value']=f['texture'],this[gk(0x806)]['luminosityThreshold']['value']=this['threshold'],this[gk(0x5b0)]['material']=this[gk(0x375)],b[gk(0x4b7)](this[gk(0xaed)]),b[gk(0x6d2)](),this[gk(0x5b0)]['render'](b);let j=this['renderTargetBright'];for(let k=0x0;k<this['nMips'];k++)this[gk(0x5b0)][gk(0xb87)]=this['separableBlurMaterials'][k],this['separableBlurMaterials'][k]['uniforms']['colorTexture']['value']=j['texture'],this['separableBlurMaterials'][k]['uniforms']['direction'][gk(0x372)]=jt['BlurDirectionX'],b['setRenderTarget'](this[gk(0x5ec)][k]),b[gk(0x6d2)](),this[gk(0x5b0)]['render'](b),this['separableBlurMaterials'][k]['uniforms']['colorTexture']['value']=this[gk(0x5ec)][k]['texture'],this['separableBlurMaterials'][k][gk(0x4b8)]['direction'][gk(0x372)]=jt[gk(0x9cc)],b[gk(0x4b7)](this['renderTargetsVertical'][k]),b[gk(0x6d2)](),this[gk(0x5b0)][gk(0x181)](b),j=this['renderTargetsVertical'][k];this[gk(0x5b0)]['material']=this[gk(0x97b)],this[gk(0x97b)]['uniforms']['bloomStrength'][gk(0x372)]=this['strength'],this['compositeMaterial']['uniforms']['bloomRadius']['value']=this['radius'],this[gk(0x97b)][gk(0x4b8)][gk(0x364)]['value']=this[gk(0x364)],b['setRenderTarget'](this[gk(0x5ec)][0x0]),b[gk(0x6d2)](),this[gk(0x5b0)][gk(0x181)](b),this[gk(0x5b0)]['material']=this[gk(0x5c8)],this['copyUniforms'][gk(0x470)][gk(0x372)]=this['renderTargetsHorizontal'][0x0][gk(0x897)],h&&b[gk(0x1c6)]['buffers'][gk(0xa08)][gk(0x89b)](!0x0),this['renderToScreen']?(b['setRenderTarget'](null),this[gk(0x5b0)]['render'](b)):(b[gk(0x4b7)](f),this[gk(0x5b0)][gk(0x181)](b)),b['setClearColor'](this['_oldClearColor'],this['oldClearAlpha']),b[gk(0x604)]=i;}[a0cH(0x727)](b){const gm=a0cH,c=[];for(let d=0x0;d<b;d++)c['push'](0.39894*Math['exp'](-0.5*d*d/(b*b))/b);return new a0u({'defines':{'KERNEL_RADIUS':b},'uniforms':{'colorTexture':{'value':null},'invSize':{'value':new a0l(0.5,0.5)},'direction':{'value':new a0l(0.5,0.5)},'gaussianCoefficients':{'value':c}},'vertexShader':gm(0x2c7),'fragmentShader':gm(0x39f)});}[a0cH(0x273)](b){const gn=a0cH;return new a0u({'defines':{'NUM_MIPS':b},'uniforms':{'blurTexture1':{'value':null},'blurTexture2':{'value':null},'blurTexture3':{'value':null},'blurTexture4':{'value':null},'blurTexture5':{'value':null},'bloomStrength':{'value':0x1},'bloomFactors':{'value':null},'bloomTintColors':{'value':null},'bloomRadius':{'value':0x0}},'vertexShader':'varying\x20vec2\x20vUv;\x0a\x09\x09\x09\x09void\x20main()\x20{\x0a\x09\x09\x09\x09\x09vUv\x20=\x20uv;\x0a\x09\x09\x09\x09\x09gl_Position\x20=\x20projectionMatrix\x20*\x20modelViewMatrix\x20*\x20vec4(\x20position,\x201.0\x20);\x0a\x09\x09\x09\x09}','fragmentShader':gn(0x8c7)});}}function a0a(){const Jw=['invalid\x20block\x20type','\x20m²\x20<span\x20title=\x22移除\x22\x20class=\x22bmv-measure-label-delete\x22>x</span>','isSeparated','setFunc','新相机控制器已启用','isMobile','解压失败:\x20','itemError','magic','EXT_TEXTURE_AVIF','createInterpolant','pressureFn','touchend','isInputMode','gets','sparse','updateOrthographicCamera:\x20el未初始化','[ModelClipperTool]\x20检测到重复的剖切平面,已跳过','rgba(185,\x2028,\x2028,\x200.95)','stencil','CANVAS','addVectors','PAGE_CHANGE_START','defines','timeout','emscripten_notify_memory_growth','basisFormat','directionalLight','Min\x20and\x20max\x20must\x20be\x20finite\x20numbers','pageChangeError','install','rgba(30,\x20136,\x20229,\x200.3)','Malformed\x20buffer\x20data:\x20','delete','updateImagePreview','DOLLY','unbindDocument','--explode','_holdStart','_updateEdgeVisibility','dolly',';\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20input:checked\x20+\x20.slider:before\x20{\x0a\x20\x20\x20\x20\x20\x20transform:\x20translateX(','edgeData','_onMessage','zoomTo','binary','fromLineSegments','outerConeAngle','envmap/','drawImage',',\x20Y:','loadAnimation','保存文件计数失败','round','rotateTo','tempAnchorMarker','high-performance','数据库初始化成功','font','projectionMatrix','开始创建ZipDownloader实例','开始释放场景资源','onDblclick','Element','processOnMove','firstHitOnly','模型信息解析完成','清除缓存过程出错','strength','Failed\x20to\x20create\x20LOD\x20object:','signal','options','从缓存读取失败:\x20','toggle','#C5C8C8','KTX2File','无场景页面,执行视角适应','bufferView','container','applyIntensity','getLayers','wrapS','classList','extensionsUsed','multiplyScalar','切换相机类型','inverse','clientX','lineWidth','near','azimuthAngle','normalized','MSPointerDown','setVisible','backgroundColor','JSON','projectionMatrixInverse','THREE.GLTFLoader:\x20Unsupported\x20itemSize\x20in\x20sparse\x20BufferAttribute.','ArrowRight','dispose','handleSelectionEnd','all','removePass','onmouseenter','no\x20callback','%),自动禁用缓存以避免页面刷新','_width','默认控制快捷键设置完成','onsuccess','_hemiLight','边线解析进度','clearAlpha','textureID','SKIP_GENERATION','toPage','setOpacity','storage','count','intersectObjects','[ModelClipperTool]\x20计算裁剪范围失败:','setPlanePositionByIndex','registerAnimation:\x20animationFunc必须是函数','lists','querySelector','cloneBuffers','showInput','face','createCollection','#606266','isLargeModel','hasFeature','Material\x20is\x20required','clearcoatRoughnessFactor','floor','common','matrixWorld','HIGHLIGHT_OFFSET','display-p3-linear','THREE.GLTFLoader:\x20Invalid\x20plugin\x20found:\x20missing\x20name','该批注没有视角信息','intensity','toString','progressContainer','annotations','destroy','fromWireframeGeometry','COLOR','path','color','applyQuaternion','clearOldCacheUntilSpaceAvailable','Failed\x20to\x20get\x202D\x20context','数据库未初始化,无法获取缓存计数','flatShading','\x22\x20not\x20found','initSpeechRecognition','\x0a\x20\x20\x20\x20\x20\x20background:\x20rgba(255,\x20255,\x20255,\x200.2);\x0a\x20\x20\x20\x20\x20\x20color:\x20white;\x0a\x20\x20\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20font-size:\x2030px;\x0a\x20\x20\x20\x20\x20\x20width:\x2040px;\x0a\x20\x20\x20\x20\x20\x20height:\x2040px;\x0a\x20\x20\x20\x20\x20\x20border-radius:\x2050%;\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20transition:\x20background-color\x200.2s;\x0a\x20\x20\x20\x20\x20\x20flex-shrink:\x200;\x0a\x20\x20\x20\x20','初始化数据库,当前版本:\x20','diffuse','从内存中获取到文件:\x20','checkbox','点击选择第一个面以开始测量','setEnabled','\x20个点,按\x20Enter\x20完成测量','Mesh\x20geometry\x20must\x20have\x20position\x20attributes','_rotateInternal','bits','tool-loading-style','deltaTime','addLevel','KHR_MATERIALS_EMISSIVE_STRENGTH','pluginCallbacks','viewer未初始化','Coudln\x27t\x20find\x20the\x20needed\x20nipple.','isDrawing','恢复批注失败:','删除过期缓存失败:\x20','filename','withCredentials','toggleEffect','364cEAEXq','添加LOD级别','origHeight','拖动绘制线条,松开完成绘制','actives','bottom','activate','tr_point','context','isAxisLocked','hideHelperTip','THREE.GLTFLoader:\x20Ignoring\x20primitive\x20type\x20.extras,\x20','opacity','naturalWidth','TOUCH_ROTATE','NORMAL_ALIGNMENT_THRESHOLD','depthRenderMaterial','isPerspective','camera-controls:\x20`THREE`\x20is\x20undefined.\x20You\x20must\x20first\x20run\x20`CameraControls.install(\x20{\x20THREE:\x20THREE\x20}\x20)`.\x20Check\x20the\x20docs\x20for\x20further\x20information.','beginPath','ZipDownloader','Failed\x20to\x20parse\x20tr_point,\x20using\x20origin','continuousDrawing','dataFormatDescriptor','divideScalar','EngineType','_activePointers','levels','pbrMetallicRoughness','startTool','phi','setDecoderPath','startPoint\x20must\x20be\x20a\x20Vector3\x20instance','callback','refs','shadowColor','workerLoadEdgePromise','compose','blur(10px)','manager','onContextLost','_assignVertexColorSpace','自动跳转到指定场景页面','图层信息已设置','normalMap','iridescenceThicknessMaximum','TOUCH_ZOOM_TRUCK','boolean','detailedModelLoaded','camera-controls\x20is\x20already\x20connected.','assignTexture','Line2','initCssRenderer','createWrappedCallback:\x20callback必须是函数','intersects','bindings','THREE.BufferGeometryUtils.toTrianglesDrawMode():\x20Undefined\x20position\x20attribute.\x20Processing\x20not\x20possible.','showPropertyPanel','parentIsFlex','holdStart','_createAnimationTracks','输入标注文字...','dot3','THREE.GLTFLoader:\x20AVIF\x20required\x20by\x20asset\x20but\x20unsupported.','fromArray','bmv-annotation-label','boxCenter\x20must\x20be\x20a\x20Vector3\x20instance','pageX','renderTargetBright','_getVertexShader','unnamed','envMap','157068iGjspW','创建新的对象存储:\x20','translateY(0px)','MB),需要释放\x20','resizeImage','maxDistance','workerStatus','getClearColor','pixelHeight','autoClearStencil','interpolate_','批注索引无效','getNormalMatrix','measure-adsorb','plane\x20must\x20be\x20a\x20Three.js\x20Plane\x20instance','pending','calculateLookAtTarget','getDFDFlags','attributeTypes','progressBar','EQUAL','Found\x20zombie\x20joystick\x20with\x20ID\x20','easeOutQuad','drag','generateEdge','startMarker','string','transform','Pibit','nodeType','#377ee8','.draggingDampingFactor\x20has\x20been\x20deprecated.\x20use\x20draggingSmoothTime\x20(in\x20seconds)\x20instead.','_collisionTest','环境贴图加载成功','perspective','\x20used.','label','mousemove','catch','default','createAxis','priorityUASTC','RGBA_ETC2_EAC_Format','initializeBasis','dampingFactor','globalCompositeOperation','setTimeout','prefix','lastClickTime','findObjectByPartialName','snapToFaceEdgeOrCorner','truck','_invokeOne','个实例','正交相机不支持框选缩放,请切换到透视相机','TOUCH_DOLLY_ROTATE','downloadSpeed','extra\x20field\x20too\x20long','drawDistanceLine','生成边线样式','Object\x20must\x20be\x20a\x20Three.js\x20Object3D','meshopt_decodeIndexSequence','getEnabled','joints','accessors','获取数据库版本失败','available','edgeMeshCache','currentPoints','lightManager','currentImageUrls','vector','获取缓存大小失败','voiceButton','marker','THREE.LineSegmentsGeometry:\x20applyMatrix()\x20has\x20been\x20renamed\x20to\x20applyMatrix4().','globalClippingEnabled','Stops\x20must\x20be\x20a\x20non-empty\x20array','memory',':pressure','cache','auto','20px','uv1','ZOOM','webkitSpeechRecognition','textBaseline','RGBA_S3TC_DXT5_Format','lineMaterial','stopPropagation','readwrite','removeByIndex','THREE.KTX2Loader:\x09Invalid\x20or\x20unsupported\x20.ktx2\x20file','workerConfig','setTranscoderPath','registerAnimation','没有过期的缓存文件需要清理','measure-snap-point','registerEvent:\x20callback必须是函数','getReader','KHR_MATERIALS_VOLUME','keyup','onTouchCancelRaw','isCompressedTexture','对象名称','setOpacity:\x20设置透明度失败','GetAttribute','clearcoatRoughness','closeButton','matrixWorldInverse','deleteObjectStore','cameraProjectionMatrix','afterRoot','offset_distance','text/javascript','handleSelectionMove','padStart','Missing\x20KTX\x202.0\x20identifier.','initJoystick:\x20size无效,使用默认值100','_initWorker','getBoundingBox','fadeTime','loadMaterial','addShortcut','lockedAxis','13px','animate','_createTexture','Range\x20must\x20be\x20>=\x200\x20and\x20step\x20must\x20be\x20>\x200','EffectComposer.rt1','from','maxCacheSize','fitToBox','let\x20_TranscoderFormat\x20=\x20','onAfterRender','strokeStyle','点击模型上的点开始批注','continuous','shouldLog','setLocked','control','#909399','joystick','transcript','getObject','fileSize','两个面在同一平面上,距离为0,请选择不同的面','已达到最大剖切平面数量:\x20','[ModelClipperTool]\x20无效的索引:\x20','getPixelRatio','material','pan','setClearColor','intersectedObject','rotate','getPlane','batchId','cloneEdgeMesh','plane','lines','wrappedCallback','文件从缓存删除成功:\x20','rgba(55,\x20126,\x20232,\x20','getOrthographicControls','specularIntensityMap','readonly','mimeType','createLinearGradient','anisotropyTexture','front','已清理缓存,但为避免无限循环,跳过自动重试','lineTo','localhost','DFC_EDGE','checkCameraType','shift','selectedPlaneIndex','cross','isContentEditable','blurMaterial','blurTexture3','translateY(-20px)','onMouseDown','camera-controls:\x20fitTo()\x20cannot\x20be\x20used\x20with\x20an\x20empty\x20box.\x20Aborting','nx.png','setBoxInfo','zoomRange:\x20缩放范围失败','4px\x20solid\x20#67c23a','数据库重新初始化异常','innerWidth','sectionBoxHelper','updateHighlightPlane','bmv-message-container','endMarker','workerPool','promise','onTouchEnd','maxNumberOfNipples','dispersion','requestDraw','localToWorld','_lastZoom','restOpacity','Moz','setDRACOLoader','invalid\x20UTF-8\x20data','尺寸标注加载完成','currentSpeed','标注工具已激活\x20-\x20点击模型上的点开始标注','hasFeatureAsync','hudLabels','GLTFLoader解析出错','hideLoading','Worker\x20error:\x20','clearcoatNormalTexture','transcoderPending','engineType','UNKNOWN_ERROR','Matrix4','ktx2Loader','tool-helper-tip','--orbit','satAxes','getWorldDirection','pool','添加实例','isMarkupLine','skinWeight','未知方向:','INFO','_focalOffsetEnd','MANAGER','selectGroup','initDB','🖼️','_updatedLastTime','\x0a\x20\x20\x20\x20\x20\x20align-self:\x20center;\x0a\x20\x20\x20\x20\x20\x20background:\x20rgba(220,\x2038,\x2038,\x200.9);\x0a\x20\x20\x20\x20\x20\x20color:\x20white;\x0a\x20\x20\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20font-size:\x2020px;\x0a\x20\x20\x20\x20\x20\x20width:\x2040px;\x0a\x20\x20\x20\x20\x20\x20height:\x2040px;\x0a\x20\x20\x20\x20\x20\x20border-radius:\x2050%;\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20transition:\x20background-color\x200.2s;\x0a\x20\x20\x20\x20','下一张','Failed\x20to\x20create\x20blob','bmv-measure-label-delete','wrapT','orbitBehavior','_startX','TOUCH_OFFSET','screen','primitiveCache','移除快捷键监听器失败','Invalid\x20scene:\x20must\x20be\x20a\x20Three.js\x20Object3D','getEffectiveFOV','尝试加载模型文件','generateRandomKernelRotations','pointerEvents','up_left','setExtensions','_dataView','_edgeVisible','mouse','cameraNear','setControlSpeed','KHR_DRACO_MESH_COMPRESSION','translateY(0)','--walk','dracoLoader','loadAsync','dragStartPosition','ids','render','selectedIndex','dragToOffset','componentType','perm','normal','addClippingPlaneByPlane','_dollyControlCoord','closestPointToPoint','warning','size','attachEvent','addEffect','_isUserControllingOffset','rgba(244,\x2067,\x2054,\x200.3)','signed','meshCache','hideObject','Eibit','translate(','copy','PARSE_MODEL_INFO','zoomRange','loadTextureImage','function','8px','merge','planeMaterial','ZipDownloaderError','postMessage','缓存功能已禁用,跳过数据库初始化','KHR_texture_transform','eventName','KHR_MATERIALS_DISPERSION','button','data','inputContainer','error_msg','sleep','DT_UINT8','blurTexture2','onmessage','cameraInverseProjectionMatrix','space-between','_getNewPrimitive','captureStackTrace','printGraph','hideTooltip','getBoundingBoxAt','srgb','_listeners','iridescenceThicknessTexture','toPrecision','imageButton','directional','color:\x20#f59e0b;\x20font-weight:\x20bold;','initHelperTipElement','GET','progress-bar','\x0a\x20\x20\x20\x20\x20\x20position:\x20fixed;\x0a\x20\x20\x20\x20\x20\x20top:\x200;\x0a\x20\x20\x20\x20\x20\x20left:\x200;\x0a\x20\x20\x20\x20\x20\x20right:\x200;\x0a\x20\x20\x20\x20\x20\x20bottom:\x200;\x0a\x20\x20\x20\x20\x20\x20background:\x20rgba(0,\x200,\x200,\x200.85);\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20z-index:\x2010001;\x0a\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20','bumpMap','数据库未初始化,尝试初始化后清空缓存','defaultAttributeIDs','side','锁定\x20','removeLast','pivotPoint','updateMeshVisibleByLayer','defineProperty','state','blur(5px)','fromCharCode','setCrossOrigin','perspectiveCamera','px)','bptcSupported','rendererManager','hideByIndices','updateProjectionMatrix','azimuthRotateSpeed','deleteDatabase','_elapsedTime','composer','isArray','removeShortcut:\x20快捷键不存在',']\x20%c[','explosionTool','handleTouchMove','hideInput','remove','transcode','getCurrentIntensity','source-over','refreshByStyle','_createCubicSplineTrackInterpolant','endEndpointMarker','cps','_zoomVelocity','match','updateGuideLine','从\x20zip\x20文件获取边线数据','clearExpiredCache','详细模型加载错误:\x20','translation','toJSON','every','removed\x20','语音识别失败,请重试','getAllSceneNames','meshopt_decodeFilterExp','light_','获取存储配额失败:','_targetVelocity','Texture\x20image\x20is\x20not\x20an\x20ImageBitmap\x20type','按住鼠标拖动绘制线条','setSize','setWithCredentials','addEventListener','tDepth','iPad\x20Simulator','index','currentControls','600','onMouseDownRaw','subVectors','transcoderBinary','initRendererManager:\x20canvas未初始化','sampleUpper','95710eZLjfR','获取到','isAnnotationInViewport','computeBoundsTree','_loadLibrary','distanceToCameraSquared','format','CUBICSPLINE','mesh','createTextNode','getSize','get','getCameraAspectDistance','createUIPanel','parse','缓存不可用,无法获取文件','setLayerVisibility','setupDefaultControls','addEvent:\x20func必须是函数','touchmove','clearAll','iridescenceFactor','删除数据库\x20','.bmv-measure-label-delete','doubleClick','opacity\x200.2s\x20ease,\x20transform\x200.2s\x20ease','_domHandlers_','updateProgress','point','THREE.KTX2Loader:\x20Unknown\x20Basis\x20encoding','specularIntensity','select','substring','shortcuts','type','TRIANGLES','KHR_MESH_QUANTIZATION','toggleCamera','defaults','获取缓存列表失败,无法清理','exitButton','extensions','_indirectBuffer','terminate','headers','transparent','_drawInfo','URL','center','transcoderFormat','faceIndex','restoreOriginalTransparencies','zoomToSelection','draco_wasm_wrapper.js','DecodeArrayToPointCloud','mode','.dampingFactor\x20has\x20been\x20deprecated.\x20use\x20smoothTime\x20(in\x20seconds)\x20instead.','已清除内存中的','rotateSpeed','priorityHDR','renderPass','other','resize:\x20el未初始化','__VERSION','meshopt_decodeVertexBuffer','params','alphaToCoverage','rgba(0,\x200,\x200,\x200.9)','buttons','模型解析后无子对象','weights','开始生成LOD对象','createAxes','边线数据解析完成(旧格式)','dot','_spherical','onEnd','isActive','400px','channelType','EXT_MESHOPT_COMPRESSION','extras','normalizeRotations','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22bmv-annotation-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22bmv-annotation-text\x22>','updateHelperTipPosition','press','checkCacheValidity','latest','kernel','two','objects','坐标轴助手已初始化','unshift','splitAxis','onActivate','boxCenter','getAsFile','stylize','splice','guideLineMaterial','getUint8','fragmentShader','webkitUserSelect','_nextUint16','paste','鼠标拖动','iridescenceThicknessRange','colorPrimaries','roughnessFactor','platform','setY','parser','getAttribute','_thetaVelocity','getCompositeMaterial','read','touches','clampPoint','zIndex','TOUCH_ZOOM','indexOf','resizeHandler','lerp','controlend','yield','action','Progress\x20callback\x20must\x20be\x20a\x20function','plain:','clientHeight','Blur','originalMaterial','mousedown','bmv-file-cache','getParentCount','downloadAndExtract','scrollStart','getMaterialType','show','rgba(0,\x200,\x200,\x20','anisotropyStrength','maxSpeed','The\x20','_zoom0','toUpperCase','handleContinuousAction:\x20方法未完整实现','_pixelRatio','removeEventListener','--pan','clips','_radiusVelocity','相机到包围盒中心的距离无效','setFromPoints','autoSceneIndex','eyeHeight','\x20失败','PLANE_DUPLICATE_THRESHOLD','WEBGL_compressed_texture_astc','maxIntensity','group','TRUCK','fileLoader','distanceToBox','_handlers_','_holding','设置固定轨道行为','清理了\x20','COLOR_0','off','top','_loadNodeShallow','originalSize','getWidth','abortController','markupIndex','_isActive','handleLeftMouseDown','instances','getDependencies','TOUCH_ZOOM_ROTATE','Box3','getDependency','边线数据下载出错','animation_','plane-control-label','images','bvhcast','BVH\x20extension\x20failed\x20to\x20initialize','touchend,\x20touchcancel','KeyT','validate','MSPointerUp','holdIntervalDelay','SpeechRecognition','⚠\x20两个面在同一平面上,距离为0,请选择不同的面','_camera','startPoint','currentPage','refit','varying\x20vec2\x20vUv;\x0a\x09\x09\x09\x09void\x20main()\x20{\x0a\x09\x09\x09\x09\x09vUv\x20=\x20uv;\x0a\x09\x09\x09\x09\x09gl_Position\x20=\x20projectionMatrix\x20*\x20modelViewMatrix\x20*\x20vec4(\x20position,\x201.0\x20);\x0a\x09\x09\x09\x09}','borderColor','distanceToPoint','extendTexture','anisotropy','MAX_IMAGE_SIZE','forEach','has','stringify','computeDirection','相机控制器已启用','attenuationDistance','合并文件数据失败:\x20','kernelRadius','toggleVisible','[ModelClipperTool]\x20sectionBoxGroup\x20未初始化','hasOwnProperty','\x0a\x20\x20\x20\x20\x20\x20\x20\x20position:\x20absolute;\x0a\x20\x20\x20\x20\x20\x20\x20\x20top:\x202px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20left:\x202px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20rgba(0,\x200,\x200,\x200.7);\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20white;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x201px\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x202px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20z-index:\x202;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20inherit;\x0a\x20\x20\x20\x20\x20\x20','4px\x20solid\x20#e6a23c','setFocalOffset','WARN','isMesh','textureCache','createObjectURL','isValid','Request\x20timeout','HOLD_END','initTooltipElement','Camera\x20is\x20required','tangent','详细模型文件未找到:\x20','range','边线数据处理失败:\x20','estimate','--clip','THREE.GLTFLoader:\x20Missing\x20min/max\x20properties\x20for\x20accessor\x20POSITION.','isBufferGeometry','lastModified','_tempVector2','清理过期缓存异常','loadAnnotationsFromData','emit','abs','RGBA_PVRTC_4BPPV1_Format','fixed','getWidth:\x20point必须是Vector3实例','setClearAlpha','releasePrimitive','bold\x2012px\x20\x22Helvetica\x20Neue\x22,\x20Arial,\x20sans-serif','min','\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20gap:\x208px;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20','arrayBuffer','_roots','anchorPoint','WEBGL_compressed_texture_etc','KHR_lights_punctual','domains','Network\x20error:\x20Failed\x20to\x20download\x20file','ny.png','getAnnotations','数据库升级失败','_startY','messages','draco_decoder.wasm','processImageFiles','delayedModels','zipDownloader','renderTarget1','_skip','_nearPlaneCorners','addClippingPlane','restCallback','imageUrls','block','\x20个点,完成距离测量','点选目标截面','THREE.SSAOPass:\x20Unknown\x20output\x20type.',',\x20Z:','autoClearColor','startsWith','getPosition','解压初始化失败','pulseAnimationPhase','requestHeader','multiple','0.0.0','setFromUnitVectors','setIndex','下载失败:\x20','_primitives','primitives','frontPosition','error','assignFinalMaterial','OPAQUE','MAX_VALUE','数据库连接在异步操作期间被关闭,无法保存缓存','语音识别错误:','url','downloadZipFile','renderOrder','plugins','获取缓存表中的所有文件名:\x20','sort','isCSS2DObject','children','setFromMatrix4','_findPointerById','isSkinnedMesh','边线数据解析超时','copyUniforms','aspectRatio','uv2','samplers','toPageCamera','showLoading','未找到文本标注数据','renderTargetsVertical','innerConeAngle','\x0a\x20\x20\x20\x20\x20\x20padding:\x204px\x2010px;\x0a\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20rgba(255,\x20255,\x20255,\x200.2);\x0a\x20\x20\x20\x20\x20\x20background:\x20rgba(255,\x20255,\x20255,\x200.1);\x0a\x20\x20\x20\x20\x20\x20color:\x20#fff;\x0a\x20\x20\x20\x20\x20\x20border-radius:\x203px;\x0a\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20transition:\x20all\x200.2s;\x0a\x20\x20\x20\x20\x20\x20font-family:\x20inherit;\x0a\x20\x20\x20\x20','#EEEEEE','iPad','hemiLight','\x0a\x09\x09uniform\x20highp\x20sampler2D\x20tNormal;\x0a\x09\x09uniform\x20highp\x20sampler2D\x20tDepth;\x0a\x09\x09uniform\x20sampler2D\x20tNoise;\x0a\x0a\x09\x09uniform\x20vec3\x20kernel[\x20KERNEL_SIZE\x20];\x0a\x0a\x09\x09uniform\x20vec2\x20resolution;\x0a\x0a\x09\x09uniform\x20float\x20cameraNear;\x0a\x09\x09uniform\x20float\x20cameraFar;\x0a\x09\x09uniform\x20mat4\x20cameraProjectionMatrix;\x0a\x09\x09uniform\x20mat4\x20cameraInverseProjectionMatrix;\x0a\x0a\x09\x09uniform\x20float\x20kernelRadius;\x0a\x09\x09uniform\x20float\x20minDistance;\x20//\x20avoid\x20artifacts\x20caused\x20by\x20neighbour\x20fragments\x20with\x20minimal\x20depth\x20difference\x0a\x09\x09uniform\x20float\x20maxDistance;\x20//\x20avoid\x20the\x20influence\x20of\x20fragments\x20which\x20are\x20too\x20far\x20away\x0a\x0a\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09#include\x20<packing>\x0a\x0a\x09\x09float\x20getDepth(\x20const\x20in\x20vec2\x20screenPosition\x20)\x20{\x0a\x0a\x09\x09\x09return\x20texture2D(\x20tDepth,\x20screenPosition\x20).x;\x0a\x0a\x09\x09}\x0a\x0a\x09\x09float\x20getLinearDepth(\x20const\x20in\x20vec2\x20screenPosition\x20)\x20{\x0a\x0a\x09\x09\x09#if\x20PERSPECTIVE_CAMERA\x20==\x201\x0a\x0a\x09\x09\x09\x09float\x20fragCoordZ\x20=\x20texture2D(\x20tDepth,\x20screenPosition\x20).x;\x0a\x09\x09\x09\x09float\x20viewZ\x20=\x20perspectiveDepthToViewZ(\x20fragCoordZ,\x20cameraNear,\x20cameraFar\x20);\x0a\x09\x09\x09\x09return\x20viewZToOrthographicDepth(\x20viewZ,\x20cameraNear,\x20cameraFar\x20);\x0a\x0a\x09\x09\x09#else\x0a\x0a\x09\x09\x09\x09return\x20texture2D(\x20tDepth,\x20screenPosition\x20).x;\x0a\x0a\x09\x09\x09#endif\x0a\x0a\x09\x09}\x0a\x0a\x09\x09float\x20getViewZ(\x20const\x20in\x20float\x20depth\x20)\x20{\x0a\x0a\x09\x09\x09#if\x20PERSPECTIVE_CAMERA\x20==\x201\x0a\x0a\x09\x09\x09\x09return\x20perspectiveDepthToViewZ(\x20depth,\x20cameraNear,\x20cameraFar\x20);\x0a\x0a\x09\x09\x09#else\x0a\x0a\x09\x09\x09\x09return\x20orthographicDepthToViewZ(\x20depth,\x20cameraNear,\x20cameraFar\x20);\x0a\x0a\x09\x09\x09#endif\x0a\x0a\x09\x09}\x0a\x0a\x09\x09vec3\x20getViewPosition(\x20const\x20in\x20vec2\x20screenPosition,\x20const\x20in\x20float\x20depth,\x20const\x20in\x20float\x20viewZ\x20)\x20{\x0a\x0a\x09\x09\x09float\x20clipW\x20=\x20cameraProjectionMatrix[2][3]\x20*\x20viewZ\x20+\x20cameraProjectionMatrix[3][3];\x0a\x0a\x09\x09\x09vec4\x20clipPosition\x20=\x20vec4(\x20(\x20vec3(\x20screenPosition,\x20depth\x20)\x20-\x200.5\x20)\x20*\x202.0,\x201.0\x20);\x0a\x0a\x09\x09\x09clipPosition\x20*=\x20clipW;\x20//\x20unprojection.\x0a\x0a\x09\x09\x09return\x20(\x20cameraInverseProjectionMatrix\x20*\x20clipPosition\x20).xyz;\x0a\x0a\x09\x09}\x0a\x0a\x09\x09vec3\x20getViewNormal(\x20const\x20in\x20vec2\x20screenPosition\x20)\x20{\x0a\x0a\x09\x09\x09return\x20unpackRGBToNormal(\x20texture2D(\x20tNormal,\x20screenPosition\x20).xyz\x20);\x0a\x0a\x09\x09}\x0a\x0a\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09float\x20depth\x20=\x20getDepth(\x20vUv\x20);\x0a\x0a\x09\x09\x09if\x20(\x20depth\x20==\x201.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09gl_FragColor\x20=\x20vec4(\x201.0\x20);\x20//\x20don\x27t\x20influence\x20background\x0a\x09\x09\x09\x09\x0a\x09\x09\x09}\x20else\x20{\x0a\x0a\x09\x09\x09\x09float\x20viewZ\x20=\x20getViewZ(\x20depth\x20);\x0a\x0a\x09\x09\x09\x09vec3\x20viewPosition\x20=\x20getViewPosition(\x20vUv,\x20depth,\x20viewZ\x20);\x0a\x09\x09\x09\x09vec3\x20viewNormal\x20=\x20getViewNormal(\x20vUv\x20);\x0a\x0a\x09\x09\x09\x09vec2\x20noiseScale\x20=\x20vec2(\x20resolution.x\x20/\x204.0,\x20resolution.y\x20/\x204.0\x20);\x0a\x09\x09\x09\x09vec3\x20random\x20=\x20vec3(\x20texture2D(\x20tNoise,\x20vUv\x20*\x20noiseScale\x20).r\x20);\x0a\x0a\x09\x09\x09\x09//\x20compute\x20matrix\x20used\x20to\x20reorient\x20a\x20kernel\x20vector\x0a\x0a\x09\x09\x09\x09vec3\x20tangent\x20=\x20normalize(\x20random\x20-\x20viewNormal\x20*\x20dot(\x20random,\x20viewNormal\x20)\x20);\x0a\x09\x09\x09\x09vec3\x20bitangent\x20=\x20cross(\x20viewNormal,\x20tangent\x20);\x0a\x09\x09\x09\x09mat3\x20kernelMatrix\x20=\x20mat3(\x20tangent,\x20bitangent,\x20viewNormal\x20);\x0a\x0a\x09\x09\x09\x09float\x20occlusion\x20=\x200.0;\x0a\x0a\x09\x09\x09\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20KERNEL_SIZE;\x20i\x20++\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09vec3\x20sampleVector\x20=\x20kernelMatrix\x20*\x20kernel[\x20i\x20];\x20//\x20reorient\x20sample\x20vector\x20in\x20view\x20space\x0a\x09\x09\x09\x09\x09vec3\x20samplePoint\x20=\x20viewPosition\x20+\x20(\x20sampleVector\x20*\x20kernelRadius\x20);\x20//\x20calculate\x20sample\x20point\x0a\x0a\x09\x09\x09\x09\x09vec4\x20samplePointNDC\x20=\x20cameraProjectionMatrix\x20*\x20vec4(\x20samplePoint,\x201.0\x20);\x20//\x20project\x20point\x20and\x20calculate\x20NDC\x0a\x09\x09\x09\x09\x09samplePointNDC\x20/=\x20samplePointNDC.w;\x0a\x0a\x09\x09\x09\x09\x09vec2\x20samplePointUv\x20=\x20samplePointNDC.xy\x20*\x200.5\x20+\x200.5;\x20//\x20compute\x20uv\x20coordinates\x0a\x0a\x09\x09\x09\x09\x09float\x20realDepth\x20=\x20getLinearDepth(\x20samplePointUv\x20);\x20//\x20get\x20linear\x20depth\x20from\x20depth\x20texture\x0a\x09\x09\x09\x09\x09float\x20sampleDepth\x20=\x20viewZToOrthographicDepth(\x20samplePoint.z,\x20cameraNear,\x20cameraFar\x20);\x20//\x20compute\x20linear\x20depth\x20of\x20the\x20sample\x20view\x20Z\x20value\x0a\x09\x09\x09\x09\x09float\x20delta\x20=\x20sampleDepth\x20-\x20realDepth;\x0a\x0a\x09\x09\x09\x09\x09if\x20(\x20delta\x20>\x20minDistance\x20&&\x20delta\x20<\x20maxDistance\x20)\x20{\x20//\x20if\x20fragment\x20is\x20before\x20sample\x20point,\x20increase\x20occlusion\x0a\x0a\x09\x09\x09\x09\x09\x09occlusion\x20+=\x201.0;\x0a\x0a\x09\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09occlusion\x20=\x20clamp(\x20occlusion\x20/\x20float(\x20KERNEL_SIZE\x20),\x200.0,\x201.0\x20);\x0a\x0a\x09\x09\x09\x09gl_FragColor\x20=\x20vec4(\x20vec3(\x201.0\x20-\x20occlusion\x20),\x201.0\x20);\x0a\x0a\x09\x09\x09}\x0a\x0a\x09\x09}','showObject','edges','getUint32','400','1px\x20solid\x20rgba(255,\x20255,\x20255,\x200.1)','texture-compression-bptc','初始化IndexedDB失败:\x20','onTouchStartRaw','getUint16','无法创建画布上下文','lockX','[ModelClipperTool]\x20解析平面方程失败:','_dragNeedsUpdate','metallicRoughnessTexture','crosshair','updateModelMaterials','dir\x20dir:','THREE.GLTFLoader:\x20Failed\x20to\x20load\x20buffer\x20\x22','effectComposer','exportVersion','9yaIbmK','makeSafe','loadMesh','</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20','transmissionFactor','metallicFactor','pointerup','THREE.KTX2Loader:\x20.startTranscoding\x20failed','THREE.GLTFLoader:\x20Unexpected\x20light\x20type:\x20','/*\x20worker\x20*/','_malloc','supported','specularColorTexture','bloomTintColors','\x20<span\x20title=\x22删除\x22\x20class=\x22bmv-measure-label-delete\x22>×</span>','updateAllMaterials','LODFactor','移除快捷键失败','上传图片','includes','TRANSLATION','getSpherical','removeShortcut:\x20key无效','setPreset','boxSize','effectManager','now','value','_cameraUp0','视角坐标格式错误','materialHighPassFilter','Mesh','shadowOffsetX','begin','\x20张图片,还可以上传\x20','isSectionBoxActive','nowrap','pointercancel','应用缩放变换到实例','stopTool','hasNegativeScale','EPSILON','setFromSpherical','materials','GLTFLoader异常','_ambientLight','[ModelClipperTool]\x20sectionBox\x20未初始化','infinityDolly','loadModel','getMeasurements','isPerspectiveCamera','magFilter','lerpLookAt','开始初始化Viewer组件','pressure','ready','_viewer','THREE.GLTFLoader:\x20Unknown\x20extension\x20\x22','isMeshPhysicalMaterial','_addNodeRef','unregister','djb2Hash','createNodeAttachment','\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20gap:\x208px;\x0a\x20\x20\x20\x20\x20\x20flex-wrap:\x20wrap;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20padding:\x208px;\x0a\x20\x20\x20\x20','alignmentLine','isMeshStandardMaterial','POSITION',':move','uniform\x20sampler2D\x20tDiffuse;\x0a\x0a\x09\x09uniform\x20vec2\x20resolution;\x0a\x0a\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09vec2\x20texelSize\x20=\x20(\x201.0\x20/\x20resolution\x20);\x0a\x09\x09\x09float\x20result\x20=\x200.0;\x0a\x0a\x09\x09\x09for\x20(\x20int\x20i\x20=\x20-\x202;\x20i\x20<=\x202;\x20i\x20++\x20)\x20{\x0a\x0a\x09\x09\x09\x09for\x20(\x20int\x20j\x20=\x20-\x202;\x20j\x20<=\x202;\x20j\x20++\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09vec2\x20offset\x20=\x20(\x20vec2(\x20float(\x20i\x20),\x20float(\x20j\x20)\x20)\x20)\x20*\x20texelSize;\x0a\x09\x09\x09\x09\x09result\x20+=\x20texture2D(\x20tDiffuse,\x20vUv\x20+\x20offset\x20).r;\x0a\x0a\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09}\x0a\x0a\x09\x09\x09gl_FragColor\x20=\x20vec4(\x20vec3(\x20result\x20/\x20(\x205.0\x20*\x205.0\x20)\x20),\x201.0\x20);\x0a\x0a\x09\x09}','property-content','toFixed','updateUIPanel','#include\x20<common>\x0a\x09\x09\x09\x09varying\x20vec2\x20vUv;\x0a\x09\x09\x09\x09uniform\x20sampler2D\x20colorTexture;\x0a\x09\x09\x09\x09uniform\x20vec2\x20invSize;\x0a\x09\x09\x09\x09uniform\x20vec2\x20direction;\x0a\x09\x09\x09\x09uniform\x20float\x20gaussianCoefficients[KERNEL_RADIUS];\x0a\x0a\x09\x09\x09\x09void\x20main()\x20{\x0a\x09\x09\x09\x09\x09float\x20weightSum\x20=\x20gaussianCoefficients[0];\x0a\x09\x09\x09\x09\x09vec3\x20diffuseSum\x20=\x20texture2D(\x20colorTexture,\x20vUv\x20).rgb\x20*\x20weightSum;\x0a\x09\x09\x09\x09\x09for(\x20int\x20i\x20=\x201;\x20i\x20<\x20KERNEL_RADIUS;\x20i\x20++\x20)\x20{\x0a\x09\x09\x09\x09\x09\x09float\x20x\x20=\x20float(i);\x0a\x09\x09\x09\x09\x09\x09float\x20w\x20=\x20gaussianCoefficients[i];\x0a\x09\x09\x09\x09\x09\x09vec2\x20uvOffset\x20=\x20direction\x20*\x20invSize\x20*\x20x;\x0a\x09\x09\x09\x09\x09\x09vec3\x20sample1\x20=\x20texture2D(\x20colorTexture,\x20vUv\x20+\x20uvOffset\x20).rgb;\x0a\x09\x09\x09\x09\x09\x09vec3\x20sample2\x20=\x20texture2D(\x20colorTexture,\x20vUv\x20-\x20uvOffset\x20).rgb;\x0a\x09\x09\x09\x09\x09\x09diffuseSum\x20+=\x20(sample1\x20+\x20sample2)\x20*\x20w;\x0a\x09\x09\x09\x09\x09\x09weightSum\x20+=\x202.0\x20*\x20w;\x0a\x09\x09\x09\x09\x09}\x0a\x09\x09\x09\x09\x09gl_FragColor\x20=\x20vec4(diffuseSum/weightSum,\x201.0);\x0a\x09\x09\x09\x09}','closeDB','initExplosion','\x20KB/s','resize','iPod\x20Simulator','使用旧版坐标系统(Y和Z互换)','_initDecoder','originalClearColor','addPoint','disposeScene','transmissionTexture','ssaoRenderTarget','初始化配置完成','moduleColor','清除所有','getStoreCount','binded','dollyDragInverted','dashSize','metalness','getIndex','loadTexture','\x20|\x20','inverseBindMatrices','rgba(0,\x200,\x200,\x200.6)','parameters','endPoint','clearBuffer','NOTEQUAL','depthWrite','_needsUpdate','isVisible','无效的背景配置:color属性是必需的','layerManager','getTarget','scenePageManager','getLineSegments','bumpFactor','stroke','isDragging','handleImageUpload','skin','enableBlackWhiteMode','interactiveArea','flat-shading:','pos','_isRunning','explosion','invSize','grad4','colliderMeshes','normalizeSkinWeights','handleMove','constant','缓存读取异常:\x20','step','getPlanePositionByIndex','readBuffer','pop','setLookAt','toolOptions','开始清理\x20','save','num_points','position','vkFormat','camera','getIdentifier','mipmaps','direction','DFC_ROOT_NODE','检查缓存有效性','isBone','HEAPF32','medium','image/webp','listeners','onTouchMove','getAllKeys','#FFFFFF','TRIANGLE_STRIP','isEmpty','loadZipAsync:\x20target不能为空','presets','body','dgzSize','EXT_mesh_gpu_instancing','实例化网格分组完成','GetAttributeByUniqueId','unspecified','边线数据处理失败','shapecast','originalTransforms','数据库初始化失败,缓存已禁用,跳过清空缓存','Gbit','模型位置调整','NORMAL','morphAttributes','maxTouchPoints','blurRenderTarget','info','图片读取失败','\x0a\x20\x20\x20\x20\x20\x20min-width:\x20300px;\x0a\x20\x20\x20\x20\x20\x20max-width:\x20500px;\x0a\x20\x20\x20\x20\x20\x20padding:\x2012px\x2016px;\x0a\x20\x20\x20\x20\x20\x20margin-bottom:\x2010px;\x0a\x20\x20\x20\x20\x20\x20background-color:\x20#fff;\x0a\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20box-shadow:\x200\x204px\x2012px\x20rgba(0,\x200,\x200,\x200.15);\x0a\x20\x20\x20\x20\x20\x20pointer-events:\x20auto;\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20animation:\x20bmv-message-fade-in\x200.3s\x20ease-out;\x0a\x20\x20\x20\x20\x20\x20transition:\x20all\x200.3s\x20ease;\x0a\x20\x20\x20\x20','processed','\x20张图片','initExplosionData','OFFSET','_helperTip','addShortcut:\x20interval无效,使用默认值','navigator','getTreeStructureByPath','texture-compression-etc2','updatePropertyContent','workerLimit','bmv-message-close','PAGE_CHANGE_PROGRESS','originalWorldCenter','isClipped',';\x0a\x20\x20\x20\x20\x20\x20\x20\x20transition:\x20border-color\x200.2s;\x0a\x20\x20\x20\x20\x20\x20','rgba(255,\x20255,\x20255,\x20','onContextRestoredCallback','atan2','instanceDistanceStart','controlstart','getHandler','fog','tableName','恢复视角失败:','Both\x20cube\x20and\x20scene\x20parameters\x20are\x20required','deltaY','iridescenceMap','zoomByNodeName:\x20未找到名称为\x22','labelPosition','revokeObjectURL','drawPreviewLabel','target','setFromNormalAndCoplanarPoint','MASK','_getCameraDirection','far','width\x200.5s','highlightAnnotation','shape','_elementRect','_target0','dollySpeed','setTarget','isRunning','ptr','clearcoatFactor','sheenRoughness','instanceLayers','KHR_MATERIALS_ANISOTROPY','disableBlackWhiteMode','closeAll','mouseButtons','Degree\x20must\x20be\x20a\x20finite\x20number','缓存保存异常:\x20','\x20删除失败','removeShortcut','HOLDING','BLEND','isExtendedTriangle','BYTES_PER_ELEMENT','ontouchstart','clear:\x20场景已清空','getCurrentView','matrixWorldAutoUpdate','circle','.lens','plain','color:\x20#ef4444;\x20font-weight:\x20bold;\x20text-decoration:\x20underline;','restoreVisibility','getCurrentStyleIndex','4px','msTouchAction','html','ACTION','收到未知消息类型','获取缓存大小异常','bind','THREE.DRACOLoader:\x20Unexpected\x20geometry\x20type.','normalize','getX','_isDragging','intersectPlane','初始化快捷键配置失败','pixelDepth','markupTool','RGBA_ASTC_4x4_Format','geometry','fromMesh','__wasm_call_ctors','up_right','zoomByNodeName:\x20缩放至节点失败','_littleEndian','isTexture','Plane\x20must\x20be\x20a\x20Three.js\x20Plane\x20instance','_deltaTime','cameras','scroll','freeze','unit','aspect','set','faces','setOrbitPoint','BC7_M5','tDiffuse','isEnabled','_offset','onDeactivate','DT_UINT16','setPath','_getArrayFromAccessor','down_right','实例\x20','getValueSize','KHR_MATERIALS_UNLIT','uri','previewLabel','addPass','userData','removeFromDom','sub','handleMouseUp','handleMouseMove','_interactiveArea','setXYZ','expandByVector','选择区域太小,请重新框选','setOpacity:\x20opacity必须是0-1之间的数字','linewidth','wheel','Unknown\x20preset:\x20','文件不存在且缓存禁用:\x20','isPointNearStart','px;\x0a\x20\x20\x20\x20\x20\x20bottom:\x20','clearcoatRoughnessTexture','onupgradeneeded','RGBA32','angle','RIGHT','getClosestPointOnLineSegment','_createTextureFrom','onContextLostCallback','drawPolygon','QuotaExceededError','检查缓存有效性失败','click','send','scale','THREE.GLTFLoader:\x20setKTX2Loader\x20must\x20be\x20called\x20before\x20loading\x20KTX2\x20textures','Expected\x20a\x20finite\x20number,\x20got\x20','loaded','box\x20must\x20be\x20a\x20Three.js\x20Box3\x20instance','point1\x20must\x20be\x20a\x20Vector3','blur','content','completeMeasurement','MAX_IMAGES','intersectsTriangle','设置状态更新快捷键失败','THREE.KTX2Loader:\x20Unsupported\x20supercompressionScheme.','dispatchEvent','pointerdown','_lockedPointer','EffectComposer.rt2','totalTime','CSS_CLASS_LOOK_AROUND','isSupported','操作已取消','_sphericalEnd','byteOffset','events','edgeMesh\x20不存在,无法更新边线可见性','Escape','_nextInt32','div','setRenderTarget','uniforms','正交相机不支持第一人称漫游,请切换到透视相机','byteLength','trigger','speedMultiplier','clipper','shadowOffsetY','(重试\x20','forward','textPoint','setRGB','createUniqueName','xmag','#2196F3','DATABASE_ERROR','Radius\x20must\x20be\x20a\x20positive\x20number','getAxisRange','isLineSegments2','数据库删除被阻塞(可能仍有连接未关闭),请刷新页面重试','function\x20a0a(){const\x20C=[\x27339480HnQkco\x27,\x27data\x27,\x27getFloat32\x27,\x27min\x27,\x27271156mJVYby\x27,\x27getInt32\x27,\x27384396fdFakw\x27,\x27floor\x27,\x27197085rHzLOv\x27,\x27positions\x27,\x2746408jxSjyt\x27,\x275iiqmrY\x27,\x27fill\x27,\x271611729IJHxwF\x27,\x271578168qmHVVA\x27];a0a=function(){return\x20C;};return\x20a0a();}function\x20a0b(a,b){const\x20c=a0a();return\x20a0b=function(d,e){d=d-0xec;let\x20f=c[d];return\x20f;},a0b(a,b);}(function(a,b){const\x20z=a0b,c=a();while(!![]){try{const\x20d=-parseInt(z(0xec))/0x1+parseInt(z(0xf7))/0x2+parseInt(z(0xf9))/0x3+parseInt(z(0xf5))/0x4*(-parseInt(z(0xed))/0x5)+parseInt(z(0xf1))/0x6+-parseInt(z(0xef))/0x7+parseInt(z(0xf0))/0x8;if(d===b)break;else\x20c[\x27push\x27](c[\x27shift\x27]());}catch(e){c[\x27push\x27](c[\x27shift\x27]());}}}(a0a,0x28d84),self[\x27onmessage\x27]=a=>{const\x20A=a0b,{buffer:b,chunkSize:chunkSize=0x3*0x400*0x400}=a[A(0xf2)],c=parseBinaryDataInChunks(b,chunkSize);self[\x27postMessage\x27](c);});function\x20parseBinaryDataInChunks(a,b){const\x20B=a0b,c=new\x20DataView(a);let\x20d=0x0;const\x20e=c[\x27getInt32\x27](d,![]);d+=0x4;const\x20f=new\x20Float32Array(e*0x3);for(let\x20l=0x0;l<e;l++){const\x20m=l*0x3;f[m]=c[\x27getFloat32\x27](d,![]),f[m+0x1]=c[B(0xf3)](d+0x4,![]),f[m+0x2]=c[B(0xf3)](d+0x8,![]),d+=0xc;}const\x20g=c[\x27getInt32\x27](d,![]);d+=0x4;const\x20h={\x27positions\x27:new\x20Float32Array(g*0x6),\x27edgeLayers\x27:new\x20Array(g),\x27visibility\x27:new\x20Float32Array(g*0x2)[B(0xee)](0x1)},j=Math[B(0xf8)](b/(0xc+0x8+0x4));let\x20k=0x0;while(k<g){const\x20n=Math[B(0xf4)](j,g-k);for(let\x20o=0x0;o<n;o++){const\x20p=k+o,q=p*0x6,r=p*0x2,s=c[B(0xf6)](d,![])*0x3,t=c[B(0xf6)](d+0x4,![])*0x3;d+=0x8,h[\x27positions\x27][q]=f[s],h[B(0xfa)][q+0x1]=f[s+0x1],h[\x27positions\x27][q+0x2]=f[s+0x2],h[\x27positions\x27][q+0x3]=f[t],h[\x27positions\x27][q+0x4]=f[t+0x1],h[B(0xfa)][q+0x5]=f[t+0x2];const\x20u=c[\x27getInt32\x27](d,![]);d+=0x4;const\x20v=new\x20Uint16Array(u);for(let\x20y=0x0;y<u;y++){v[y]=c[B(0xf6)](d,![]),d+=0x4;}h[\x27edgeLayers\x27][p]=v;const\x20w=c[\x27getInt32\x27](d,![]);d+=0x4+w*0x4;}k+=n,k%(j*0x4)===0x0&&yieldToMainThread();}return\x20h;}function\x20yieldToMainThread(){return\x20new\x20Promise(a=>{setTimeout(a,0x0);});}','pointermove','rotation','baseColorFactor','fixedY','Viewer:\x20许可证验证失败\x20-\x20','left','danger','getContext','vite-plugin-css-injected-by-js','boundingData','数据库可能不存在或无法打开','updateCurrentLine','moveCameraToPosition','blurTexture1','innerHTML','ModelLoader','accessor','sliders-container','loadStartTime','hidePropertyPanel','getZ','model_info.json','cameraConfigured','decodePrimitive','BlurDirectionX','_phiVelocity','swapBuffers','collection','_fileSize','cameraPositioned','needsSwap','shortcutManager','onDestroyed','updateBoxCenter','height-100vh','Invalid\x20unit.\x20Please\x20use\x20\x22m\x22,\x20\x22cm\x22,\x20or\x20\x22mm\x22.','updateGroupLabel','setMeshoptDecoder','lookAtCamera','_createOnRestPromise','zh-CN','instanceColorStart','onBeforeRender','processOnEnd','%),建议清理缓存','roughness','数据库未初始化,无法清理过期缓存','hideAllChildren:\x20提供的对象不是有效的\x20Object3D\x20实例','pageChangeStart','SCENES','interimResults','uv3','Scene\x20is\x20not\x20available','EXT_TEXTURE_WEBP','lookAt','KHR_materials_volume',',无法添加更多剖切面','changedTouches','candidate','resizeCanvas','indices','extractObjectProperties','_tooltip','usage','texture-compression-bc','boundingSphere','push','KeyD','_getNodeRef','setFromMatrixColumn','extendParams','maxRetryCount','texCoord','BasisFormat','meshopt_decodeIndexBuffer','handleMatrixByInstance','decoderConfig','Mibit','cache_load','处理负缩放情况','lineIndex','webGLRenderer','originalEdgeVisible','开始清理过期缓存:\x20','registerEvent:\x20eventName无效','_focalOffset','TOUCH_TRUCK','vertices','onChange','drawPreviewPolygon','场景页面信息已设置','baseColorTexture','setFromAxisAngle','sampleValues','collections','handleWheel','transferFunction','restoreAnnotationView','origWidth','cleanupCache','nMips','tooltip','slidersContainer','minFilter','indexedDB','_getClientRect','438QHUlmS','TOUCH_ZOOM_OFFSET','ROOT_LOD','_isUserControllingDolly','inputElement','unbindEvt','text_annotations','缓存保存失败:\x20','setMatrixAt','animationFrameId','UASTC','data-camera-controls-version','removeTempAnchorMarker','_holdEnd','onProgress','uint16Array','File\x20size\x20must\x20be\x20a\x20non-negative\x20number','layerCount','loadCamera','MB\x20空间','plane-control-value','updateCameraUp','\x20/\x20','#E0F7FF','translateY(-60px)','removeAllEventListeners','setFromVector3','bmv-measure-label','sheenRoughnessFactor','_focalOffsetVelocity','expandByPoint','DEBUG','边线数据统计','EXT_meshopt_compression','createElement','keydown','no\x20stream\x20handler','pixelWidth','dragThreshold','bindNipple','extendMaterialParams','edgeMesh','_viewport','开始加载边线数据','WEBGL_compressed_texture_s3tc','clear:\x20清空场景失败','Mesh\x20must\x20have\x20geometry','isFinite','DT_UINT32','selectFace','vec\x20must\x20be\x20a\x20Vector3\x20instance','registerAnimation:\x20animationFuncAfter必须是函数','开始下载文件','blob','clickPoint','_isMouseDown','copyPass','updateMaterialForClipping','bmv-message-fade-out\x200.3s\x20ease-out','Min\x20must\x20be\x20less\x20than\x20or\x20equal\x20to\x20max','...','getDistanceToFitBox','localClippingEnabled','edgeLayers','length','empty-message','getValue','isLastEnabledPass','_isUserControllingRotate','plane-control-header','absolute','设置正交相机模式','pointerType','project','tan','fitToSphere','#f56c6c','10wkcCGQ','初始化数据库过程出错','fill','准备下载请求','name','开始在主线程加载主要模型','use-credentials','loadScene','touch','groupEnd','interpolation','setPositions','quaternion','ZiB','meshes','添加快捷键失败','getDrawings','All\x20coordinates\x20must\x20be\x20finite\x20numbers','deactivate','removeTimeout','workerSourceURL','prototype','loadZipAsync:\x20progress必须是函数,使用默认空函数','模型加载全部完成','calculateLineCenter','移除快捷键成功','#DBDBDE','passes','draggingSmoothTime','NETWORK_ERROR','createProgressBar','THREE.GLTFLoader:\x20No\x20DRACOLoader\x20instance\x20provided.','uses','\x0a\x0a\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09vUv\x20=\x20uv;\x0a\x0a\x09\x09\x09gl_Position\x20=\x20projectionMatrix\x20*\x20modelViewMatrix\x20*\x20vec4(\x20position,\x201.0\x20);\x0a\x0a\x09\x09}','renderToScreen','dataOnly','invMatrix','_removeAllEventListeners','connect','textureLoader','REPLACE','distanceTo','saveToCache','BC1','createUpDown','fsQuad','computeBoundingBox','updateMousePosition','toLocaleString','multiply','onTouchMoveRaw','平行\x20','vertexColorSpace','clearColor','zoomByNodeName','copyMaterial','matrix','controlSpeed','TOUCH_DOLLY_TRUCK','框选目标区域进行缩放(选区越小,放大倍率越高)','restTimeout','getDistanceToFitSphere','objectIsVisible','lookInDirectionOf','threshold','包围盒中心(center)数值无效','transitionstart','premultiply','工具运行中...(按ESC取消)','blendMaterial','MSPointerMove','ctx','updateOrthographicCamera','zoomRange:\x20perspectiveControls未初始化','handleMouseDown','alignedSatBounds','targets','elevate','TOUCH_SCREEN_PAN','MAX_CLIPPING_PLANES','释放几何体失败','distance','removeGroupByIndex','boundsTree','polarRotateSpeed','uiPanel','getBoundingClientRect','创建ZipDownloader实例失败:\x20','TOUCH_DOLLY_SCREEN_PAN','isUASTC','triangles','Quaternion','contains','applyMatrix4','translateX(20px)','cancel','computeBoundingSphere','specularColorFactor','isMobileDevice','noise4d','clientWidth','MeshBVH:\x20Only\x20BufferGeometries\x20are\x20supported.','getOptions:\x20样式索引超出范围,使用默认样式','0\x202px\x206px\x20rgba(0,\x200,\x200,\x200.2)','getFromCache','renderTargetsHorizontal','flipY','enableTransition','使用新版坐标系统','zone','<span\x20style=\x22color:#ff6b6b;font-weight:bold;\x22>⚠\x20非平行面</span>','derivative-tangents:','addPointToCurrentLine','setFromCamera','normalScale','createManager','needsUpdate','loadNode','drawSelectionBox','OUTPUT','散热器','normalRenderTarget','tagName','fov','onColor','orthographicEffectManager','pointer','renderTarget2','处理网格实例化','autoClear','indirect','drawAlignmentLine','focus','\x20个过期缓存文件','vertexShader','_drawRanges','log','updatePlaneHelper','--wait','offset','generateLOD','isIndexedDBAvailable','SCALE','THREE.KTX2Loader:\x20Unsupported\x20vkFormat.','raycast','img','setEdgeVisible','DRACO_LOADER','overrideMaterial','getPrimitive','_releaseTask','cacheEnabled','toggle-vertical','equals','_truckInternal','\x20is\x20missing\x20URI\x20and\x20bufferView','_domElement','folder','_tempVector','holdEnd','blob:','onend','KHR_LIGHTS_PUNCTUAL','getSupportedProfiles','rest','resize:\x20调整大小失败','ellipsis','destroyed','attenuationColor','drawings','minAzimuthAngle','noise3d','worldToLocal','pass','\x0a\x20\x20\x20\x20.toggle-container\x20{\x0a\x20\x20\x20\x20\x20\x20display:\x20inline-flex;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20margin:\x208px;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20.toggle-vertical\x20{\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20.toggle-label\x20{\x0a\x20\x20\x20\x20\x20\x20margin:\x200\x208px;\x0a\x20\x20\x20\x20\x20\x20font-family:\x20Arial,\x20sans-serif;\x0a\x20\x20\x20\x20\x20\x20font-size:\x20','THREE.DRACOLoader:\x20Unable\x20to\x20re-decode\x20a\x20buffer\x20with\x20different\x20settings.\x20Buffer\x20has\x20already\x20been\x20transferred.','cameraCache','KHR_materials_clearcoat','CSS_CLASS_WALK','resetDirection','warn','bmv-container','style','alphaCutoff','bufferViews','\x20buffer\x20type\x20is\x20not\x20supported.','instanceEnd','16px','clearcoatNormalScale','5px\x2010px','Vector2','responseType',':start','add','KeyQ','break','getOrCreate','_mesh','autoRotate','initialize','isValidPosition','charCodeAt','快捷键回调执行失败','quota','onTouchCancel','边线数据解析失败','viewer','setEdgeColor','_geometryInfo','highlightPlane','_isUserControllingZoom','fillRect','barycoord','%)translate(','无法获取响应读取器','开始动画渲染循环','下载文件\x20','lightmap','background','intensitySlider','缩放操作失败:','removed','naturalHeight','getOptions','resetList','dir:up\x20dir:right\x20dir:down\x20dir:left','缓存已禁用,跳过数据库初始化','updateMessage','(按住Shift锁定轴)','1706eGOEKt','线条组\x20','force','模型信息文件未找到','bindEvt','_zoomEnd','POSITIVE_INFINITY','setW','showAxes','getLevelPriority','RGBAFormat','clock','滚轮设置为缩放(Zoom)操作','intersectsBox','点击模型上的点开始标注,再次点击确定文本位置','handleClick','dragEnd','loadBufferView','buffer','DefaultMaterial','clamp','17691256jxTOpV','setFromBox','overrideVisibility','Normal','initContainer','EVENTS','select-container','white','getStep','图片处理失败:','setZ','showTimeout','expandByObject','beforeAddCallback','blurTexture5','Box3\x20cannot\x20be\x20empty','download','resourcePath','helper','boundaryFriction','ETC1S','originalMaterials','leftCacheBounds','zoom','basic','createNodeMesh','projectToNearestAxis','\x0a\x20\x20\x20\x20\x20\x20uniform\x20vec3\x20color;\x0a\x20\x20\x20\x20\x20\x20uniform\x20vec4\x20cps[','propertyPanel','getCurrentCacheSize','maxPolarAngle','width','--look_around','shadowBlur','invalid\x20zip\x20data','source','未找到尺寸标注数据','nodes','some','KHR_MATERIALS_TRANSMISSION','THREE.GLTFLoader:\x20Missing\x20camera\x20parameters.','KHR_MATERIALS_IOR','eyJ1c2VyIjoiY2xpZW50MSIsImV4cGlyeSI6IicyMDI2LTA0LTI2JyIsImRvbWFpbnMiOiIqIiwidGltZXN0YW1wIjoxNzQ1NTcxNTc0NTE0fXw0NDBlOTNhNQ==','envMapIntensity','dynamic','getMaxIntensity','none','showAllInstances','IndexedDB可用性检查失败','PointCloud','tooltipElement','reject','isLine2','isLineMaterial','SPAN','LineMaterial','MeshBVH:\x20InterleavedBufferAttribute\x20is\x20not\x20supported\x20for\x20the\x20index\x20attribute.','drawingIndex','N/A','progress','Default','加载模型','loadDimensionsFromData','userSelect','配置加载器','normalTexture','300px','ktx2','iPhone','dimensionTool','lockY','ETC1','cacheExpiry','边线数据下载成功','visibleObjects','删除缓存文件失败:\x20','Viewer:\x20容器元素不能为空','fromEdgesGeometry','blending','mouseleave','webkitForce','highlightGroup','deleteFromCache','rgba(220,\x2038,\x2038,\x200.9)','closestPointToSegment','clear','CSS_CLASS_CLIP','ZSTD_findDecompressedSize','ssaoMaterial','setPosition','intersectsSphere','sheenColor','ownerDocument','one','modelInfo','shown','已同步相机位置和目标点','toggle-container\x20label-','rgba(255,\x20255,\x20255,\x200.8)','mesh_','restJoystick','isETC1S','getAll','sectionBoxGroup','updateMatrixWorld','maxAzimuthAngle','cameraSleepListener','isGroup','生成实例','%\x20(','workersResolve','edgeStateSaved','toStringTag','onerror','对象类型','lods','成功从缓存加载','contextmenuEvents','bmv-message-styles','removeEventListener:\x20事件未注册','CUSTOM_AXES','cameraSleep','focalOffset','Depth','clientY','down_left','setBuffer','isSelecting','catchDistance','ssao','detachEvent','pageChangeComplete','--tape_measure_guides','malloc','json','split','mouseup','HOLD_START','offset_vector','18809256QbZOFI','disableBlackWhiteMode:\x20styleManager未初始化','parseEdge','ontimeout','使用位置矩阵处理模型','hits','_getFragmentShader','instanceCount','head','btn\x20btn-bottom','assets','zoomByNodeName:\x20scene未初始化','draggable','zoomByNodeName:\x20nodeName必须是非空字符串','UnsignedByteType','parent','addToDom','UASTC_HDR','Zbit','createOverlayCanvas','detectClickedLine','changeStyle:\x20styleIndex无效,使用默认值0','colorSpace','materialIndex','pressureIntervals','PROXY','启动语音识别失败,请重试','moveTo','Ray\x20must\x20have\x20intersectPlane\x20method','emissive','释放场景资源时发生错误','getSeperableBlurMaterial','toISOString','clearInput','float32Array','minDistance','创建实例化网格,共','cssRenderer','restThreshold','canvas','traverse','iridescenceThicknessMinimum','unlockPointer','加载尺寸标注失败','znear','offsetHeight','domElement','messageElement','setFromMatrixPosition','缓存空间不足,已尝试清理但可能仍不足','depth','rotateAzimuthTo','removeIdentifier','close','Scene\x20is\x20required','checked','measure-point','status','_targetEnd','GetAttributeId','setWorkerCreator','dollyTo','noiseTexture','_disposePointer','downloadEdgeFromUrl','rested','crossVectors','resolveTriangleIndex','清空缓存异常','oldSelect','VERSION_CONFLICT','KHR_materials_sheen','textures','清空缓存失败','markers','rgba(255,\x20255,\x20255,\x200.1)','hideEdge','selectedFaces','draco','className','DEFAULT_LOOK_AHEAD_DISTANCE','applyExplosion','height','entries','_changedDolly','then','setMask','open','isIOSDevice','未选到任何东西,请点击模型上的点','keys','three','Delete','locale','onClick','px;\x0a\x20\x20\x20\x20\x20\x20background-color:\x20white;\x0a\x20\x20\x20\x20\x20\x20transition:\x20.4s;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20input:checked\x20+\x20.slider\x20{\x0a\x20\x20\x20\x20\x20\x20background-color:\x20','itemStart','isFreehandCurrentLine','traverseAncestors','\x22\x20not\x20supported.','边线数据格式不正确','cancelAnimationFrame','Mesh\x20must\x20have\x20BufferGeometry','points','scene','THREE.GLTFLoader:\x20Primitive\x20mode\x20unsupported:\x20','isLineToolDrawing','explosionParts','load','nipples','pointerlockerror','removeElement','requestPointerLock','array','onprogress','basis_transcoder.js','updateBox','config','setLineDash','_intervalId','_lastTime','filter','key','sourceCache','mouseout','boundingBox','setHex','\x0a\x20\x20\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20height:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20object-fit:\x20cover;\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20block;\x0a\x20\x20\x20\x20\x20\x20','clearcoatTexture','开始加载文本标注','mesh\x20must\x20be\x20a\x20Mesh\x20instance','initLights','objectStoreNames','useSharedArrayBuffer','nodeNamesUsed','iridescence','vertical','slice','14px','SCREEN_PAN','mouseover','BasisWorker','Content\x20is\x20required','解压文件失败:\x20','element','cacheName','_directionalLight','intersectTriangle','decoderPending','_nextUint64','multitouch','drawLine','targetNames','cursor','changeStyle:\x20切换样式失败','simplex','setOrbitPointByCamera','third_group','_loadLight','数据库\x20','DEG2RAD','开始下载ZIP文件','setTransparencyMode','highlightLine','addColorStop','guideLine','_nextUint32','maxZoom','itemSize','workerNextTaskID','hidden','iridescenceIor','controls','roundRect','Pbit','_options','onMouseMoveRaw','instanceStart','模型内存优化完成','findIndex','Unknown\x20error','fromBufferAttribute','subarray','find','let\x20_EngineFormat\x20=\x20','orthographicCamera','309qhafvR','loadGeometries','indirectBuffer','theta','下载解压达到最大重试次数','position\x20must\x20be\x20a\x20Vector3','createWrappedCallback','爆炸控制器未初始化','number','mozfullscreenchange','fileInput','cameraManager','onContextmenu','KTX2_LOADER','drawGuideLine','debug','currentGroupId','perspectiveEffectManager','constructor','setRequestHeader','zoomRange:\x20计算的距离无效','transition','MeshBVH:\x20Max\x20depth\x20of\x20','initEffect','个文件','create','union','image','_boundary','buildEl','maxPartIntensity','IndexedDB检测失败:','LineGeometry','unregisterEventListeners','KHR_materials_anisotropy','trim','getOrthographicCamera','leftMouseDown','_zoomInternal','active','pointerId','setPixelRatio','interval','getDfcTreeStructure:\x20key\x20格式不正确,应为\x20\x22key1\x22\x20或\x20\x22key1-key2\x22,实际为\x20\x22','点击添加第\x20','processOn','geometries','KHR_materials_transmission','setFromMatrixScale','loadMainModel','reset','Ybit','animations','removeChild','canvasIsRoate','createPropertyPanel','minPolarAngle','snapPoint','py.png','instance','morphTargetInfluences','needUpdatePivotPoint','nodeCache','sampleLower','删除过期缓存成功:\x20','isVector3','detectSupport','test','highPassUniforms','point2\x20must\x20be\x20a\x20Vector3','getRenderTarget','onMouseMove','setWorkerLimit','Float32Array','recognition','_invokeAll','identifier','handlers','_lastDollyDirection','axis','origin','无法克隆空的边线网格对象','grad3','delta','toLowerCase','isValidHit','bar','byteStride','setValues','texture-compression-etc1','controlsChange','invert','sheenColorTexture','getCurrentSceneName','isImageBitmapLoader','layers','dashOffset','thicknessFactor','Yibit','search','7.0.0','orthographic','iOS\x20设备存储使用率过高\x20(','bmv-message\x20bmv-message-','specularFactor','\x20reached\x20when\x20generating\x20BVH.\x20Consider\x20increasing\x20maxDepth.','text','6px\x200','HalfFloatType','pageXOffset','Spherical','bounds','dashScale','toggleEdgeVisibility','\x0a\x20\x20\x20\x20\x20\x20\x20\x20width:\x2060px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20height:\x2060px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20overflow:\x20hidden;\x0a\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x202px\x20solid\x20','clippingPlanes','output','ROTATE','0.8','dxtSupported','back','文件不在缓存中:\x20','flex','removeShortcut:\x20type无效','resolve','Vector3','init','cameraView','50%','_nextUint8','_taskLoad','metalnessMap','dragStart','updateMorphTargets','apply','getImageTranscodedSizeInBytes','join','planeSelect','percentage','ZSTDDecoder:\x20Await\x20.init()\x20before\x20decoding.','parseAsync','aborted','measurements','suPoint\x20must\x20be\x20an\x20array\x20with\x20at\x20least\x203\x20elements','middle','holding','_visibilityCache','userAgent','toggleShortcuts','_updateOrbitBehavior','controlsEnabled','associations','samples','透明度模式','_base64Decode','onMouseUpRaw','boundaryEnclosesCamera','values','reverse','USE_DASH','touchAction','satBounds','KHR_TEXTURE_TRANSFORM','texture-compression-pvrtc','input','_target','autoClearDepth','lengthSq','addPages','子集数量','setAttribute','getHiddenIndices','直接添加模型到场景','queue','groups','arraybuffer','_position0','handlePaste','isBatchedMesh','_init','line','setOpacity:\x20forceUpdate必须是布尔值','getPerspectiveControls','cssText','TRANSPARENCY','Invalid\x20object:\x20must\x20be\x20a\x20Three.js\x20Object3D','getBarycoord','getY','getClearAlpha','_isUserControllingTruck','POINT_CLOUD','faceCount','loadDimensionAnnotations','orthographicControls','THREE.GLTFLoader:\x20setMeshoptDecoder\x20must\x20be\x20called\x20before\x20loading\x20compressed\x20files','slider-wrapper','random','_markDefs','onMove','right','Event\x20must\x20be\x20MouseEvent\x20or\x20TouchEvent','_height','isMoving','Method\x20not\x20implemented.','THREE.GLTFLoader:\x20Joint\x20\x22%s\x22\x20could\x20not\x20be\x20found.','ASTC_4x4','输入批注内容,按\x20Enter\x20完成,按\x20Esc\x20重新选择点','animationsAfter','webkitURL','shown\x20hidden\x20rested\x20dir\x20plain','max','focalOffset0','[WARNING]\x20:\x20Missing\x20\x22on','texture','supercompressionScheme','isInterpolantFactoryMethodGLTFCubicSpline','appendChild','setTest','px;\x0a\x20\x20\x20\x20\x20\x20color:\x20#333;\x0a\x20\x20\x20\x20\x20\x20z-index:\x20222;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20.label-top\x20.toggle-label,\x0a\x20\x20\x20\x20.label-bottom\x20.toggle-label\x20{\x0a\x20\x20\x20\x20\x20\x20margin:\x204px\x200;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20.switch\x20{\x0a\x20\x20\x20\x20\x20\x20position:\x20relative;\x0a\x20\x20\x20\x20\x20\x20display:\x20inline-block;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20.switch\x20input\x20{\x0a\x20\x20\x20\x20\x20\x20opacity:\x200;\x0a\x20\x20\x20\x20\x20\x20width:\x200;\x0a\x20\x20\x20\x20\x20\x20height:\x200;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20.slider\x20{\x0a\x20\x20\x20\x20\x20\x20position:\x20absolute;\x0a\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20top:\x200;\x0a\x20\x20\x20\x20\x20\x20left:\x200;\x0a\x20\x20\x20\x20\x20\x20right:\x200;\x0a\x20\x20\x20\x20\x20\x20bottom:\x200;\x0a\x20\x20\x20\x20\x20\x20background-color:\x20','KHR_materials_iridescence','destination-out','end\x20','LineSegments2','iridescenceTexture','viewCoordinates','光照管理器已初始化','LineSegments2:\x20\x22Raycaster.camera\x22\x20needs\x20to\x20be\x20set\x20in\x20order\x20to\x20raycast\x20against\x20LineSegments2\x20while\x20worldUnits\x20is\x20set\x20to\x20false.','clipShadows','webglcontextrestored','rows','preload','distanceToTriangle','spot','substr','touchstart','\x0a\x20\x20\x20\x20\x20\x20display:\x20none;\x0a\x20\x20\x20\x20\x20\x20position:\x20relative;\x0a\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20overflow:\x20hidden;\x0a\x20\x20\x20\x20\x20\x20border-radius:\x203px;\x0a\x20\x20\x20\x20\x20\x20background:\x20rgba(255,\x20255,\x20255,\x200.05);\x0a\x20\x20\x20\x20\x20\x20margin:\x208px\x200;\x0a\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20rgba(255,\x20255,\x20255,\x200.1);\x0a\x20\x20\x20\x20','deltaX','valueSize','sin','#96c7d0','serialize','keyValue','\x0a\x20\x20\x20\x20\x20\x20\x20\x20position:\x20absolute;\x0a\x20\x20\x20\x20\x20\x20\x20\x20top:\x202px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20right:\x202px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20rgba(244,\x2067,\x2054,\x200.2);\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20white;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20rgba(244,\x2067,\x2054,\x200.4);\x0a\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20width:\x2018px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20height:\x2018px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x203px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20transition:\x20all\x200.2s;\x0a\x20\x20\x20\x20\x20\x20\x20\x20z-index:\x202;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20inherit;\x0a\x20\x20\x20\x20\x20\x20','node','register','initAxes','PAGE_CHANGE_COMPLETE','preventDefault','_oldClearColor','[PositionCameraTool]\x20定位相机失败:','asset','removeUIPanel','static','sheenRoughnessTexture','object','setFromPointsField','下载超时,请检查网络连接','无效的平面方程:法向量长度为零','pow','processOnStart','crossOrigin','varying\x20vec2\x20vUv;\x0a\x09\x09\x09\x09uniform\x20sampler2D\x20blurTexture1;\x0a\x09\x09\x09\x09uniform\x20sampler2D\x20blurTexture2;\x0a\x09\x09\x09\x09uniform\x20sampler2D\x20blurTexture3;\x0a\x09\x09\x09\x09uniform\x20sampler2D\x20blurTexture4;\x0a\x09\x09\x09\x09uniform\x20sampler2D\x20blurTexture5;\x0a\x09\x09\x09\x09uniform\x20float\x20bloomStrength;\x0a\x09\x09\x09\x09uniform\x20float\x20bloomRadius;\x0a\x09\x09\x09\x09uniform\x20float\x20bloomFactors[NUM_MIPS];\x0a\x09\x09\x09\x09uniform\x20vec3\x20bloomTintColors[NUM_MIPS];\x0a\x0a\x09\x09\x09\x09float\x20lerpBloomFactor(const\x20in\x20float\x20factor)\x20{\x0a\x09\x09\x09\x09\x09float\x20mirrorFactor\x20=\x201.2\x20-\x20factor;\x0a\x09\x09\x09\x09\x09return\x20mix(factor,\x20mirrorFactor,\x20bloomRadius);\x0a\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09void\x20main()\x20{\x0a\x09\x09\x09\x09\x09gl_FragColor\x20=\x20bloomStrength\x20*\x20(\x20lerpBloomFactor(bloomFactors[0])\x20*\x20vec4(bloomTintColors[0],\x201.0)\x20*\x20texture2D(blurTexture1,\x20vUv)\x20+\x0a\x09\x09\x09\x09\x09\x09lerpBloomFactor(bloomFactors[1])\x20*\x20vec4(bloomTintColors[1],\x201.0)\x20*\x20texture2D(blurTexture2,\x20vUv)\x20+\x0a\x09\x09\x09\x09\x09\x09lerpBloomFactor(bloomFactors[2])\x20*\x20vec4(bloomTintColors[2],\x201.0)\x20*\x20texture2D(blurTexture3,\x20vUv)\x20+\x0a\x09\x09\x09\x09\x09\x09lerpBloomFactor(bloomFactors[3])\x20*\x20vec4(bloomTintColors[3],\x201.0)\x20*\x20texture2D(blurTexture4,\x20vUv)\x20+\x0a\x09\x09\x09\x09\x09\x09lerpBloomFactor(bloomFactors[4])\x20*\x20vec4(bloomTintColors[4],\x201.0)\x20*\x20texture2D(blurTexture5,\x20vUv)\x20);\x0a\x09\x09\x09\x09}','18px','rgba(0,\x200,\x200,\x200.3)','dot4','sheenColorFactor','dollyToCursor','ERROR','icon','bindDocument','KHR_MATERIALS_SPECULAR','generateMipmaps','\x0a\x0a\x09\x09uniform\x20float\x20opacity;\x0a\x0a\x09\x09uniform\x20sampler2D\x20tDiffuse;\x0a\x0a\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09vec4\x20texel\x20=\x20texture2D(\x20tDiffuse,\x20vUv\x20);\x0a\x09\x09\x09gl_FragColor\x20=\x20opacity\x20*\x20texel;\x0a\x0a\x0a\x09\x09}','Name\x20must\x20be\x20a\x20string','logger','BC3','drawRange','EXT_texture_avif','raycaster','onfile','_yAxisUpSpace','uint32Array','MIDDLE','DecodeArrayToMesh','keepAlive','title','worldUnits','decode','removeAttribute','rgba(255,\x20255,\x20255,\x200.2)','textarea','fillStyle','globalData','workers','clone','stream\x20finishing','currentIntensity','gapSize','start','put','onTouchStart','THREE.LineSegmentsGeometry.computeBoundingSphere():\x20Computed\x20radius\x20is\x20NaN.\x20The\x20instanced\x20position\x20data\x20is\x20likely\x20to\x20have\x20NaN\x20values.','onload','onAny','clickEvents','itemEnd','smoothTime','thicknessTexture','_addAllEventListeners','getCenter','尺寸标注的起点和终点重合,跳过','success','getElementById','_dollyInternal','NONE','lerpVectors','loadSkin','缓存不可用,无法获取文件名','initCameraControls','aomap','sqrt','transcoderPath','textContent','toWorkingColorSpace','DOWNLOAD_TIMEOUT','_focalOffset0','timeoutId','parentNode','offColor','rightCacheBounds','resetButton','idles','Firefox','bloom','onMouseUp','217096JzYeuT','_free','hide','imagePreviewContainer','setFromBufferAttribute','数据库连接已关闭','files','HTTP\x20','hold','ondata','个解压结果','exports','move','averageSize','href','MB,\x20限制:\x20','visible','°,\x20Z:','开始解压文件','setResponseType','styleManager','charAt','模型最大尺寸计算','truckSpeed','sbrk','updateLight','数据库升级失败:\x20','缓存功能已禁用,跳过清空缓存','_yAxisUpSpaceInverse','parentElement','cancelAnnotation','BIN','onblocked','onError','currentCamera','resultBuffer','LineBasicMaterial:','pointerlockchange','completePolygon','_lastDistance','Invalid\x20scene\x20object','specularmap','selectionStartTime','getLineColorByDirection','extensionsRequired','intersectLine','addByPoint','POINTS','map','contextmenu','draco_decoder.js','TOUCH_DOLLY_OFFSET','_enabled','createNipple','MeshBVH:\x20SharedArrayBuffer\x20is\x20not\x20available.','ZipDownloader实例创建成功','_findPointerByMouseButton','selectAnnotation','compression','boxSize\x20must\x20be\x20a\x20Vector3\x20instance','°,\x20Y:','devicePixelRatio','extract','_updateNearPlaneCorners','11215467iBTHPg','setSceneBackground','isGeometry','bumpScale','applyStyles','gltf','500','target\x20must\x20be\x20a\x20Vector3','onDispose','TOUCH_DOLLY','enabled','call','getPlaneByType','traverseVisible','UnrealBloomPass.bright','requests','KHR_BINARY_GLTF','QUOTA_EXCEEDED','KEEP','getInterpolation','separableBlurMaterials','Raycaster','distanceToSquared','Module','clearDraw','jsk-container','span','resolution','atan','_taskCosts','statusText','获取缓存列表失败','4px\x208px','边线数据解析成功','发送数据到\x20Worker\x20失败','attributes','图片加载失败','renderer','touchcancel','worldToScreen','触摸并拖动','WEBKIT_WEBGL_compressed_texture_pvrtc','compositeMaterial','getTreeStructure','generateSampleKernel','isLine','reduce','_zoom','OUT','Viewer','__FILE_COUNT','isNewScroll','previewPolygon','THREE.BufferGeometryUtils.toTrianglesDrawMode():\x20Geometry\x20already\x20defined\x20as\x20triangles.','tNormal','cloneNode','_state','Radial\x20segments\x20must\x20be\x20an\x20integer\x20>=\x203','GLTFLoader','Mac','message','helperTip','times','包围盒半径计算无效','_createGeometry','restoreView','isOrientedBox','setControl','缓存表\x20[','EngineFormat','<span\x20class=\x22svg\x22><svg\x20style=\x22width:\x2016px\x22\x20t=\x221745992124576\x22\x20class=\x22icon\x22\x20viewBox=\x220\x200\x201024\x201024\x22\x20version=\x221.1\x22\x20xmlns=\x22http://www.w3.org/2000/svg\x22\x20p-id=\x223565\x22\x20width=\x2222\x22\x20height=\x2222\x22><path\x20d=\x22M512\x2073.143l512\x20877.714H0z\x22\x20fill=\x22#dddddd\x22\x20p-id=\x223566\x22></path></svg></span>','beforeRoot','iPhone\x20Simulator','rgba(255,\x20255,\x20255,\x200.5)','iPod','ymag','MB),需要清理缓存','150px','_boundaryEnclosesCamera','TOUCH_ZOOM_SCREEN_PAN','normalMaterial','isWebGPURenderer','layer','instanceMatrix','updateSliderConfig','创建LOD对象','_hasRested','assign','loadImageSource','decoderPath','缓存无效','prepareCollections','originalTransparencies','modelLoader','大模型检测,调整相机远平面','calculateCameraPosition','uuid','objectStore','clearAnnotations','为详细模型生成LOD','getFocalOffset','end','currentDirection','zoomRange:\x20controls未初始化','_dollyToNoClamp','extractFromZip','computeVertexNormals','transaction','sectionBox','buffers','skins','completeCurrentLine',':added','THREE.KTX2Loader:\x20Please\x20update\x20to\x20latest\x20\x22basis_transcoder\x22.\x20\x22msc_basis_transcoder\x22\x20is\x20no\x20longer\x20supported\x20in\x20three.js\x20r125+.','result','_changedZoom','code','update','free','ray','GiB','version','\x0a\x20\x20\x20\x20\x20\x20position:\x20absolute;\x0a\x20\x20\x20\x20\x20\x20bottom:\x2010px;\x0a\x20\x20\x20\x20\x20\x20left:\x2050%;\x0a\x20\x20\x20\x20\x20\x20transform:\x20translateX(-50%);\x0a\x20\x20\x20\x20\x20\x20background:\x20rgba(0,\x200,\x200,\x200.7);\x0a\x20\x20\x20\x20\x20\x20color:\x20white;\x0a\x20\x20\x20\x20\x20\x20padding:\x204px\x2012px;\x0a\x20\x20\x20\x20\x20\x20border-radius:\x2012px;\x0a\x20\x20\x20\x20\x20\x20font-size:\x2014px;\x0a\x20\x20\x20\x20','BlurDirectionY','box','meshoptDecoder','deactivateSectionBox','USE_ALPHA_TO_COVERAGE','--freehand','sphere','innerHeight','toArray','writeBuffer',':removed','perspectiveControls','setX','--label','#9ff555','makeEmpty','triangulateShape','axes','minZoom','helperTipElement','date\x20not\x20in\x20range\x201980-2099','UnrealBloomPass.v','pages','LEFT','scaleFactors\x20must\x20be\x20an\x20array\x20of\x203\x20numbers\x20[x,\x20y,\x20z]','Arial,\x20sans-serif','WORLD_UNITS','文件缓存已过期:\x20','innerText','display','toggle-label','pageYOffset','shiftKey','updateMatrix','formatUserDataValue','enable','radius','defaultAttributeTypes','loadBuffer','src','channel'];a0a=function(){return Jw;};return a0a();}jt[a0cH(0x4e4)]=new a0l(0x1,0x0),jt['BlurDirectionY']=new a0l(0x0,0x1);function Nh(b=0x1,c=0x1,d=0x1,f=null){if(b<=0x0||c<=0x0||d<=0x0)throw new Error('Box\x20dimensions\x20must\x20be\x20positive\x20numbers');const g=new a0am(b,c,d),h=new a0an(g),i=f||new a0i({'color':0x87ceeb});return new a0k(h,i);}function Uh(b=0x1,c=0x1,d=0x1,f=0xff00){if(b<=0x0||c<=0x0||d<=0x0)throw new Error('Box\x20dimensions\x20must\x20be\x20positive\x20numbers');const g=new a0am(b,c,d),h=new a0g({'color':f});return new a0e(g,h);}function Gh(b,c,d=0xff){const gp=a0cH;if(!Array[gp(0x1d4)](b)||b['length']!==0x3||!Array[gp(0x1d4)](c)||c[gp(0x576)]!==0x3)throw new Error('Start\x20and\x20end\x20must\x20be\x20arrays\x20of\x203\x20numbers\x20[x,\x20y,\x20z]');if(b[gp(0x6a3)](j=>!isFinite(j))||c[gp(0x6a3)](j=>!isFinite(j)))throw new Error(gp(0x594));const f=new a0c(...b),g=new a0c(...c),h=new a0j()[gp(0x298)]([f,g]),i=new a0i({'color':d});return new a0ao(h,i);}function zh(b,d,f=[0x0,0x1,0x0],g=0xff00){const gq=a0cH;if(d<=0x0||!isFinite(d))throw new Error('Length\x20must\x20be\x20a\x20positive\x20finite\x20number');const h=b instanceof a0c?b[gq(0x8e8)]():new a0c(...b),i=f instanceof a0c?f['clone']():new a0c(...f);if(i[gq(0x869)]()===0x0)throw new Error('Direction\x20vector\x20cannot\x20be\x20zero');const j=h['clone']()['add'](i[gq(0x456)]()['multiplyScalar'](d)),k=new a0j()['setFromPoints']([h,j]),m=new a0i({'color':g});return new a0ao(k,m);}function J(b={}){const gv=a0cH,c=document['createElement'](gv(0x4b6));c[gv(0x757)]=b['className']||gv(0x3e2);const d=document[gv(0x558)](gv(0x4b6));d['className']='lens',d['innerHTML']=b[gv(0x450)]||'';const f=document['createElement']('div');return f['className']='lens-border',c[gv(0x89a)](d),c['appendChild'](f),b[gv(0x499)]&&c[gv(0x1f6)](gv(0x499),g=>{const gw=gv;b[gw(0x499)]({'event':g,'className':c['className'],'content':b['content']||''},b[gw(0x712)]);}),new lh(c);}function Hh(b,c){const gx=a0cH;if(!b||typeof b[gx(0x730)]!='function')throw new Error(gx(0x87b));if(typeof c!=gx(0x199))throw new Error('Callback\x20must\x20be\x20a\x20function');b['traverse'](d=>{const gy=gx;if(!(d instanceof a0e))return;const f=d;if(!f['material'])return;(Array[gy(0x1d4)](f[gy(0xb87)])?f['material']:[f['material']])['forEach'](c);});}function qh(b,c){const gz=a0cH;if(!b||typeof b['traverse']!='function')throw new Error(gz(0x16e));if(typeof c!=gz(0xb0b))throw new Error(gz(0x8d3));const d=[];return b['traverse'](f=>{const gB=gz;f['name']===c&&d[gB(0x50e)](f);}),d;}function Vh(b=0.1,c=0x3,d=0xc,f){const gC=a0cH;if(b<=0x0||c<=0x0)throw new Error('Radius\x20and\x20height\x20must\x20be\x20positive\x20numbers');if(!Number['isInteger'](d)||d<0x3)throw new Error(gC(0x98a));const g=new a0ap(b,b,c,d);return new a0e(g,f);}function jh(b,c){const gD=a0cH;if(!b||typeof b[gD(0x459)]!=gD(0x199))throw new Error(gD(0x724));if(!c||!(c instanceof a0aq))throw new Error(gD(0x465));const d=new a0c();return b['intersectPlane'](c,d)?d:null;}function Yh(){const gE=a0cH;return'#'+Math['floor'](Math[gE(0x886)]()*0xffffff)['toString'](0x10)[gE(0xb65)](0x6,'0');}function Ya(b){const gF=a0cH;if(!b)throw new Error('Object\x20is\x20required');const c=new a0h()['setFromObject'](b),d=new a0c();return c[gF(0x8f7)](d),d;}function Kh(b){const gG=a0cH;if(!b)throw new Error(gG(0xa78));const c=b[gG(0x941)];if(!c)return console[gG(0x637)]('Material\x20does\x20not\x20have\x20a\x20map\x20texture'),Promise[gG(0x83e)]();const d=c['image'];return d instanceof ImageBitmap?new Promise((f,g)=>{const gH=gG;try{const h=document[gH(0x558)]('canvas'),i=h['getContext']('2d');if(!i){g(new Error(gH(0xa8c)));return;}h[gH(0x69c)]=d[gH(0x69c)],h['height']=d['height'],i[gH(0xa26)](d,0x0,0x0),h['toBlob'](j=>{const gI=gH;if(!j){g(new Error(gI(0x165)));return;}const k=document[gI(0x558)]('a'),m=b[gI(0x587)]||'texture';k['download']=m+'.png',k['href']=URL['createObjectURL'](j),k['style'][gI(0x9e9)]='none',document[gI(0x3f4)]['appendChild'](k),k[gI(0x499)](),document['body']['removeChild'](k),URL['revokeObjectURL'](k[gI(0x91f)]),f();},'image/png');}catch(j){g(j);}}):(console[gG(0x637)](gG(0x1f2)),Promise[gG(0x83e)]());}const Vr=new a0i({'color':0x666666});function Ka(b,c,d=a0cH(0x790)){const gJ=a0cH;if(!b)throw new Error(gJ(0x73e));if(!Array['isArray'](c)||c[gJ(0x576)]===0x0)throw new Error(gJ(0xb3e));const f=document['createElement']('canvas');f[gJ(0x69c)]=d==='vertical'?0x1:0x200,f['height']=d===gJ(0x790)?0x200:0x1;const g=f[gJ(0x4d3)]('2d');if(!g)throw new Error(gJ(0xa8c));const h=d===gJ(0x790)?g[gJ(0xb98)](0x0,0x0,0x0,f['height']):g[gJ(0xb98)](0x0,0x0,f['width'],0x0);c['forEach'](i=>{const gK=gJ;if(typeof i['position']!=gK(0x7ca)||i['position']<0x0||i['position']>0x1)throw new Error('Stop\x20position\x20must\x20be\x20a\x20number\x20between\x200\x20and\x201');h['addColorStop'](i[gK(0x3e0)],new a0G(i['color'])['getStyle']());}),g['fillStyle']=h,g[gJ(0x656)](0x0,0x0,f['width'],f[gJ(0x75a)]),b[gJ(0x65d)]=new a0ar(f);}function Xs(b,f,g,i=new a0l(0x0,0x0),j=0.42,k=0.3){const gL=a0cH;if(!b||typeof b[gL(0x5f4)]!=gL(0x199))throw new Error('Invalid\x20raycaster\x20object');if(!f)throw new Error(gL(0x2e3));if(!Array[gL(0x1d4)](g))throw new Error('Objects\x20must\x20be\x20an\x20array');if(j<0x0||k<=0x0)throw new Error(gL(0xb71));b['setFromCamera'](i,f),b['firstHitOnly']!==void 0x0&&(b[gL(0xa36)]=!0x0);let m=b['intersectObjects'](g);if(m['length']>0x0)return m;const p=[];for(let u=-j;u<=j;u+=k)for(let v=-j;v<=j;v+=k){if(Math[gL(0x2f1)](u)<k/0x2&&Math[gL(0x2f1)](v)<k/0x2)continue;const w=new a0l(i['x']+u,i['y']+v);b['setFromCamera'](w,f);const x=b[gL(0xa6b)](g,!0x0);x[gL(0x576)]>0x0&&p[gL(0x50e)](...x);}return p['sort']((y,z)=>y[gL(0x5d4)]-z[gL(0x5d4)]),p[gL(0x576)]>0x0?p:null;}function Wa(b){const gM=a0cH;if(b['length']!==0x4)throw new Error('平面方程必须是长度为4的数组\x20[a,\x20b,\x20c,\x20d]');const [c,d,f,g]=b,h=new a0c(c,d,f),i=c*c+d*d+f*f;if(i===0x0)throw new Error(gM(0x8c3));return{'point':new a0c(-c*g/ i,-d*g/ i,-f*g/ i),'normal':h};}function Wh(b){const gN=a0cH;if(!Array['isArray'](b)||b[gN(0x576)]<0x3)throw new Error(gN(0x851));return[b[0x0],b[0x2],-b[0x1]];}function di(b){const gO=a0cH;if(!Array[gO(0x1d4)](b)||b[gO(0x576)]<0x3)throw new Error('suPoint\x20must\x20be\x20an\x20array\x20with\x20at\x20least\x203\x20elements');return new a0c(b[0x0],b[0x2],-b[0x1]);}function Jh(b,c,d=0.01){const gP=a0cH;if(!b||!(b instanceof a0c))throw new Error(gP(0x4a0));if(!c||!(c instanceof a0c))throw new Error(gP(0x807));if(typeof d!=gP(0x7ca)||d<0x0)throw new Error('epsilon\x20must\x20be\x20a\x20non-negative\x20number');return Math['abs'](b['x']-c['x'])<=d&&Math['abs'](b['y']-c['y'])<=d&&Math['abs'](b['z']-c['z'])<=d;}function Xh(b){const gQ=a0cH;if(!b||!(b instanceof a0c))throw new Error(gQ(0x568));const c=Math[gQ(0x2f1)](b['x']),d=Math['abs'](b['y']),f=Math[gQ(0x2f1)](b['z']);return c>d&&c>f?'x':d>f?'y':'z';}function Ja(b){if(!b||!(b instanceof a0h))throw new Error('box\x20must\x20be\x20a\x20Three.js\x20Box3\x20instance');if(b['isEmpty']())throw new Error('Box3\x20cannot\x20be\x20empty');const {min:c,max:d}=b;return{'left':new a0aq(new a0c(0x1,0x0,0x0),-c['x']),'right':new a0aq(new a0c(-0x1,0x0,0x0),d['x']),'bottom':new a0aq(new a0c(0x0,0x1,0x0),-c['y']),'top':new a0aq(new a0c(0x0,-0x1,0x0),d['y']),'front':new a0aq(new a0c(0x0,0x0,0x1),-c['z']),'back':new a0aq(new a0c(0x0,0x0,-0x1),d['z'])};}function $h(b,d,i){const gR=a0cH;if(!b||!(b instanceof a0c))throw new Error(gR(0xac9));if(!d||!(d instanceof a0c))throw new Error('endPoint\x20must\x20be\x20a\x20Vector3\x20instance');const {color:j=0xaaaaaa,lineWidth:k=0x2,opacity:v=0.8,arrowSize:z=0.2,resolution:F=new a0l(window['innerWidth'],window[gR(0x9d3)])}=i||{},H=new a0c()['subVectors'](d,b)[gR(0x456)](),L=b['distanceTo'](d),N=new a0c()[gR(0x1fd)](d,H['clone']()['multiplyScalar'](z));if(L-z<=0x0){const a0=new a0c(0x0,0x1,0x0),a1=new a0c()[gR(0x1fd)](d,a0[gR(0xa49)](z)),a2=new a0c(0x1,0x0,0x0);new a0c()[gR(0xa0a)](a1,a2[gR(0xa49)](z*0.7)),new a0c()[gR(0xa0a)](a1,a2['multiplyScalar'](-z*0.7));const a3=[a1['x'],a1['y'],a1['z'],d['x'],d['y'],d['z'],a1['x'],a1['y'],a1['z'],d['x'],d['y'],d['z'],a1['x'],a1['y'],a1['z'],d['x'],d['y'],d['z']],a4=new Ae();a4[gR(0x58e)](a3);const a5=new ne({'color':j,'linewidth':k,'opacity':v,'transparent':v<0x1,'resolution':F});return new de(a4,a5);}const R=new a0c(-H['y'],H['x'],0x0)[gR(0x456)]();R[gR(0x869)]()===0x0&&R[gR(0x46c)](0x1,0x0,0x0),new a0c()[gR(0xa0a)](N,R['clone']()['multiplyScalar'](z*0.7)),new a0c()[gR(0xa0a)](N,R['clone']()[gR(0xa49)](-z*0.7));const S=[b['x'],b['y'],b['z'],N['x'],N['y'],N['z'],N['x'],N['y'],N['z'],d['x'],d['y'],d['z'],N['x'],N['y'],N['z'],d['x'],d['y'],d['z']],T=new Ae();T['setPositions'](S);const U=new ne({'color':j,'linewidth':k,'opacity':v,'transparent':v<0x1,'resolution':F});return new de(T,U);}function Xa(b,d,f,g={}){const gS=a0cH;if(!b||!(b instanceof a0aq))throw new Error(gS(0x465));if(d<=0x0||f<=0x0)throw new Error('Width\x20and\x20height\x20must\x20be\x20positive\x20numbers');const h=new a0as(d,f),i=new a0g({'color':g['color']??0x654321,'side':g['side']??a0at,'transparent':!0x0,'opacity':g['opacity']??0.2}),j=new a0e(h,i),k=b['normal'][gS(0x8e8)]()['normalize']();j['quaternion'][gS(0x31d)](new a0c(0x0,0x0,0x1),k);const m=-b['constant'];return j['position']['copy'](k[gS(0xa49)](m)),j;}function $a(b,d){const gT=a0cH;if(!b||!b['isMesh'])throw new Error('mesh\x20must\x20be\x20a\x20Mesh\x20instance');if(!Array['isArray'](d)||d['length']!==0x3)throw new Error(gT(0x9e4));if(d['some'](h=>!isFinite(h)||h===0x0))throw new Error('All\x20scale\x20factors\x20must\x20be\x20finite\x20non-zero\x20numbers');if(!b[gT(0x45e)]||!b['geometry'][gT(0x974)][gT(0x3e0)])throw new Error(gT(0xa99));const f=b['geometry'][gT(0x8e8)](),g=f[gT(0x974)][gT(0x3e0)];for(let h=0x0;h<g['count'];h++){const i=g['getX'](h)*d[0x0],j=g['getY'](h)*d[0x1],k=g[gT(0x4e0)](h)*d[0x2];g[gT(0x484)](h,i,j,k);}f[gT(0x9bb)](),f['attributes'][gT(0x3e0)]['needsUpdate']=!0x0,b['geometry']&&b['geometry'][gT(0xa58)](),b[gT(0x45e)]=f,b[gT(0x45e)][gT(0x5e3)](),b[gT(0x45e)]['computeBoundingBox']();}function jr(b){const gU=a0cH;if(!Array[gU(0x1d4)](b)||b['length']!==0x10)throw new Error('Transform\x20must\x20be\x20an\x20array\x20of\x2016\x20numbers');if(b['some'](h=>!isFinite(h)))throw new Error('All\x20matrix\x20values\x20must\x20be\x20finite\x20numbers');const c=new a0m();c['set'](b[0x0],b[0x4],b[0x8],b[0xc],b[0x1],b[0x5],b[0x9],b[0xd],b[0x2],b[0x6],b[0xa],b[0xe],b[0x3],b[0x7],b[0xb],b[0xf]);const d=new a0c(),f=new a0au(),g=new a0c();return c['decompose'](d,f,g),{'position':d,'quaternion':f,'scale':g,'matrix':c};}function Za(b){const gW=a0cH,c={};return b['forEach'](d=>{const gV=a0b,{scale:f}=jr(d[gV(0xb0c)]),g=f['x'],h=f['y'],i=f['z'],j={...d,'scaleSign':{'x':g<0x0?-0x1:0x1,'y':h<0x0?-0x1:0x1,'z':i<0x0?-0x1:0x1},'hasNegativeScale':g<0x0||h<0x0||i<0x0},k=[g,h,i][gV(0x84a)]('|');c[k]||(c[k]=[]),c[k][gV(0x50e)](j);}),Object[gW(0x85f)](c);}function Zh(b){const gX=a0cH;b['userData'][gX(0x437)]||(b[gX(0x47e)][gX(0x437)]=new Array(b['count'])),b[gX(0x47e)]['originalTransforms']||(b['userData']['originalTransforms']=new Array(b['count']));const c=new a0m();b[gX(0x211)]=function(d,f){const gY=gX;for(let g=0x0;g<this[gY(0xa6a)];g++)if((this[gY(0x47e)][gY(0x437)][g]||[])[gY(0x36a)](d)){const h=this[gY(0x47e)]['originalTransforms'][g];if(!h)continue;const i=f?h['scale']:new a0c(0x0,0x0,0x0);c[gY(0xace)](h['position'],h[gY(0x58f)],i),this['setMatrixAt'](g,c);}this[gY(0x9a4)][gY(0x5f7)]=!0x0;},b['showAllInstances']=function(){const gZ=gX;for(let d=0x0;d<this[gZ(0xa6a)];d++){const f=this[gZ(0x47e)]['originalTransforms'][d];if(!f){console[gZ(0x637)](gZ(0x478)+d+'\x20缺少原始变换数据');continue;}c[gZ(0xace)](f['position'],f[gZ(0x58f)],f['scale']),this['setMatrixAt'](d,c);}this[gZ(0x9a4)]['needsUpdate']=!0x0;};}function eA(b,i,j={}){const h0=a0cH;if(!b)throw new Error(h0(0x796));if(i&&!(i instanceof a0c))throw new Error('Position\x20must\x20be\x20a\x20Vector3\x20instance');try{const k=b[h0(0x8e8)](),{userData:m,name:v}=k,w=new a0h()['setFromObject'](k);w['isEmpty']()&&console['warn']('Content\x20bounding\x20box\x20is\x20empty,\x20using\x20default\x20size');const x=w[h0(0x20b)](new a0c()),y=Math['max'](x['x'],x['y'],x['z'])||0x1;let z=new a0c();if(i)z=i;else{if(m?.['tr_point']&&Array['isArray'](m[h0(0xab0)]))try{z=di(m[h0(0xab0)]);}catch(E){console[h0(0x637)](h0(0xabe),E);}}const B=new a0av();B['name']='ROOT_LOD_'+(v||h0(0xaef)),B[h0(0x3e0)]['copy'](z),B['addLevel'](k,y);try{let F;if(k['name']===h0(0x721))F=k['clone'](),F[h0(0x587)]='';else{const R=[Math[h0(0x894)](x['x'],0.1),Math['max'](x['y'],0.1),Math['max'](x['z'],0.1)];F=Kr(R,j[h0(0xb49)]||Vr);}const H=w[h0(0x8f7)](new a0c());F[h0(0x3e0)][h0(0x195)](H);const L=j[h0(0x367)]??0xf;if(L<=0x0)throw new Error('LODFactor\x20must\x20be\x20positive');const N=y*L*0x3;B['addLevel'](F,N);}catch(S){console['warn']('Failed\x20to\x20create\x20LOD\x20wireframe\x20model:',S);}return B;}catch(T){console['error'](h0(0xa3a),T);const U=new a0av();return i&&U['position'][h0(0x195)](i),U['addLevel'](b,0x0),U;}}function ec(b){const h1=a0cH;b&&(b[h1(0x941)]&&(b['map']['colorSpace']='srgb'),b['color']['set'](0xeeeeee),b['emissiveMap']&&(b['emissiveMap'][h1(0x71e)]=h1(0x1b2)),b['needsUpdate']=!0x0);}function tA(b,c){const h2=a0cH;b[h2(0x730)](d=>{const h3=h2;if(!(d instanceof a0e))return;const f=d,g=f['material'];g&&(f[h3(0x45e)]&&typeof f[h3(0x45e)][h3(0x204)]==h3(0x199)&&f['geometry']['computeBoundsTree'](),c?c(g):ec(g));});}function tc(b,d={}){const h4=a0cH;if(!b)return{'boundingBox':new a0h(new a0c(0x0,0x0,0x0),new a0c(0x0,0x0,0x0)),'boxCenter':new a0c(0x0,0x0,0x0),'boxSize':new a0c(0x0,0x0,0x0)};if(typeof b[h4(0x730)]!='function')throw new Error('Content\x20must\x20be\x20a\x20Three.js\x20Object3D\x20with\x20traverse\x20method');const {skipInstancedMesh:f=!0x0,verbose:g=!0x1}=d,h=new a0h();let i=!0x1;if(b[h4(0x730)](m=>{const h5=h4;if(!(f&&m instanceof a0aw)&&(m instanceof a0e||m instanceof a0ao)){const p=m;if(!p['geometry']){g&&console['warn']('Object\x20has\x20no\x20geometry',m);return;}p['geometry'][h5(0x785)]||p[h5(0x45e)]['computeBoundingBox'](),p[h5(0x45e)]['boundingBox']&&!p['geometry'][h5(0x785)]['isEmpty']()?(m['updateMatrixWorld'](!0x0),h[h5(0x689)](m),i=!0x0):g&&console[h5(0x637)]('Object\x20geometry\x20bounding\x20box\x20is\x20invalid',m);}}),!i||h[h4(0x3f1)]())return g&&console['warn']('No\x20valid\x20geometry\x20objects\x20found\x20for\x20bounding\x20box\x20calculation'),{'boundingBox':new a0h(new a0c(0x0,0x0,0x0),new a0c(0x0,0x0,0x0)),'boxCenter':new a0c(0x0,0x0,0x0),'boxSize':new a0c(0x0,0x0,0x0)};const j=h[h4(0x8f7)](new a0c()),k=h['getSize'](new a0c());return{'boundingBox':h,'boxCenter':j,'boxSize':k};}function iA(b){const h6=a0cH;if(!b||!b[h6(0x2dc)])throw new Error('mesh\x20must\x20be\x20a\x20Mesh\x20instance');if(!b[h6(0x45e)]||!b[h6(0x45e)]['isBufferGeometry'])throw new Error(h6(0x76e));if(!b['geometry']['attributes']['position'])throw new Error(h6(0xa99));b['updateMatrixWorld'](!0x0);const c=b['matrixWorld'],d=new a0c(0x0,0x0,0x1)['applyNormalMatrix'](new a0ax()[h6(0x331)](c))['normalize'](),f=b['geometry']['attributes']['position'];if(f['count']===0x0)throw new Error('Mesh\x20geometry\x20must\x20have\x20at\x20least\x20one\x20vertex');const g=new a0c(f[h6(0x457)](0x0),f[h6(0x87d)](0x0),f['getZ'](0x0))[h6(0x5e0)](c),h=-d['dot'](g);return new a0aq(d,h);}function ic(b,d){const h7=a0cH;if(!b||!(b instanceof a0h))throw new Error(h7(0x49f));if(!d||!(d instanceof a0aq))throw new Error(h7(0xaff));if(b['isEmpty']())throw new Error(h7(0x68c));const {min:f,max:g}=b,i=[new a0c(f['x'],f['y'],f['z']),new a0c(f['x'],f['y'],g['z']),new a0c(f['x'],g['y'],f['z']),new a0c(f['x'],g['y'],g['z']),new a0c(g['x'],f['y'],f['z']),new a0c(g['x'],f['y'],g['z']),new a0c(g['x'],g['y'],f['z']),new a0c(g['x'],g['y'],g['z'])];let j=Number[h7(0x66e)],k=Number['NEGATIVE_INFINITY'];const m=d['normal']['clone']()[h7(0x456)]();for(const p of i){const u=m[h7(0x24b)](p);j=Math[h7(0x2f8)](j,u),k=Math[h7(0x894)](k,u);}return{'min':-k,'max':-j};}function sA(b,c,d,f=0x1){const h8=a0cH;if(!b||!(b instanceof a0c))throw new Error(h8(0x7c7));if(!c||!(c instanceof a0c))throw new Error(h8(0x958));if(!isFinite(d)||d<=0x0)throw new Error('aspect\x20must\x20be\x20a\x20positive\x20finite\x20number');if(!isFinite(f))throw new Error('scale\x20must\x20be\x20a\x20finite\x20number');if(d<0x1){const g=b['x']-c['x'],h=b['y']-c['y'],i=b['z']-c['z'];return new a0c(c['x']+g*f,c['y']+h*f,c['z']+i*f);}return b['clone']();}function Yr(b,c){const h9=a0cH;if(!b||!b['isMesh'])throw new Error(h9(0x78a));if(!c||!(c instanceof a0c))throw new Error('targetPoint\x20must\x20be\x20a\x20Vector3');if(!b['geometry'])throw new Error(h9(0x564));b['geometry'][h9(0x785)]||b[h9(0x45e)][h9(0x5b1)]();const d=new a0c();b[h9(0x45e)]['boundingBox'][h9(0x8f7)](d);const f=new a0c()['copy'](c)['sub'](b[h9(0x717)]?b['parent'][h9(0x62f)](d[h9(0x8e8)]()):d);return b[h9(0x3e0)]['copy'](f),{'localCenter':d,'newPosition':f,'targetPoint':c};}function sc(i,j,k={}){const hb=a0cH;if(!i||typeof i[hb(0x3f1)]!='function'||typeof i['getCenter']!='function'||typeof i['getSize']!='function')return console['error']('无效的\x20boundingBox\x20对象:缺少必要方法(isEmpty/getCenter/getSize)'),{'near':0.01,'far':0x2710};if(!j||!j['position']||typeof j[hb(0x3e0)][hb(0x5ac)]!='function')return console['error']('无效的\x20camera\x20对象:缺少\x20position\x20属性或\x20distanceTo\x20方法'),{'near':0.01,'far':0x2710};const m={'padding':0.3,'minNear':0.01,'maxFar':0x1a0a,'minFarNearRatio':1.1,'maxFarNearRatio':0x4e20,'farExtension':1.2},{padding:v,minNear:w,maxFar:x,minFarNearRatio:y,maxFarNearRatio:z,farExtension:B}={...m,...k};if(i['isEmpty']())return console['warn']('包围盒为空,使用安全默认值'),{'near':w,'far':Math['max'](0x1f4,x)};const E=new a0c(),F=new a0c();if(i['getCenter'](E),i[hb(0x20b)](F),isNaN(E['x'])||isNaN(E['y'])||isNaN(E['z']))return console['error'](hb(0x5c4)),{'near':w,'far':Math[hb(0x894)](0x1f4,x)};if(isNaN(F['x'])||isNaN(F['y'])||isNaN(F['z']))return console['error']('包围盒尺寸(size)数值无效'),{'near':w,'far':Math[hb(0x894)](0x1f4,x)};const H=j[hb(0x3e0)]['distanceTo'](E);if(isNaN(H)||H<0x0)return console[hb(0x323)](hb(0x297),H),{'near':w,'far':Math[hb(0x894)](0x1f4,x)};const L=Math[hb(0x894)](typeof v==hb(0x7ca)?v:0.3,H*0.1),N=F[hb(0x576)]()*0.5;if(isNaN(N))return console['error'](hb(0x990),F),{'near':w,'far':Math[hb(0x894)](0x1f4,x)};let R=Math['max'](H-N*(0x1+L),w);R=Math[hb(0x2f8)](R,0.5),R=Math['min'](R,H*0.5),R=isNaN(R)?w:R;let S=H+N*(0x1+L)*B;return S=Math['max'](S,0x1f4),S=Math[hb(0x2f8)](S,x),S=isNaN(S)?x:S,S=Math['max'](S,R*y),S/R>z&&(R=Math['max'](S/z,w),R=Math['min'](R,0.5)),S<=R&&(S=Math['max'](R*y,0x1f4)),R=Math[hb(0x2f8)](R,0.5),S=Math[hb(0x894)](S,0x1f4),{'near':R,'far':S};}function Kr(b,c=Vr){if(!Array['isArray'](b)||b['length']!==0x3)throw new Error('Size\x20must\x20be\x20an\x20array\x20of\x203\x20numbers\x20[x,\x20y,\x20z]');const [d,f,g]=b;if(d<=0x0||f<=0x0||g<=0x0)throw new Error('All\x20dimensions\x20must\x20be\x20positive\x20numbers');const h=new a0am(d,f,g),i=new a0an(h);return new a0k(i,c);}function nc(b,c={}){const hf=a0cH;if(!b||typeof b[hf(0x730)]!='function')throw new Error(hf(0xb2d));const {color:d=0x87ceeb,lineWidth:f=0x1}=c,g=new a0ay();return b[hf(0x730)](i=>{const hj=hf;if(i instanceof a0e){const j=i;if(!j['geometry'])return;const k=new a0an(j['geometry']),m=new a0i({'color':d,'linewidth':f,'transparent':!0x0,'opacity':0.8}),p=new a0k(k,m);p[hj(0x3e0)]['copy'](j['position']),p['quaternion'][hj(0x195)](j['quaternion']),p['scale']['copy'](j[hj(0x49b)]),p['userData']={...j[hj(0x47e)]},p['name']='wireframe_'+(j['name']||hj(0x209)),g[hj(0x644)](p);}}),g['position'][hf(0x195)](b[hf(0x3e0)]),g[hf(0x58f)]['copy'](b['quaternion']),g['scale'][hf(0x195)](b[hf(0x49b)]),g[hf(0x587)]='wireframe_group_'+(b[hf(0x587)]||'object'),g;}function rc(b,c,d){const hk=a0cH;return c&&d(c,hk(0x826))?new a0c(...b):new a0c(b[0x0],b[0x2],-b[0x1]);}function oc(b){const hn=a0cH;b['traverse'](f=>{const hm=a0b;f[hm(0x2dc)]&&f[hm(0x45e)]&&f['geometry'][hm(0x5b1)]();});const c=new a0h()['setFromObject'](b),d=new a0c();return c[hn(0x8f7)](d),b[hn(0x730)](f=>{const hp=hn;if(f['isMesh']&&f[hp(0x45e)]){const g=f['geometry']['getAttribute']('position');if(g){for(let h=0x0;h<g[hp(0xa6a)];h++){const i=g['getX'](h)-d['x'],j=g['getY'](h)-d['y'],k=g[hp(0x4e0)](h)-d['z'];g['setXYZ'](h,i,j,k);}g['needsUpdate']=!0x0,f[hp(0x45e)][hp(0x5b1)]();}}}),b[hn(0x730)](f=>{const hq=hn;f['isMesh']&&f['geometry']&&(f[hq(0x45e)]['computeBoundingBox'](),f['geometry'][hq(0x785)]&&f[hq(0x45e)]['computeBoundingSphere']());}),d;}function ac(b){const hv=a0cH;if(!b)return;b['boundingBox']||b[hv(0x5b1)](),b['boundingSphere']||b[hv(0x5e3)]();const c=b[hv(0x271)](hv(0x3e0));c&&(c[hv(0x5f7)]=!0x1);}function cc(b){const hw=a0cH;if(!b)return null;const c=[b[hw(0x223)],b['color']?.['getHex'](),b[hw(0x941)]?.[hw(0x9b1)],b[hw(0x4f9)],b['metalness'],b[hw(0x22e)],b[hw(0xab5)]][hw(0x781)](d=>d!==void 0x0);return c[hw(0x576)]>0x0?c['join']('|'):null;}function lc(b,d,f){const hx=a0cH,g=new a0c()['subVectors'](f,d),h=new a0c()['subVectors'](b,d),i=g[hx(0x576)](),j=g[hx(0x456)]();let k=h[hx(0x24b)](j);return k=Math['max'](0x0,Math[hx(0x2f8)](k,i)),new a0c()[hx(0x195)](d)['add'](j['multiplyScalar'](k));}function hc(i){const hy=a0cH,j=i['length'];if(j<0x3)return 0x0;const k=i[0x0],m=i[0x1],u=i[0x2],v=new a0c()[hy(0x1fd)](m,k),w=new a0c()['subVectors'](u,k),x=new a0c()[hy(0x74a)](v,w)['normalize'](),y=new a0c(0x1,0x0,0x0);Math[hy(0x2f1)](y['dot'](x))>0.9&&y[hy(0x46c)](0x0,0x1,0x0),y[hy(0xba2)](x)['normalize']();const z=new a0c()['crossVectors'](x,y)['normalize'](),B=[];i[hy(0x2cd)](F=>{const hz=hy,H=new a0c()['subVectors'](F,k);B[hz(0x50e)]({'u':H['dot'](y),'v':H[hz(0x24b)](z)});});let E=0x0;for(let F=0x0;F<j;F++){const H=(F+0x1)%j,L=B[F],N=B[H];E+=L['u']*N['v']-N['u']*L['v'];}return Math[hy(0x2f1)](E)*0.5;}function Ac(b){const hB=a0cH,c=new a0c(0x0,0x0,0x0),d=b['length'];return b[hB(0x2cd)](f=>{const hC=hB;c[hC(0x644)](f);}),c[hB(0xac1)](d);}function nA(b){const hD=a0cH;if(b[hD(0x576)]<0x3)return!0x0;const f=b[0x0],i=b[0x1],j=b[0x2],k=new a0c()[hD(0x1fd)](i,f),m=new a0c()[hD(0x1fd)](j,f),p=new a0c()[hD(0x74a)](k,m)['normalize'](),v=new a0c(0x1,0x0,0x0);Math[hD(0x2f1)](v[hD(0x24b)](p))>0.9&&v['set'](0x0,0x1,0x0),v[hD(0xba2)](p)['normalize']();const w=new a0c()['crossVectors'](p,v)['normalize'](),x=[];b['forEach'](B=>{const hE=hD,E=new a0c()[hE(0x1fd)](B,f);x[hE(0x50e)]({'u':E[hE(0x24b)](v),'v':E[hE(0x24b)](w)});});let y=0x0;const z=x['length'];for(let B=0x0;B<z;B++){const E=(B+0x1)%z;y+=x[B]['u']*x[E]['v']-x[E]['u']*x[B]['v'];}return y>0x0;}function rA(b,d,f,g){const hF=a0cH,h=new a0c()['subVectors'](d,b),i=new a0c()[hF(0x1fd)](f,b),j=new a0c()[hF(0x74a)](h,i)[hF(0x456)](),k=new a0c()[hF(0xa0a)](b,d)['add'](f)[hF(0xac1)](0x3),m=new a0c()[hF(0x1fd)](g,k)['normalize']();return j[hF(0x24b)](m)>0x0;}function Cr(i,j){const hG=a0cH;if(i['length']<0x3)throw new Error('至少需要3个点才能创建多边形');const k=i[0x0],v=i[0x1],w=i[0x2],z=new a0c()[hG(0x1fd)](v,k),F=new a0c()[hG(0x1fd)](w,k),H=new a0c()[hG(0x74a)](z,F)[hG(0x456)](),L=new a0c(0x1,0x0,0x0);Math[hG(0x2f1)](L[hG(0x24b)](H))>0.9&&L[hG(0x46c)](0x0,0x1,0x0),L[hG(0xba2)](H)['normalize']();const N=new a0c()[hG(0x74a)](H,L)['normalize'](),R=[];i[hG(0x2cd)](a2=>{const hH=hG,a3=new a0c()[hH(0x1fd)](a2,k),a4=a3[hH(0x24b)](L),a5=a3['dot'](N);R[hH(0x50e)](new a0l(a4,a5));});const S=nA(i),T=S?R:[...R][hG(0x860)](),U=a0az[hG(0x9dc)](T,[]),a0=new a0j()[hG(0x298)](i),a1=[];if(U['forEach'](a2=>{S?a1['push'](a2[0x0],a2[0x1],a2[0x2]):a1['push'](a2[0x0],a2[0x2],a2[0x1]);}),a0[hG(0x31e)](a1),j){const a2=U[0x0],a3=i[a2[0x0]],a4=i[a2[0x1]],a5=i[a2[0x2]];if(!rA(a3,a4,a5,j)){const a6=[];for(let a7=0x0;a7<a1['length'];a7+=0x3)a6['push'](a1[a7],a1[a7+0x2],a1[a7+0x1]);a0['setIndex'](a6);}}return a0;}const Jg=Object['freeze'](Object[a0cH(0x1c5)]({'__proto__':null,'adjustCameraPositionForPortrait':sA,'applyVertexScaling':$a,'arePointsEqualWithEpsilon':Jh,'basicLineMaterial':Vr,'calculateCameraNearFar':sc,'calculateClippingRange':ic,'calculatePolygonArea':hc,'calculatePolygonCenter':Ac,'calculateSceneBoundingBox':tc,'centerizeModelGeometry':oc,'convertBoundsCenter':rc,'createArrow':$h,'createBoundingBoxClipPlanes':Ja,'createBox':Uh,'createBoxEdgeModel':Kr,'createBoxWireframe':Nh,'createCSS2DObject':J,'createLOD':eA,'createLineFromPoints':Gh,'createLineFromVector':zh,'createPipe':Vh,'createPolygonGeometry':Cr,'createVisualPlane':Xa,'createWireframeFromObject':nc,'decomposeMatrix':jr,'dominantAxis':Xh,'downloadTextureByMaterial':Kh,'enhanceInstancedMesh':Zh,'findObjectsByName':qh,'getClosestPointOnLineSegment':lc,'getIntersectionWithPlane':jh,'getMaterialKey':cc,'getObjectCenterWorldPosition':Ya,'getRandomHexColor':Yh,'groupByScale':Za,'hitTestFromScreenPoint':Xs,'meshToPlane':iA,'optimizeGeometryBounds':ac,'planeEquationToPointAndNormal':Wa,'processStandardMaterial':ec,'s2ta':Wh,'s2tv':di,'setAdvancedBackground':Ka,'setMeshBoundingBoxCenterTo':Yr,'traverseAndProcessMaterials':tA,'traverseMaterials':Hh},Symbol['toStringTag'],{'value':a0cH(0x968)})),dc=0x0,oA=0x1,aA=0x2,vo=0x2,Rn=1.25,_o=0x1,rs=0x6*0x4+0x4+0x4,nn=0xffff,cA=Math['pow'](0x2,-0x18),Pn=Symbol(a0cH(0xa66));function lA(b){const hI=a0cH;return b[hI(0x1f9)]?b[hI(0x1f9)][hI(0xa6a)]:b[hI(0x974)]['position'][hI(0xa6a)];}function _i(b){return lA(b)/0x3;}function hA(b,c=ArrayBuffer){return b>0xffff?new Uint32Array(new c(0x4*b)):new Uint16Array(new c(0x2*b));}function AA(b,c){const hJ=a0cH;if(!b['index']){const d=b[hJ(0x974)][hJ(0x3e0)]['count'],f=c[hJ(0x78d)]?SharedArrayBuffer:ArrayBuffer,g=hA(d,f);b[hJ(0x31e)](new a0F(g,0x1));for(let h=0x0;h<d;h++)g[h]=h;}}function uc(b,d){const hK=a0cH,f=_i(b),g=d||b['drawRange'],h=g['start']/0x3,i=(g['start']+g['count'])/0x3,j=Math['max'](0x0,h),k=Math[hK(0x2f8)](f,i)-j;return[{'offset':Math[hK(0xa7a)](j),'count':Math['floor'](k)}];}function gc(b,d){const hL=a0cH;if(!b['groups']||!b['groups']['length'])return uc(b,d);const f=[],g=new Set(),i=d||b[hL(0x8d6)],j=i['start']/0x3,k=(i[hL(0x8ec)]+i['count'])/0x3;for(const p of b[hL(0x870)]){const u=p['start']/0x3,v=(p['start']+p[hL(0xa6a)])/0x3;g[hL(0x644)](Math[hL(0x894)](j,u)),g['add'](Math[hL(0x2f8)](k,v));}const m=Array[hL(0xb73)](g['values']())[hL(0x32e)]((w,x)=>w-x);for(let w=0x0;w<m['length']-0x1;w++){const x=m[w],y=m[w+0x1];f['push']({'offset':Math[hL(0xa7a)](x),'count':Math['floor'](y-x)});}return f;}function dA(b,c){const hM=a0cH,d=_i(b),f=gc(b,c)['sort']((i,j)=>i['offset']-j[hM(0x60e)]),g=f[f[hM(0x576)]-0x1];g[hM(0xa6a)]=Math['min'](d-g[hM(0x60e)],g[hM(0xa6a)]);let h=0x0;return f['forEach'](({count:i})=>h+=i),d!==h;}function kn(i,j,z,H,N){let U=0x1/0x0,a0=0x1/0x0,a1=0x1/0x0,a2=-0x1/0x0,a3=-0x1/0x0,a4=-0x1/0x0,a5=0x1/0x0,a6=0x1/0x0,a7=0x1/0x0,a8=-0x1/0x0,a9=-0x1/0x0,ab=-0x1/0x0;for(let aj=j*0x6,ak=(j+z)*0x6;aj<ak;aj+=0x6){const am=i[aj+0x0],an=i[aj+0x1],ap=am-an,aq=am+an;ap<U&&(U=ap),aq>a2&&(a2=aq),am<a5&&(a5=am),am>a8&&(a8=am);const av=i[aj+0x2],aw=i[aj+0x3],ax=av-aw,ay=av+aw;ax<a0&&(a0=ax),ay>a3&&(a3=ay),av<a6&&(a6=av),av>a9&&(a9=av);const az=i[aj+0x4],aB=i[aj+0x5],aC=az-aB,aD=az+aB;aC<a1&&(a1=aC),aD>a4&&(a4=aD),az<a7&&(a7=az),az>ab&&(ab=az);}H[0x0]=U,H[0x1]=a0,H[0x2]=a1,H[0x3]=a2,H[0x4]=a3,H[0x5]=a4,N[0x0]=a5,N[0x1]=a6,N[0x2]=a7,N[0x3]=a8,N[0x4]=a9,N[0x5]=ab;}function uA(i,j=null,k=null,z=null){const hN=a0cH,F=i[hN(0x974)][hN(0x3e0)],H=i[hN(0x1f9)]?i[hN(0x1f9)][hN(0x779)]:null,L=_i(i),N=F['normalized'];let R;j===null?(R=new Float32Array(L*0x6),k=0x0,z=L):(R=j,k=k||0x0,z=z||L);const U=F['array'],a0=F[hN(0x60e)]||0x0;let a1=0x3;F['isInterleavedBufferAttribute']&&(a1=F['data']['stride']);const a2=['getX',hN(0x87d),hN(0x4e0)];for(let a3=k;a3<k+z;a3++){const a4=a3*0x3,a5=a3*0x6;let a6=a4+0x0,a7=a4+0x1,a8=a4+0x2;H&&(a6=H[a6],a7=H[a7],a8=H[a8]),N||(a6=a6*a1+a0,a7=a7*a1+a0,a8=a8*a1+a0);for(let a9=0x0;a9<0x3;a9++){let ab,aj,ak;N?(ab=F[a2[a9]](a6),aj=F[a2[a9]](a7),ak=F[a2[a9]](a8)):(ab=U[a6+a9],aj=U[a7+a9],ak=U[a8+a9]);let am=ab;aj<am&&(am=aj),ak<am&&(am=ak);let an=ab;aj>an&&(an=aj),ak>an&&(an=ak);const ap=(an-am)/0x2,aq=a9*0x2;R[a5+aq+0x0]=am+ap,R[a5+aq+0x1]=ap+(Math[hN(0x2f1)](am)+ap)*cA;}}return R;}function se(b,c,d){const hO=a0cH;return d[hO(0x2f8)]['x']=c[b],d['min']['y']=c[b+0x1],d['min']['z']=c[b+0x2],d[hO(0x894)]['x']=c[b+0x3],d['max']['y']=c[b+0x4],d[hO(0x894)]['z']=c[b+0x5],d;}function To(b){let c=-0x1,d=-0x1/0x0;for(let f=0x0;f<0x3;f++){const g=b[f+0x3]-b[f];g>d&&(d=g,c=f);}return c;}function Qo(b,c){const hP=a0cH;c[hP(0x46c)](b);}function So(b,c,d){let f,g;for(let h=0x0;h<0x3;h++){const i=h+0x3;f=b[h],g=c[h],d[h]=f<g?f:g,f=b[i],g=c[i],d[i]=f>g?f:g;}}function ys(b,d,f){for(let g=0x0;g<0x3;g++){const h=d[b+0x2*g],i=d[b+0x2*g+0x1],j=h-i,k=h+i;j<f[g]&&(f[g]=j),k>f[g+0x3]&&(f[g+0x3]=k);}}function Ni(b){const c=b[0x3]-b[0x0],d=b[0x4]-b[0x1],f=b[0x5]-b[0x2];return 0x2*(c*d+d*f+f*c);}const pt=0x20,gA=(b,c)=>b[a0cH(0x506)]-c['candidate'],Bt=new Array(pt)[a0cH(0x585)]()['map'](()=>({'count':0x0,'bounds':new Float32Array(0x6),'rightCacheBounds':new Float32Array(0x6),'leftCacheBounds':new Float32Array(0x6),'candidate':0x0})),ws=new Float32Array(0x6);function fA(f,i,j,k,p,z){const hQ=a0cH;let F=-0x1,H=0x0;if(z===dc)F=To(i),F!==-0x1&&(H=(i[F]+i[F+0x3])/0x2);else{if(z===oA)F=To(f),F!==-0x1&&(H=pA(j,k,p,F));else{if(z===aA){const N=Ni(f);let U=Rn*p;const a0=k*0x6,a1=(k+p)*0x6;for(let a2=0x0;a2<0x3;a2++){const a3=i[a2],a4=(i[a2+0x3]-a3)/pt;if(p<pt/0x4){const a5=[...Bt];a5[hQ(0x576)]=p;let a6=0x0;for(let a8=a0;a8<a1;a8+=0x6,a6++){const a9=a5[a6];a9[hQ(0x506)]=j[a8+0x2*a2],a9[hQ(0xa6a)]=0x0;const {bounds:ab,leftCacheBounds:aj,rightCacheBounds:ak}=a9;for(let am=0x0;am<0x3;am++)ak[am]=0x1/0x0,ak[am+0x3]=-0x1/0x0,aj[am]=0x1/0x0,aj[am+0x3]=-0x1/0x0,ab[am]=0x1/0x0,ab[am+0x3]=-0x1/0x0;ys(a8,j,ab);}a5['sort'](gA);let a7=p;for(let an=0x0;an<a7;an++){const ap=a5[an];for(;an+0x1<a7&&a5[an+0x1]['candidate']===ap['candidate'];)a5['splice'](an+0x1,0x1),a7--;}for(let aq=a0;aq<a1;aq+=0x6){const av=j[aq+0x2*a2];for(let aw=0x0;aw<a7;aw++){const ax=a5[aw];av>=ax['candidate']?ys(aq,j,ax['rightCacheBounds']):(ys(aq,j,ax['leftCacheBounds']),ax['count']++);}}for(let ay=0x0;ay<a7;ay++){const az=a5[ay],aB=az[hQ(0xa6a)],aC=p-az[hQ(0xa6a)],aD=az[hQ(0x693)],aE=az['rightCacheBounds'];let aF=0x0;aB!==0x0&&(aF=Ni(aD)/N);let aG=0x0;aC!==0x0&&(aG=Ni(aE)/N);const aH=_o+Rn*(aF*aB+aG*aC);aH<U&&(F=a2,U=aH,H=az[hQ(0x506)]);}}else{for(let aK=0x0;aK<pt;aK++){const aL=Bt[aK];aL[hQ(0xa6a)]=0x0,aL[hQ(0x506)]=a3+a4+aK*a4;const aM=aL[hQ(0x831)];for(let aN=0x0;aN<0x3;aN++)aM[aN]=0x1/0x0,aM[aN+0x3]=-0x1/0x0;}for(let aO=a0;aO<a1;aO+=0x6){let aP=~~((j[aO+0x2*a2]-a3)/a4);aP>=pt&&(aP=pt-0x1);const aQ=Bt[aP];aQ['count']++,ys(aO,j,aQ['bounds']);}const aI=Bt[pt-0x1];Qo(aI['bounds'],aI[hQ(0x90b)]);for(let aR=pt-0x2;aR>=0x0;aR--){const aS=Bt[aR],aT=Bt[aR+0x1];So(aS[hQ(0x831)],aT[hQ(0x90b)],aS['rightCacheBounds']);}let aJ=0x0;for(let aU=0x0;aU<pt-0x1;aU++){const aV=Bt[aU],aW=aV[hQ(0xa6a)],aX=aV['bounds'],aY=Bt[aU+0x1][hQ(0x90b)];aW!==0x0&&(aJ===0x0?Qo(aX,ws):So(aX,ws,ws)),aJ+=aW;let aZ=0x0,b0=0x0;aJ!==0x0&&(aZ=Ni(ws)/N);const b1=p-aJ;b1!==0x0&&(b0=Ni(aY)/N);const b2=_o+Rn*(aZ*aJ+b0*b1);b2<U&&(F=a2,U=b2,H=aV['candidate']);}}}}else console['warn']('MeshBVH:\x20Invalid\x20build\x20strategy\x20value\x20'+z+hQ(0xb14));}}return{'axis':F,'pos':H};}function pA(b,c,d,f){let g=0x0;for(let h=c,i=c+d;h<i;h++)g+=b[h*0x6+f*0x2];return g/d;}class Fn{constructor(){const hR=a0cH;this[hR(0x4d5)]=new Float32Array(0x6);}}function mA(b,f,g,i,j,k){const hS=a0cH;let m=i,p=i+j-0x1;const u=k[hS(0x3cd)],v=k[hS(0x811)]*0x2;for(;;){for(;m<=p&&g[m*0x6+v]<u;)m++;for(;m<=p&&g[p*0x6+v]>=u;)p--;if(m<p){for(let w=0x0;w<0x3;w++){let x=f[m*0x3+w];f[m*0x3+w]=f[p*0x3+w],f[p*0x3+w]=x;}for(let y=0x0;y<0x6;y++){let z=g[m*0x6+y];g[m*0x6+y]=g[p*0x6+y],g[p*0x6+y]=z;}m++,p--;}else return m;}}function bA(b,f,g,i,j,k){const hT=a0cH;let m=i,p=i+j-0x1;const v=k[hT(0x3cd)],w=k['axis']*0x2;for(;;){for(;m<=p&&g[m*0x6+w]<v;)m++;for(;m<=p&&g[p*0x6+w]>=v;)p--;if(m<p){let x=b[m];b[m]=b[p],b[p]=x;for(let y=0x0;y<0x6;y++){let z=g[m*0x6+y];g[m*0x6+y]=g[p*0x6+y],g[p*0x6+y]=z;}m++,p--;}else return m;}}function Qe(b,c){return c[b+0xf]===0xffff;}function Me(b,c){return c[b+0x6];}function Ne(b,c){return c[b+0xe];}function Ue(b){return b+0x8;}function Ge(b,c){return c[b+0x6];}function fc(b,c){return c[b+0x7];}let pc,ts,Vs,mc;function a0b(a,b){const c=a0a();return a0b=function(d,e){d=d-0x137;let f=c[d];return f;},a0b(a,b);}const EA=Math[a0cH(0x8c4)](0x2,0x20);function yr(b){const hU=a0cH;return'count'in b?0x1:0x1+yr(b[hU(0x4d1)])+yr(b['right']);}function CA(b,c,d){return pc=new Float32Array(d),ts=new Uint32Array(d),Vs=new Uint16Array(d),mc=new Uint8Array(d),wr(b,c);}function wr(b,d){const hV=a0cH,f=b/0x4,g=b/0x2,i='count'in d,j=d[hV(0x4d5)];for(let k=0x0;k<0x6;k++)pc[f+k]=j[k];if(i){if(d['buffer']){const m=d['buffer'];mc['set'](new Uint8Array(m),b);for(let p=b,u=b+m['byteLength'];p<u;p+=rs){const v=p/0x2;Qe(v,Vs)||(ts[p/0x4+0x6]+=f);}return b+m['byteLength'];}else{const w=d[hV(0x60e)],x=d['count'];return ts[f+0x6]=w,Vs[g+0xe]=x,Vs[g+0xf]=nn,b+rs;}}else{const y=d['left'],z=d[hV(0x889)],A=d[hV(0x25e)];let B;if(B=wr(b+rs,y),B/0x4>EA)throw new Error('MeshBVH:\x20Cannot\x20store\x20child\x20pointer\x20greater\x20than\x2032\x20bits.');return ts[f+0x6]=B/0x4,B=wr(B,z),ts[f+0x7]=A,B;}}function yA(b,d){const hW=a0cH,f=(b[hW(0x1f9)]?b['index']['count']:b[hW(0x974)][hW(0x3e0)]['count'])/0x3,g=f>0x2**0x10,h=g?0x4:0x2,i=d?new SharedArrayBuffer(f*h):new ArrayBuffer(f*h),j=g?new Uint32Array(i):new Uint16Array(i);for(let k=0x0,m=j[hW(0x576)];k<m;k++)j[k]=k;return j;}function wA(i,j,k,v,x){const hX=a0cH,{maxDepth:z,verbose:B,maxLeafTris:F,strategy:H,onProgress:L,indirect:N}=x,R=i[hX(0x22b)],S=i['geometry'],T=S['index']?S[hX(0x1f9)][hX(0x779)]:null,U=N?bA:mA,a0=_i(S),a1=new Float32Array(0x6);let a2=!0x1;const a3=new Fn();return kn(j,k,v,a3['boundingData'],a1),a5(a3,k,v,a1),a3;function a4(a6){L&&L(a6/a0);}function a5(a6,a7,a8,a9=null,ab=0x0){const hY=hX;if(!a2&&ab>=z&&(a2=!0x0,B&&(console['warn'](hY(0x7d8)+z+hY(0x82b)),console[hY(0x637)](S))),a8<=F||ab>=z)return a4(a7+a8),a6['offset']=a7,a6[hY(0xa6a)]=a8,a6;const aj=fA(a6['boundingData'],a9,j,a7,a8,H);if(aj['axis']===-0x1)return a4(a7+a8),a6[hY(0x60e)]=a7,a6['count']=a8,a6;const ak=U(R,T,j,a7,a8,aj);if(ak===a7||ak===a7+a8)a4(a7+a8),a6[hY(0x60e)]=a7,a6[hY(0xa6a)]=a8;else{a6['splitAxis']=aj['axis'];const am=new Fn(),an=a7,ap=ak-a7;a6[hY(0x4d1)]=am,kn(j,an,ap,am[hY(0x4d5)],a1),a5(am,an,ap,a1,ab+0x1);const aq=new Fn(),av=ak,aw=a8-ap;a6[hY(0x889)]=aq,kn(j,av,aw,aq[hY(0x4d5)],a1),a5(aq,av,aw,a1,ab+0x1);}return a6;}}function IA(b,c){const hZ=a0cH,d=b['geometry'];c[hZ(0x605)]&&(b['_indirectBuffer']=yA(d,c['useSharedArrayBuffer']),dA(d,c['range'])&&!c['verbose']&&console[hZ(0x637)]('MeshBVH:\x20Provided\x20geometry\x20contains\x20groups\x20or\x20a\x20range\x20that\x20do\x20not\x20fully\x20span\x20the\x20vertex\x20contents\x20while\x20using\x20the\x20\x22indirect\x22\x20option.\x20BVH\x20may\x20incorrectly\x20report\x20intersections\x20on\x20unrendered\x20portions\x20of\x20the\x20geometry.')),b['_indirectBuffer']||AA(d,c);const f=c[hZ(0x78d)]?SharedArrayBuffer:ArrayBuffer,g=uA(d),h=c['indirect']?uc(d,c['range']):gc(d,c[hZ(0x2e6)]);b[hZ(0x2fb)]=h[hZ(0x941)](i=>{const i0=hZ,j=wA(b,g,i[i0(0x60e)],i['count'],c),k=yr(j),m=new f(rs*k);return CA(0x0,j,m),m;});}class Ct{constructor(){const i1=a0cH;this[i1(0x2f8)]=0x1/0x0,this['max']=-0x1/0x0;}[a0cH(0x8c1)](b,c){let d=0x1/0x0,f=-0x1/0x0;for(let g=0x0,h=b['length'];g<h;g++){const i=b[g][c];d=i<d?i:d,f=i>f?i:f;}this['min']=d,this['max']=f;}['setFromPoints'](b,d){const i2=a0cH;let f=0x1/0x0,g=-0x1/0x0;for(let h=0x0,i=d['length'];h<i;h++){const j=d[h],k=b[i2(0x24b)](j);f=k<f?k:f,g=k>g?k:g;}this[i2(0x2f8)]=f,this['max']=g;}['isSeparated'](b){const i3=a0cH;return this[i3(0x2f8)]>b[i3(0x894)]||b['min']>this['max'];}}Ct['prototype']['setFromBox']=(function(){const b=new a0c();return function(f,g){const i4=a0b,i=g[i4(0x2f8)],j=g[i4(0x894)];let k=0x1/0x0,m=-0x1/0x0;for(let p=0x0;p<=0x1;p++)for(let t=0x0;t<=0x1;t++)for(let u=0x0;u<=0x1;u++){b['x']=i['x']*p+j['x']*(0x1-p),b['y']=i['y']*t+j['y']*(0x1-t),b['z']=i['z']*u+j['z']*(0x1-u);const v=f[i4(0x24b)](b);k=Math['min'](v,k),m=Math['max'](v,m);}this['min']=k,this['max']=m;};}());const BA=(function(){const b=new a0c(),c=new a0c(),d=new a0c();return function(i,j,k){const i5=a0b,p=i['start'],s=b,v=j['start'],w=c;d['subVectors'](p,v),b[i5(0x1fd)](i['end'],i[i5(0x8ec)]),c['subVectors'](j[i5(0x9b6)],j[i5(0x8ec)]);const x=d['dot'](w),y=w['dot'](s),z=w[i5(0x24b)](w),B=d['dot'](s),F=s['dot'](s)*z-y*y;let H,L;F!==0x0?H=(x*y-B*z)/F:H=0x0,L=(x+H*y)/z,k['x']=H,k['y']=L;};}()),Wr=(function(){const b=new a0l(),c=new a0c(),d=new a0c();return function(f,i,j,k){const i6=a0b;BA(f,i,b);let m=b['x'],p=b['y'];if(m>=0x0&&m<=0x1&&p>=0x0&&p<=0x1){f['at'](m,j),i['at'](p,k);return;}else{if(m>=0x0&&m<=0x1){p<0x0?i['at'](0x0,k):i['at'](0x1,k),f['closestPointToPoint'](k,!0x0,j);return;}else{if(p>=0x0&&p<=0x1){m<0x0?f['at'](0x0,j):f['at'](0x1,j),i['closestPointToPoint'](j,!0x0,k);return;}else{let s;m<0x0?s=f[i6(0x8ec)]:s=f[i6(0x9b6)];let v;p<0x0?v=i[i6(0x8ec)]:v=i['end'];const w=c,x=d;if(f['closestPointToPoint'](v,!0x0,c),i['closestPointToPoint'](s,!0x0,d),w[i6(0x967)](v)<=x[i6(0x967)](s)){j['copy'](w),k[i6(0x195)](v);return;}else{j['copy'](s),k['copy'](x);return;}}}}};}()),xA=(function(){const b=new a0c(),c=new a0c(),d=new a0aq(),f=new a0z();return function(g,i){const i7=a0b,{radius:j,center:k}=g,{a:m,b:n,c:u}=i;if(f[i7(0x8ec)]=m,f['end']=n,f['closestPointToPoint'](k,!0x0,b)[i7(0x5ac)](k)<=j||(f['start']=m,f[i7(0x9b6)]=u,f['closestPointToPoint'](k,!0x0,b)['distanceTo'](k)<=j)||(f[i7(0x8ec)]=n,f[i7(0x9b6)]=u,f[i7(0x189)](k,!0x0,b)[i7(0x5ac)](k)<=j))return!0x0;const v=i[i7(0xb8c)](d);if(Math[i7(0x2f1)](v[i7(0x2c9)](k))<=j){const w=v['projectPoint'](k,c);if(i['containsPoint'](w))return!0x0;}return!0x1;};}()),vA=1e-15;function On(b){const i8=a0cH;return Math[i8(0x2f1)](b)<vA;}class Xe extends a0aA{constructor(...b){const i9=a0cH;super(...b),this['isExtendedTriangle']=!0x0,this['satAxes']=new Array(0x4)['fill']()['map'](()=>new a0c()),this[i9(0x863)]=new Array(0x4)['fill']()['map'](()=>new Ct()),this[i9(0x76f)]=[this['a'],this['b'],this['c']],this[i9(0x9d2)]=new a0t(),this['plane']=new a0aq(),this['needsUpdate']=!0x0;}[a0cH(0x6d7)](b){return xA(b,this);}[a0cH(0x9c6)](){const ib=a0cH,b=this['a'],i=this['b'],j=this['c'],k=this[ib(0x76f)],m=this[ib(0x155)],p=this['satBounds'],v=m[0x0],w=p[0x0];this['getNormal'](v),w[ib(0x298)](v,k);const x=m[0x1],y=p[0x1];x[ib(0x1fd)](b,i),y['setFromPoints'](x,k);const z=m[0x2],B=p[0x2];z[ib(0x1fd)](i,j),B['setFromPoints'](z,k);const E=m[0x3],F=p[0x3];E[ib(0x1fd)](j,b),F[ib(0x298)](E,k),this[ib(0x9d2)]['setFromPoints'](this[ib(0x76f)]),this[ib(0xb8f)]['setFromNormalAndCoplanarPoint'](v,b),this['needsUpdate']=!0x1;}}Xe[a0cH(0x598)][a0cH(0x6d1)]=(function(){const b=new a0c(),c=new a0c(),d=new a0z();return function(f,i=null,j=null){const ij=a0b,{start:k,end:m}=f,p=this['points'];let s,v=0x1/0x0;for(let w=0x0;w<0x3;w++){const x=(w+0x1)%0x3;d['start']['copy'](p[w]),d[ij(0x9b6)][ij(0x195)](p[x]),Wr(d,f,b,c),s=b['distanceToSquared'](c),s<v&&(v=s,i&&i['copy'](b),j&&j['copy'](c));}return this[ij(0x189)](k,b),s=k['distanceToSquared'](b),s<v&&(v=s,i&&i['copy'](b),j&&j[ij(0x195)](k)),this['closestPointToPoint'](m,b),s=m['distanceToSquared'](b),s<v&&(v=s,i&&i['copy'](b),j&&j['copy'](m)),Math[ij(0x902)](v);};}()),Xe['prototype']['intersectsTriangle']=(function(){const b=new Xe(),i=new Array(0x3),j=new Array(0x3),k=new Ct(),m=new Ct(),p=new a0c(),v=new a0c(),w=new a0c(),x=new a0c(),y=new a0c(),z=new a0z(),B=new a0z(),E=new a0z(),F=new a0c();function H(L,N,R){const ik=a0b,S=L[ik(0x76f)];let U=0x0,a0=-0x1;for(let a1=0x0;a1<0x3;a1++){const {start:a2,end:a3}=z;a2['copy'](S[a1]),a3['copy'](S[(a1+0x1)%0x3]),z[ik(0x815)](v);const a4=On(N['distanceToPoint'](a2));if(On(N[ik(0x186)][ik(0x24b)](v))&&a4){R[ik(0x195)](z),U=0x2;break;}const a5=N[ik(0x93e)](z,F);if(!a5&&a4&&F['copy'](a2),(a5||a4)&&!On(F[ik(0x5ac)](a3))){if(U<=0x1)(U===0x1?R['start']:R['end'])[ik(0x195)](F),a4&&(a0=U);else{if(U>=0x2){(a0===0x1?R[ik(0x8ec)]:R['end'])[ik(0x195)](F),U=0x2;break;}}if(U++,U===0x2&&a0===-0x1)break;}}return U;}return function(N,U=null,a0=!0x1){const im=a0b;this['needsUpdate']&&this[im(0x9c6)](),N[im(0x442)]?N[im(0x5f7)]&&N['update']():(b['copy'](N),b[im(0x9c6)](),N=b);const a1=this[im(0xb8f)],a2=N[im(0xb8f)];if(Math[im(0x2f1)](a1[im(0x186)][im(0x24b)](a2['normal']))>0x1-1e-10){const a3=this['satBounds'],a4=this[im(0x155)];j[0x0]=N['a'],j[0x1]=N['b'],j[0x2]=N['c'];for(let a7=0x0;a7<0x4;a7++){const a8=a3[a7],a9=a4[a7];if(k[im(0x298)](a9,j),a8['isSeparated'](k))return!0x1;}const a5=N[im(0x863)],a6=N['satAxes'];i[0x0]=this['a'],i[0x1]=this['b'],i[0x2]=this['c'];for(let ab=0x0;ab<0x4;ab++){const aj=a5[ab],ak=a6[ab];if(k[im(0x298)](ak,i),aj['isSeparated'](k))return!0x1;}for(let am=0x0;am<0x4;am++){const an=a4[am];for(let ap=0x0;ap<0x4;ap++){const aq=a6[ap];if(p[im(0x74a)](an,aq),k[im(0x298)](p,i),m['setFromPoints'](p,j),k['isSeparated'](m))return!0x1;}}return U&&(a0||console['warn']('ExtendedTriangle.intersectsTriangle:\x20Triangles\x20are\x20coplanar\x20which\x20does\x20not\x20support\x20an\x20output\x20edge.\x20Setting\x20edge\x20to\x200,\x200,\x200.'),U['start']['set'](0x0,0x0,0x0),U['end'][im(0x46c)](0x0,0x0,0x0)),!0x0;}else{const av=H(this,a2,B);if(av===0x1&&N['containsPoint'](B[im(0x9b6)]))return U&&(U[im(0x8ec)][im(0x195)](B[im(0x9b6)]),U[im(0x9b6)][im(0x195)](B['end'])),!0x0;if(av!==0x2)return!0x1;const aw=H(N,a1,E);if(aw===0x1&&this['containsPoint'](E['end']))return U&&(U['start'][im(0x195)](E['end']),U['end'][im(0x195)](E['end'])),!0x0;if(aw!==0x2)return!0x1;if(B[im(0x815)](w),E[im(0x815)](x),w['dot'](x)<0x0){let aE=E['start'];E[im(0x8ec)]=E[im(0x9b6)],E['end']=aE;}const ax=B['start'][im(0x24b)](w),ay=B[im(0x9b6)][im(0x24b)](w),az=E['start'][im(0x24b)](w),aB=E['end']['dot'](w),aC=ay<az,aD=ax<aB;return ax!==aB&&az!==ay&&aC===aD?!0x1:(U&&(y['subVectors'](B[im(0x8ec)],E[im(0x8ec)]),y['dot'](w)>0x0?U[im(0x8ec)]['copy'](B['start']):U[im(0x8ec)][im(0x195)](E[im(0x8ec)]),y[im(0x1fd)](B[im(0x9b6)],E['end']),y['dot'](w)<0x0?U[im(0x9b6)][im(0x195)](B['end']):U['end'][im(0x195)](E[im(0x9b6)])),!0x0);}};}()),Xe[a0cH(0x598)]['distanceToPoint']=(function(){const b=new a0c();return function(c){const ip=a0b;return this[ip(0x189)](c,b),c[ip(0x5ac)](b);};}()),Xe[a0cH(0x598)]['distanceToTriangle']=(function(){const b=new a0c(),c=new a0c(),d=['a','b','c'],f=new a0z(),g=new a0z();return function(i,j=null,k=null){const iq=a0b,m=j||k?f:null;if(this['intersectsTriangle'](i,m))return(j||k)&&(j&&m['getCenter'](j),k&&m['getCenter'](k)),0x0;let r=0x1/0x0;for(let v=0x0;v<0x3;v++){let w;const x=d[v],y=i[x];this['closestPointToPoint'](y,b),w=y[iq(0x967)](b),w<r&&(r=w,j&&j[iq(0x195)](b),k&&k[iq(0x195)](y));const z=this[x];i[iq(0x189)](z,b),w=z['distanceToSquared'](b),w<r&&(r=w,j&&j[iq(0x195)](z),k&&k[iq(0x195)](b));}for(let B=0x0;B<0x3;B++){const F=d[B],H=d[(B+0x1)%0x3];f[iq(0x46c)](this[F],this[H]);for(let L=0x0;L<0x3;L++){const N=d[L],R=d[(L+0x1)%0x3];g['set'](i[N],i[R]),Wr(f,g,b,c);const S=b[iq(0x967)](c);S<r&&(r=S,j&&j['copy'](b),k&&k['copy'](c));}}return Math['sqrt'](r);};}());class ve{constructor(b,c,d){const iv=a0cH;this[iv(0x993)]=!0x0,this[iv(0x2f8)]=new a0c(),this['max']=new a0c(),this[iv(0x5bb)]=new a0m(),this['invMatrix']=new a0m(),this[iv(0x76f)]=new Array(0x8)['fill']()[iv(0x941)](()=>new a0c()),this[iv(0x155)]=new Array(0x3)[iv(0x585)]()['map'](()=>new a0c()),this['satBounds']=new Array(0x3)['fill']()[iv(0x941)](()=>new Ct()),this['alignedSatBounds']=new Array(0x3)['fill']()[iv(0x941)](()=>new Ct()),this['needsUpdate']=!0x1,b&&this[iv(0x2f8)][iv(0x195)](b),c&&this['max']['copy'](c),d&&this['matrix']['copy'](d);}[a0cH(0x46c)](b,c,d){const iw=a0cH;this[iw(0x2f8)][iw(0x195)](b),this['max']['copy'](c),this['matrix']['copy'](d),this['needsUpdate']=!0x0;}['copy'](b){const ix=a0cH;this[ix(0x2f8)]['copy'](b['min']),this['max']['copy'](b[ix(0x894)]),this['matrix'][ix(0x195)](b[ix(0x5bb)]),this[ix(0x5f7)]=!0x0;}}ve[a0cH(0x598)]['update']=(function(){return function(){const iy=a0b,b=this['matrix'],f=this[iy(0x2f8)],i=this[iy(0x894)],j=this[iy(0x76f)];for(let w=0x0;w<=0x1;w++)for(let x=0x0;x<=0x1;x++)for(let y=0x0;y<=0x1;y++){const z=0x1*w|0x2*x|0x4*y,B=j[z];B['x']=w?i['x']:f['x'],B['y']=x?i['y']:f['y'],B['z']=y?i['z']:f['z'],B[iy(0x5e0)](b);}const k=this['satBounds'],m=this['satAxes'],p=j[0x0];for(let E=0x0;E<0x3;E++){const F=m[E],H=k[E],L=0x1<<E,N=j[L];F[iy(0x1fd)](p,N),H[iy(0x298)](F,j);}const v=this['alignedSatBounds'];v[0x0]['setFromPointsField'](j,'x'),v[0x1][iy(0x8c1)](j,'y'),v[0x2]['setFromPointsField'](j,'z'),this[iy(0x5a7)]['copy'](this['matrix'])['invert'](),this[iy(0x5f7)]=!0x1;};}()),ve[a0cH(0x598)][a0cH(0x675)]=(function(){const b=new Ct();return function(d){const iz=a0b;this['needsUpdate']&&this[iz(0x9c6)]();const f=d['min'],g=d['max'],i=this['satBounds'],j=this['satAxes'],k=this[iz(0x5ce)];if(b['min']=f['x'],b['max']=g['x'],k[0x0]['isSeparated'](b)||(b[iz(0x2f8)]=f['y'],b[iz(0x894)]=g['y'],k[0x1][iz(0x9f7)](b))||(b[iz(0x2f8)]=f['z'],b[iz(0x894)]=g['z'],k[0x2][iz(0x9f7)](b)))return!0x1;for(let m=0x0;m<0x3;m++){const p=j[m],t=i[m];if(b[iz(0x67e)](p,d),t[iz(0x9f7)](b))return!0x1;}return!0x0;};}()),ve[a0cH(0x598)][a0cH(0x4a5)]=(function(){const b=new Xe(),c=new Array(0x3),d=new Ct(),f=new Ct(),g=new a0c();return function(i){const iB=a0b;this[iB(0x5f7)]&&this['update'](),i[iB(0x442)]?i['needsUpdate']&&i[iB(0x9c6)]():(b['copy'](i),b['update'](),i=b);const j=this[iB(0x863)],k=this['satAxes'];c[0x0]=i['a'],c[0x1]=i['b'],c[0x2]=i['c'];for(let w=0x0;w<0x3;w++){const x=j[w],y=k[w];if(d['setFromPoints'](y,c),x[iB(0x9f7)](d))return!0x1;}const m=i[iB(0x863)],r=i[iB(0x155)],v=this[iB(0x76f)];for(let z=0x0;z<0x3;z++){const B=m[z],E=r[z];if(d['setFromPoints'](E,v),B[iB(0x9f7)](d))return!0x1;}for(let F=0x0;F<0x3;F++){const H=k[F];for(let L=0x0;L<0x4;L++){const N=r[L];if(g[iB(0x74a)](H,N),d['setFromPoints'](g,c),f[iB(0x298)](g,v),d['isSeparated'](f))return!0x1;}}return!0x0;};}()),ve[a0cH(0x598)]['closestPointToPoint']=(function(){return function(b,c){const iC=a0b;return this[iC(0x5f7)]&&this['update'](),c[iC(0x195)](b)[iC(0x5e0)](this[iC(0x5a7)])[iC(0x67c)](this[iC(0x2f8)],this[iC(0x894)])['applyMatrix4'](this[iC(0x5bb)]),c;};}()),ve[a0cH(0x598)][a0cH(0x2c9)]=(function(){const b=new a0c();return function(c){return this['closestPointToPoint'](c,b),c['distanceTo'](b);};}()),ve[a0cH(0x598)]['distanceToBox']=(function(){const iD=a0cH,b=['x','y','z'],c=new Array(0xc)[iD(0x585)]()[iD(0x941)](()=>new a0z()),d=new Array(0xc)['fill']()['map'](()=>new a0z()),f=new a0c(),g=new a0c();return function(i,j=0x0,r=null,z=null){const iE=iD;if(this['needsUpdate']&&this['update'](),this[iE(0x675)](i))return(r||z)&&(i[iE(0x8f7)](g),this['closestPointToPoint'](g,f),i[iE(0x189)](f,g),r&&r['copy'](f),z&&z[iE(0x195)](g)),0x0;const H=j*j,T=i['min'],U=i['max'],a0=this[iE(0x76f)];let a1=0x1/0x0;for(let a3=0x0;a3<0x8;a3++){const a4=a0[a3];g['copy'](a4)[iE(0x67c)](T,U);const a5=a4['distanceToSquared'](g);if(a5<a1&&(a1=a5,r&&r['copy'](a4),z&&z[iE(0x195)](g),a5<H))return Math[iE(0x902)](a5);}let a2=0x0;for(let a6=0x0;a6<0x3;a6++)for(let a7=0x0;a7<=0x1;a7++)for(let a8=0x0;a8<=0x1;a8++){const a9=(a6+0x1)%0x3,ab=(a6+0x2)%0x3,aj=a7<<a9|a8<<ab,ak=0x1<<a6|a7<<a9|a8<<ab,am=a0[aj],an=a0[ak];c[a2]['set'](am,an);const ap=b[a6],aq=b[a9],av=b[ab],aw=d[a2],ax=aw[iE(0x8ec)],ay=aw['end'];ax[ap]=T[ap],ax[aq]=a7?T[aq]:U[aq],ax[av]=a8?T[av]:U[aq],ay[ap]=U[ap],ay[aq]=a7?T[aq]:U[aq],ay[av]=a8?T[av]:U[aq],a2++;}for(let az=0x0;az<=0x1;az++)for(let aB=0x0;aB<=0x1;aB++)for(let aC=0x0;aC<=0x1;aC++){g['x']=az?U['x']:T['x'],g['y']=aB?U['y']:T['y'],g['z']=aC?U['z']:T['z'],this['closestPointToPoint'](g,f);const aD=g[iE(0x967)](f);if(aD<a1&&(a1=aD,r&&r[iE(0x195)](f),z&&z['copy'](g),aD<H))return Math[iE(0x902)](aD);}for(let aE=0x0;aE<0xc;aE++){const aF=c[aE];for(let aG=0x0;aG<0xc;aG++){const aH=d[aG];Wr(aF,aH,f,g);const aI=f[iE(0x967)](g);if(aI<a1&&(a1=aI,r&&r[iE(0x195)](f),z&&z[iE(0x195)](g),aI<H))return Math[iE(0x902)](aI);}}return Math[iE(0x902)](a1);};}());class Jr{constructor(b){const iF=a0cH;this[iF(0x1ad)]=b,this[iF(0x320)]=[];}['getPrimitive'](){const iG=a0cH,b=this['_primitives'];return b['length']===0x0?this['_getNewPrimitive']():b[iG(0x3da)]();}['releasePrimitive'](b){const iH=a0cH;this['_primitives'][iH(0x50e)](b);}}class _A extends Jr{constructor(){super(()=>new Xe());}}const ze=new _A();class TA{constructor(){const iI=a0cH;this[iI(0x72a)]=null,this[iI(0x545)]=null,this[iI(0x8db)]=null;const b=[];let c=null;this[iI(0x6fb)]=d=>{const iJ=iI;c&&b[iJ(0x50e)](c),c=d,this[iJ(0x72a)]=new Float32Array(d),this[iJ(0x545)]=new Uint16Array(d),this['uint32Array']=new Uint32Array(d);},this['clearBuffer']=()=>{const iK=iI;c=null,this['float32Array']=null,this[iK(0x545)]=null,this['uint32Array']=null,b[iK(0x576)]!==0x0&&this['setBuffer'](b['pop']());};}}const te=new TA();let St,ui;const Jt=[],Is=new Jr(()=>new a0h());function QA(b,d,f,g,h,i){const iL=a0cH;St=Is['getPrimitive'](),ui=Is['getPrimitive'](),Jt[iL(0x50e)](St,ui),te[iL(0x6fb)](b[iL(0x2fb)][d]);const j=Ir(0x0,b['geometry'],f,g,h,i);te['clearBuffer'](),Is[iL(0x2f6)](St),Is['releasePrimitive'](ui),Jt[iL(0x3da)](),Jt['pop']();const k=Jt[iL(0x576)];return k>0x0&&(ui=Jt[k-0x1],St=Jt[k-0x2]),j;}function Ir(d,i,j,k,z=null,H=0x0,N=0x0){const {float32Array:U,uint16Array:a0,uint32Array:a1}=te;let a2=d*0x2;if(Qe(a2,a0)){const a3=Me(d,a1),a4=Ne(a2,a0);return se(d,U,St),k(a3,a4,!0x1,N,H+d,St);}else{let a5=function(az){const {uint16Array:aB,uint32Array:aC}=te;let aD=az*0x2;for(;!Qe(aD,aB);)az=Ue(az),aD=az*0x2;return Me(az,aC);},a6=function(az){const {uint16Array:aB,uint32Array:aC}=te;let aD=az*0x2;for(;!Qe(aD,aB);)az=Ge(az,aC),aD=az*0x2;return Me(az,aC)+Ne(aD,aB);};const a7=Ue(d),a8=Ge(d,a1);let a9=a7,ab=a8,aj,ak,am,an;if(z&&(am=St,an=ui,se(a9,U,am),se(ab,U,an),aj=z(am),ak=z(an),ak<aj)){a9=a8,ab=a7;const az=aj;aj=ak,ak=az,am=an;}am||(am=St,se(a9,U,am));const ap=Qe(a9*0x2,a0),aq=j(am,ap,aj,N+0x1,H+a9);let av;if(aq===vo){const aB=a5(a9),aC=a6(a9)-aB;av=k(aB,aC,!0x0,N+0x1,H+a9,am);}else av=aq&&Ir(a9,i,j,k,z,H,N+0x1);if(av)return!0x0;an=ui,se(ab,U,an);const aw=Qe(ab*0x2,a0),ax=j(an,aw,ak,N+0x1,H+ab);let ay;if(ax===vo){const aD=a5(ab),aE=a6(ab)-aD;ay=k(aD,aE,!0x0,N+0x1,H+ab,an);}else ay=ax&&Ir(ab,i,j,k,z,H,N+0x1);return!!ay;}}const Ui=new a0c(),Nn=new a0c();function SA(b,d,f={},g=0x0,i=0x1/0x0){const iM=a0cH,j=g*g,k=i*i;let m=0x1/0x0,p=null;if(b['shapecast']({'boundsTraverseOrder':v=>(Ui[iM(0x195)](d)[iM(0x67c)](v[iM(0x2f8)],v[iM(0x894)]),Ui['distanceToSquared'](d)),'intersectsBounds':(v,w,x)=>x<m&&x<k,'intersectsTriangle':(v,w)=>{const iN=iM;v['closestPointToPoint'](d,Ui);const x=d[iN(0x967)](Ui);return x<m&&(Nn['copy'](Ui),m=x,p=w),x<j;}}),m===0x1/0x0)return null;const u=Math[iM(0x902)](m);return f[iM(0x21d)]?f['point']['copy'](Nn):f[iM(0x21d)]=Nn[iM(0x8e8)](),f['distance']=u,f[iM(0x233)]=p,f;}const DA=parseInt(a0aC)>=0xa9,Lt=new a0c(),Rt=new a0c(),Pt=new a0c(),Bs=new a0l(),xs=new a0l(),vs=new a0l(),Do=new a0c(),Mo=new a0c(),Lo=new a0c(),Gi=new a0c();function MA(b,d,f,g,i,j,k,m){const iO=a0cH;let p;if(j===a0aB?p=b[iO(0x79b)](g,f,d,!0x0,i):p=b[iO(0x79b)](d,f,g,j!==a0at,i),p===null)return null;const u=b['origin'][iO(0x5ac)](i);return u<k||u>m?null:{'distance':u,'point':i['clone']()};}function LA(b,f,i,j,k,m,p,v,w,x,y){const iP=a0cH;Lt[iP(0x7bd)](f,m),Rt[iP(0x7bd)](f,p),Pt['fromBufferAttribute'](f,v);const z=MA(b,Lt,Rt,Pt,Gi,w,x,y);if(z){const B=new a0c();a0aA[iP(0x87c)](Gi,Lt,Rt,Pt,B),j&&(Bs[iP(0x7bd)](j,m),xs[iP(0x7bd)](j,p),vs['fromBufferAttribute'](j,v),z['uv']=a0aA[iP(0x964)](Gi,Lt,Rt,Pt,Bs,xs,vs,new a0l())),k&&(Bs[iP(0x7bd)](k,m),xs['fromBufferAttribute'](k,p),vs[iP(0x7bd)](k,v),z['uv1']=a0aA['getInterpolation'](Gi,Lt,Rt,Pt,Bs,xs,vs,new a0l())),i&&(Do[iP(0x7bd)](i,m),Mo[iP(0x7bd)](i,p),Lo['fromBufferAttribute'](i,v),z[iP(0x186)]=a0aA[iP(0x964)](Gi,Lt,Rt,Pt,Do,Mo,Lo,new a0c()),z[iP(0x186)][iP(0x24b)](b[iP(0x3e5)])>0x0&&z['normal'][iP(0xa49)](-0x1));const E={'a':m,'b':p,'c':v,'normal':new a0c(),'materialIndex':0x0};a0aA['getNormal'](Lt,Rt,Pt,E['normal']),z[iP(0xa73)]=E,z[iP(0x233)]=m,DA&&(z[iP(0x657)]=B);}return z;}function rn(i,j,k,m,v,w,x){const iQ=a0cH,y=m*0x3;let z=y+0x0,B=y+0x1,E=y+0x2;const F=i[iQ(0x1f9)];i[iQ(0x1f9)]&&(z=F['getX'](z),B=F['getX'](B),E=F[iQ(0x457)](E));const {position:H,normal:L,uv:N,uv1:R}=i[iQ(0x974)],S=LA(k,H,L,N,R,z,B,E,j,w,x);return S?(S['faceIndex']=m,v&&v[iQ(0x50e)](S),S):null;}function he(b,d,f,g){const iR=a0cH,i=b['a'],j=b['b'],k=b['c'];let m=d,p=d+0x1,u=d+0x2;f&&(m=f[iR(0x457)](m),p=f['getX'](p),u=f['getX'](u)),i['x']=g['getX'](m),i['y']=g[iR(0x87d)](m),i['z']=g['getZ'](m),j['x']=g['getX'](p),j['y']=g['getY'](p),j['z']=g['getZ'](p),k['x']=g[iR(0x457)](u),k['y']=g[iR(0x87d)](u),k['z']=g['getZ'](u);}function RA(b,f,g,i,j,k,m,p){const {geometry:u,_indirectBuffer:v}=b;for(let w=i,x=i+j;w<x;w++)rn(u,f,g,w,k,m,p);}function PA(b,f,i,j,k,m,p){const iS=a0cH,{geometry:v,_indirectBuffer:w}=b;let x=0x1/0x0,y=null;for(let z=j,B=j+k;z<B;z++){let E;E=rn(v,f,i,z,null,m,p),E&&E['distance']<x&&(y=E,x=E[iS(0x5d4)]);}return y;}function kA(b,f,g,i,j,k,m){const {geometry:p}=g,{index:v}=p,w=p['attributes']['position'];for(let x=b,y=f+b;x<y;x++){let z;if(z=x,he(m,z*0x3,v,w),m['needsUpdate']=!0x0,i(m,z,j,k))return!0x0;}return!0x1;}function FA(b,f=null){const iT=a0cH;f&&Array[iT(0x1d4)](f)&&(f=new Set(f));const i=b[iT(0x45e)],j=i[iT(0x1f9)]?i[iT(0x1f9)]['array']:null,k=i[iT(0x974)]['position'];let m,p,v,w,x=0x0;const y=b[iT(0x2fb)];for(let B=0x0,E=y[iT(0x576)];B<E;B++)m=y[B],p=new Uint32Array(m),v=new Uint16Array(m),w=new Float32Array(m),z(0x0,x),x+=m['byteLength'];function z(a0,a1,a2=!0x1){const iU=iT,a3=a0*0x2;if(v[a3+0xf]===nn){const a4=p[a0+0x6],a5=v[a3+0xe];let a6=0x1/0x0,a7=0x1/0x0,a8=0x1/0x0,a9=-0x1/0x0,ab=-0x1/0x0,aj=-0x1/0x0;for(let ak=0x3*a4,am=0x3*(a4+a5);ak<am;ak++){let an=j[ak];const ap=k[iU(0x457)](an),aq=k[iU(0x87d)](an),av=k[iU(0x4e0)](an);ap<a6&&(a6=ap),ap>a9&&(a9=ap),aq<a7&&(a7=aq),aq>ab&&(ab=aq),av<a8&&(a8=av),av>aj&&(aj=av);}return w[a0+0x0]!==a6||w[a0+0x1]!==a7||w[a0+0x2]!==a8||w[a0+0x3]!==a9||w[a0+0x4]!==ab||w[a0+0x5]!==aj?(w[a0+0x0]=a6,w[a0+0x1]=a7,w[a0+0x2]=a8,w[a0+0x3]=a9,w[a0+0x4]=ab,w[a0+0x5]=aj,!0x0):!0x1;}else{const aw=a0+0x8,ax=p[a0+0x6],ay=aw+a1,az=ax+a1;let aB=a2,aC=!0x1,aD=!0x1;f?aB||(aC=f[iU(0x2ce)](ay),aD=f[iU(0x2ce)](az),aB=!aC&&!aD):(aC=!0x0,aD=!0x0);const aE=aB||aC,aF=aB||aD;let aG=!0x1;aE&&(aG=z(aw,a1,aB));let aH=!0x1;aF&&(aH=z(ax,a1,aB));const aI=aG||aH;if(aI)for(let aJ=0x0;aJ<0x3;aJ++){const aK=aw+aJ,aL=ax+aJ,aM=w[aK],aN=w[aK+0x3],aO=w[aL],aP=w[aL+0x3];w[a0+aJ]=aM<aO?aM:aO,w[a0+aJ+0x3]=aN>aP?aN:aP;}return aI;}}}function Mt(i,j,k,v,z){const iV=a0cH;let F,H,L,N,R,S;const T=0x1/k[iV(0x3e5)]['x'],U=0x1/k['direction']['y'],a0=0x1/k['direction']['z'],a1=k['origin']['x'],a2=k[iV(0x812)]['y'],a3=k['origin']['z'];let a4=j[i],a5=j[i+0x3],a6=j[i+0x1],a7=j[i+0x3+0x1],a8=j[i+0x2],a9=j[i+0x3+0x2];return T>=0x0?(F=(a4-a1)*T,H=(a5-a1)*T):(F=(a5-a1)*T,H=(a4-a1)*T),U>=0x0?(L=(a6-a2)*U,N=(a7-a2)*U):(L=(a7-a2)*U,N=(a6-a2)*U),F>N||L>H||((L>F||isNaN(F))&&(F=L),(N<H||isNaN(H))&&(H=N),a0>=0x0?(R=(a8-a3)*a0,S=(a9-a3)*a0):(R=(a9-a3)*a0,S=(a8-a3)*a0),F>S||R>H)?!0x1:((R>F||F!==F)&&(F=R),(S<H||H!==H)&&(H=S),F<=z&&H>=v);}function OA(b,f,g,i,j,k,m,p){const {geometry:v,_indirectBuffer:w}=b;for(let x=i,y=i+j;x<y;x++){let z=w?w[x]:x;rn(v,f,g,z,k,m,p);}}function NA(b,f,i,j,k,m,p){const iW=a0cH,{geometry:v,_indirectBuffer:w}=b;let x=0x1/0x0,y=null;for(let z=j,B=j+k;z<B;z++){let E;E=rn(v,f,i,w?w[z]:z,null,m,p),E&&E['distance']<x&&(y=E,x=E[iW(0x5d4)]);}return y;}function UA(b,f,g,i,j,k,m){const iX=a0cH,{geometry:p}=g,{index:v}=p,w=p[iX(0x974)][iX(0x3e0)];for(let x=b,y=f+b;x<y;x++){let z;if(z=g['resolveTriangleIndex'](x),he(m,z*0x3,v,w),m[iX(0x5f7)]=!0x0,i(m,z,j,k))return!0x0;}return!0x1;}function GA(b,c,d,f,g,h,i){const iY=a0cH;te['setBuffer'](b[iY(0x2fb)][c]),Br(0x0,b,d,f,g,h,i),te[iY(0x3bb)]();}function Br(b,d,f,i,j,k,m){const {float32Array:p,uint16Array:v,uint32Array:w}=te,x=b*0x2;if(Qe(x,v)){const y=Me(b,w),z=Ne(x,v);RA(d,f,i,y,z,j,k,m);}else{const B=Ue(b);Mt(B,p,i,k,m)&&Br(B,d,f,i,j,k,m);const E=Ge(b,w);Mt(E,p,i,k,m)&&Br(E,d,f,i,j,k,m);}}const zA=['x','y','z'];function HA(b,c,d,f,g,h){const iZ=a0cH;te[iZ(0x6fb)](b['_roots'][c]);const i=xr(0x0,b,d,f,g,h);return te['clearBuffer'](),i;}function xr(g,i,j,k,v,x){const j0=a0cH,{float32Array:y,uint16Array:z,uint32Array:A}=te;let E=g*0x2;if(Qe(E,z)){const F=Me(g,A),H=Ne(E,z);return PA(i,j,k,F,H,v,x);}else{const L=fc(g,A),N=zA[L],R=k['direction'][N]>=0x0;let S,T;R?(S=Ue(g),T=Ge(g,A)):(S=Ge(g,A),T=Ue(g));const U=Mt(S,y,k,v,x)?xr(S,i,j,k,v,x):null;if(U){const a1=U[j0(0x21d)][N];if(R?a1<=y[T+L]:a1>=y[T+L+0x3])return U;}const a0=Mt(T,y,k,v,x)?xr(T,i,j,k,v,x):null;return U&&a0?U['distance']<=a0['distance']?U:a0:U||a0||null;}}const _s=new a0h(),Xt=new Xe(),$t=new Xe(),zi=new a0m(),Ro=new ve(),Ts=new ve();function qA(b,c,d,f){const j1=a0cH;te['setBuffer'](b[j1(0x2fb)][c]);const g=vr(0x0,b,d,f);return te[j1(0x3bb)](),g;}function vr(h,i,j,k,v=null){const j2=a0cH,{float32Array:x,uint16Array:z,uint32Array:B}=te;let F=h*0x2;if(v===null&&(j['boundingBox']||j[j2(0x5b1)](),Ro['set'](j[j2(0x785)]['min'],j[j2(0x785)][j2(0x894)],k),v=Ro),Qe(F,z)){const H=i['geometry'],L=H[j2(0x1f9)],N=H['attributes'][j2(0x3e0)],R=j[j2(0x1f9)],S=j[j2(0x974)]['position'],T=Me(h,B),U=Ne(F,z);if(zi['copy'](k)['invert'](),j[j2(0x5d6)])return se(h,x,Ts),Ts['matrix'][j2(0x195)](zi),Ts[j2(0x5f7)]=!0x0,j['boundsTree'][j2(0x3fb)]({'intersectsBounds':a0=>Ts['intersectsBox'](a0),'intersectsTriangle':a0=>{const j3=j2;a0['a']['applyMatrix4'](k),a0['b'][j3(0x5e0)](k),a0['c'][j3(0x5e0)](k),a0['needsUpdate']=!0x0;for(let a1=T*0x3,a2=(U+T)*0x3;a1<a2;a1+=0x3)if(he($t,a1,L,N),$t[j3(0x5f7)]=!0x0,a0['intersectsTriangle']($t))return!0x0;return!0x1;}});for(let a0=T*0x3,a1=(U+T)*0x3;a0<a1;a0+=0x3){he(Xt,a0,L,N),Xt['a']['applyMatrix4'](zi),Xt['b'][j2(0x5e0)](zi),Xt['c'][j2(0x5e0)](zi),Xt[j2(0x5f7)]=!0x0;for(let a2=0x0,a3=R[j2(0xa6a)];a2<a3;a2+=0x3)if(he($t,a2,R,S),$t['needsUpdate']=!0x0,Xt['intersectsTriangle']($t))return!0x0;}}else{const a4=h+0x8,a5=B[h+0x6];return se(a4,x,_s),!!(v['intersectsBox'](_s)&&vr(a4,i,j,k,v)||(se(a5,x,_s),v[j2(0x675)](_s)&&vr(a5,i,j,k,v)));}}const Qs=new a0m(),Un=new ve(),Hi=new ve(),VA=new a0c(),jA=new a0c(),YA=new a0c(),KA=new a0c();function WA(i,j,k,v={},x={},z=0x0,B=0x1/0x0){const j4=a0cH;j[j4(0x785)]||j['computeBoundingBox'](),Un[j4(0x46c)](j[j4(0x785)][j4(0x2f8)],j['boundingBox']['max'],k),Un[j4(0x5f7)]=!0x0;const F=i[j4(0x45e)],H=F['attributes']['position'],L=F['index'],N=j['attributes']['position'],R=j['index'],S=ze['getPrimitive'](),T=ze['getPrimitive']();let U=VA,a0=jA,a1=null,a2=null;x&&(a1=YA,a2=KA);let a3=0x1/0x0,a4=null,a5=null;return Qs['copy'](k)['invert'](),Hi[j4(0x5bb)][j4(0x195)](Qs),i['shapecast']({'boundsTraverseOrder':a6=>Un[j4(0x2a2)](a6),'intersectsBounds':(a6,a7,a8)=>a8<a3&&a8<B?(a7&&(Hi['min'][j4(0x195)](a6[j4(0x2f8)]),Hi['max']['copy'](a6[j4(0x894)]),Hi['needsUpdate']=!0x0),!0x0):!0x1,'intersectsRange':(a6,a7)=>{const j5=j4;if(j[j5(0x5d6)])return j[j5(0x5d6)][j5(0x3fb)]({'boundsTraverseOrder':a8=>Hi[j5(0x2a2)](a8),'intersectsBounds':(a8,a9,ab)=>ab<a3&&ab<B,'intersectsRange':(a8,a9)=>{const j6=j5;for(let ab=a8,aj=a8+a9;ab<aj;ab++){he(T,0x3*ab,R,N),T['a'][j6(0x5e0)](k),T['b']['applyMatrix4'](k),T['c'][j6(0x5e0)](k),T['needsUpdate']=!0x0;for(let ak=a6,am=a6+a7;ak<am;ak++){he(S,0x3*ak,L,H),S[j6(0x5f7)]=!0x0;const an=S['distanceToTriangle'](T,U,a1);if(an<a3&&(a0['copy'](U),a2&&a2[j6(0x195)](a1),a3=an,a4=ak,a5=ab),an<z)return!0x0;}}}});{const a8=_i(j);for(let a9=0x0,ab=a8;a9<ab;a9++){he(T,0x3*a9,R,N),T['a'][j5(0x5e0)](k),T['b']['applyMatrix4'](k),T['c'][j5(0x5e0)](k),T['needsUpdate']=!0x0;for(let aj=a6,ak=a6+a7;aj<ak;aj++){he(S,0x3*aj,L,H),S[j5(0x5f7)]=!0x0;const am=S[j5(0x8a9)](T,U,a1);if(am<a3&&(a0['copy'](U),a2&&a2['copy'](a1),a3=am,a4=aj,a5=a9),am<z)return!0x0;}}}}}),ze[j4(0x2f6)](S),ze[j4(0x2f6)](T),a3===0x1/0x0?null:(v['point']?v[j4(0x21d)]['copy'](a0):v[j4(0x21d)]=a0[j4(0x8e8)](),v['distance']=a3,v['faceIndex']=a4,x&&(x[j4(0x21d)]?x['point'][j4(0x195)](a2):x[j4(0x21d)]=a2['clone'](),x['point']['applyMatrix4'](Qs),a0['applyMatrix4'](Qs),x[j4(0x5d4)]=a0[j4(0x480)](x['point'])['length'](),x['faceIndex']=a5),v);}function JA(b,f=null){const j7=a0cH;f&&Array['isArray'](f)&&(f=new Set(f));const i=b[j7(0x45e)],j=i['index']?i[j7(0x1f9)]['array']:null,k=i[j7(0x974)][j7(0x3e0)];let m,p,v,w,x=0x0;const y=b[j7(0x2fb)];for(let B=0x0,E=y[j7(0x576)];B<E;B++)m=y[B],p=new Uint32Array(m),v=new Uint16Array(m),w=new Float32Array(m),z(0x0,x),x+=m[j7(0x4ba)];function z(a0,a1,a2=!0x1){const j8=j7,a3=a0*0x2;if(v[a3+0xf]===nn){const a4=p[a0+0x6],a5=v[a3+0xe];let a6=0x1/0x0,a7=0x1/0x0,a8=0x1/0x0,a9=-0x1/0x0,ab=-0x1/0x0,aj=-0x1/0x0;for(let ak=a4,am=a4+a5;ak<am;ak++){const an=0x3*b['resolveTriangleIndex'](ak);for(let ap=0x0;ap<0x3;ap++){let aq=an+ap;aq=j?j[aq]:aq;const av=k['getX'](aq),aw=k[j8(0x87d)](aq),ax=k[j8(0x4e0)](aq);av<a6&&(a6=av),av>a9&&(a9=av),aw<a7&&(a7=aw),aw>ab&&(ab=aw),ax<a8&&(a8=ax),ax>aj&&(aj=ax);}}return w[a0+0x0]!==a6||w[a0+0x1]!==a7||w[a0+0x2]!==a8||w[a0+0x3]!==a9||w[a0+0x4]!==ab||w[a0+0x5]!==aj?(w[a0+0x0]=a6,w[a0+0x1]=a7,w[a0+0x2]=a8,w[a0+0x3]=a9,w[a0+0x4]=ab,w[a0+0x5]=aj,!0x0):!0x1;}else{const ay=a0+0x8,az=p[a0+0x6],aB=ay+a1,aC=az+a1;let aD=a2,aE=!0x1,aF=!0x1;f?aD||(aE=f['has'](aB),aF=f[j8(0x2ce)](aC),aD=!aE&&!aF):(aE=!0x0,aF=!0x0);const aG=aD||aE,aH=aD||aF;let aI=!0x1;aG&&(aI=z(ay,a1,aD));let aJ=!0x1;aH&&(aJ=z(az,a1,aD));const aK=aI||aJ;if(aK)for(let aL=0x0;aL<0x3;aL++){const aM=ay+aL,aN=az+aL,aO=w[aM],aP=w[aM+0x3],aQ=w[aN],aR=w[aN+0x3];w[a0+aL]=aO<aQ?aO:aQ,w[a0+aL+0x3]=aP>aR?aP:aR;}return aK;}}}function XA(b,c,d,f,g,h,i){const j9=a0cH;te[j9(0x6fb)](b['_roots'][c]),_r(0x0,b,d,f,g,h,i),te['clearBuffer']();}function _r(b,d,f,i,j,k,m){const {float32Array:p,uint16Array:v,uint32Array:w}=te,x=b*0x2;if(Qe(x,v)){const y=Me(b,w),z=Ne(x,v);OA(d,f,i,y,z,j,k,m);}else{const B=Ue(b);Mt(B,p,i,k,m)&&_r(B,d,f,i,j,k,m);const E=Ge(b,w);Mt(E,p,i,k,m)&&_r(E,d,f,i,j,k,m);}}const $A=['x','y','z'];function ZA(b,c,d,f,g,h){te['setBuffer'](b['_roots'][c]);const i=Tr(0x0,b,d,f,g,h);return te['clearBuffer'](),i;}function Tr(g,i,j,k,v,x){const jb=a0cH,{float32Array:y,uint16Array:z,uint32Array:A}=te;let E=g*0x2;if(Qe(E,z)){const F=Me(g,A),H=Ne(E,z);return NA(i,j,k,F,H,v,x);}else{const L=fc(g,A),N=$A[L],R=k['direction'][N]>=0x0;let S,T;R?(S=Ue(g),T=Ge(g,A)):(S=Ge(g,A),T=Ue(g));const U=Mt(S,y,k,v,x)?Tr(S,i,j,k,v,x):null;if(U){const a1=U[jb(0x21d)][N];if(R?a1<=y[T+L]:a1>=y[T+L+0x3])return U;}const a0=Mt(T,y,k,v,x)?Tr(T,i,j,k,v,x):null;return U&&a0?U[jb(0x5d4)]<=a0['distance']?U:a0:U||a0||null;}}const Ss=new a0h(),Zt=new Xe(),ei=new Xe(),qi=new a0m(),Po=new ve(),Ds=new ve();function ed(b,c,d,f){const jf=a0cH;te['setBuffer'](b[jf(0x2fb)][c]);const g=Qr(0x0,b,d,f);return te[jf(0x3bb)](),g;}function Qr(h,i,j,k,v=null){const jg=a0cH,{float32Array:x,uint16Array:z,uint32Array:F}=te;let H=h*0x2;if(v===null&&(j[jg(0x785)]||j['computeBoundingBox'](),Po[jg(0x46c)](j['boundingBox']['min'],j[jg(0x785)][jg(0x894)],k),v=Po),Qe(H,z)){const L=i[jg(0x45e)],N=L['index'],R=L[jg(0x974)]['position'],S=j['index'],T=j[jg(0x974)][jg(0x3e0)],U=Me(h,F),a0=Ne(H,z);if(qi['copy'](k)[jg(0x81d)](),j[jg(0x5d6)])return se(h,x,Ds),Ds['matrix'][jg(0x195)](qi),Ds[jg(0x5f7)]=!0x0,j['boundsTree'][jg(0x3fb)]({'intersectsBounds':a1=>Ds[jg(0x675)](a1),'intersectsTriangle':a1=>{const jj=jg;a1['a']['applyMatrix4'](k),a1['b']['applyMatrix4'](k),a1['c']['applyMatrix4'](k),a1[jj(0x5f7)]=!0x0;for(let a2=U,a3=a0+U;a2<a3;a2++)if(he(ei,0x3*i['resolveTriangleIndex'](a2),N,R),ei[jj(0x5f7)]=!0x0,a1[jj(0x4a5)](ei))return!0x0;return!0x1;}});for(let a1=U,a2=a0+U;a1<a2;a1++){const a3=i['resolveTriangleIndex'](a1);he(Zt,0x3*a3,N,R),Zt['a']['applyMatrix4'](qi),Zt['b'][jg(0x5e0)](qi),Zt['c'][jg(0x5e0)](qi),Zt[jg(0x5f7)]=!0x0;for(let a4=0x0,a5=S[jg(0xa6a)];a4<a5;a4+=0x3)if(he(ei,a4,S,T),ei[jg(0x5f7)]=!0x0,Zt[jg(0x4a5)](ei))return!0x0;}}else{const a6=h+0x8,a7=F[h+0x6];return se(a6,x,Ss),!!(v['intersectsBox'](Ss)&&Qr(a6,i,j,k,v)||(se(a7,x,Ss),v['intersectsBox'](Ss)&&Qr(a7,i,j,k,v)));}}const Ms=new a0m(),Gn=new ve(),Vi=new ve(),td=new a0c(),id=new a0c(),sd=new a0c(),nd=new a0c();function rd(i,j,k,v={},x={},z=0x0,B=0x1/0x0){const jk=a0cH;j[jk(0x785)]||j['computeBoundingBox'](),Gn[jk(0x46c)](j['boundingBox'][jk(0x2f8)],j[jk(0x785)]['max'],k),Gn['needsUpdate']=!0x0;const F=i['geometry'],H=F[jk(0x974)][jk(0x3e0)],L=F[jk(0x1f9)],N=j[jk(0x974)]['position'],R=j[jk(0x1f9)],S=ze[jk(0x618)](),T=ze[jk(0x618)]();let U=td,a0=id,a1=null,a2=null;x&&(a1=sd,a2=nd);let a3=0x1/0x0,a4=null,a5=null;return Ms['copy'](k)[jk(0x81d)](),Vi[jk(0x5bb)]['copy'](Ms),i[jk(0x3fb)]({'boundsTraverseOrder':a6=>Gn['distanceToBox'](a6),'intersectsBounds':(a6,a7,a8)=>a8<a3&&a8<B?(a7&&(Vi[jk(0x2f8)][jk(0x195)](a6[jk(0x2f8)]),Vi['max'][jk(0x195)](a6['max']),Vi[jk(0x5f7)]=!0x0),!0x0):!0x1,'intersectsRange':(a6,a7)=>{const jm=jk;if(j['boundsTree']){const a8=j[jm(0x5d6)];return a8[jm(0x3fb)]({'boundsTraverseOrder':a9=>Vi['distanceToBox'](a9),'intersectsBounds':(a9,ab,aj)=>aj<a3&&aj<B,'intersectsRange':(a9,ab)=>{const jp=jm;for(let aj=a9,ak=a9+ab;aj<ak;aj++){const am=a8[jp(0x74b)](aj);he(T,0x3*am,R,N),T['a'][jp(0x5e0)](k),T['b']['applyMatrix4'](k),T['c'][jp(0x5e0)](k),T['needsUpdate']=!0x0;for(let an=a6,ap=a6+a7;an<ap;an++){const aq=i[jp(0x74b)](an);he(S,0x3*aq,L,H),S['needsUpdate']=!0x0;const av=S[jp(0x8a9)](T,U,a1);if(av<a3&&(a0[jp(0x195)](U),a2&&a2[jp(0x195)](a1),a3=av,a4=an,a5=aj),av<z)return!0x0;}}}});}else{const a9=_i(j);for(let ab=0x0,aj=a9;ab<aj;ab++){he(T,0x3*ab,R,N),T['a']['applyMatrix4'](k),T['b'][jm(0x5e0)](k),T['c']['applyMatrix4'](k),T['needsUpdate']=!0x0;for(let ak=a6,am=a6+a7;ak<am;ak++){const an=i['resolveTriangleIndex'](ak);he(S,0x3*an,L,H),S['needsUpdate']=!0x0;const ap=S['distanceToTriangle'](T,U,a1);if(ap<a3&&(a0['copy'](U),a2&&a2['copy'](a1),a3=ap,a4=ak,a5=ab),ap<z)return!0x0;}}}}}),ze[jk(0x2f6)](S),ze[jk(0x2f6)](T),a3===0x1/0x0?null:(v['point']?v['point']['copy'](a0):v[jk(0x21d)]=a0['clone'](),v['distance']=a3,v['faceIndex']=a4,x&&(x['point']?x[jk(0x21d)][jk(0x195)](a2):x['point']=a2['clone'](),x['point']['applyMatrix4'](Ms),a0['applyMatrix4'](Ms),x[jk(0x5d4)]=a0['sub'](x[jk(0x21d)])['length'](),x[jk(0x233)]=a5),v);}function od(){return typeof SharedArrayBuffer<'u';}const os=new te['constructor'](),$s=new te['constructor'](),Tt=new Jr(()=>new a0h()),ti=new a0h(),ii=new a0h(),zn=new a0h(),Hn=new a0h();let qn=!0x1;function ad(b,i,j,k){const jq=a0cH;if(qn)throw new Error('MeshBVH:\x20Recursive\x20calls\x20to\x20bvhcast\x20not\x20supported.');qn=!0x0;const m=b[jq(0x2fb)],p=i[jq(0x2fb)];let v,w=0x0,x=0x0;const y=new a0m()[jq(0x195)](j)[jq(0x81d)]();for(let z=0x0,B=m[jq(0x576)];z<B;z++){os[jq(0x6fb)](m[z]),x=0x0;const E=Tt['getPrimitive']();se(0x0,os['float32Array'],E),E['applyMatrix4'](y);for(let F=0x0,H=p['length'];F<H&&($s[jq(0x6fb)](p[F]),v=Ke(0x0,0x0,j,y,k,w,x,0x0,0x0,E),$s['clearBuffer'](),x+=p[F]['length'],!v);F++);if(Tt[jq(0x2f6)](E),os[jq(0x3bb)](),w+=m[z][jq(0x576)],v)break;}return qn=!0x1,v;}function Ke(i,j,z,H,a0,a1=0x0,a2=0x0,a3=0x0,a4=0x0,a5=null,a6=!0x1){const jv=a0cH;let a7,a8;a6?(a7=$s,a8=os):(a7=os,a8=$s);const a9=a7['float32Array'],ab=a7[jv(0x8db)],aj=a7['uint16Array'],ak=a8['float32Array'],am=a8['uint32Array'],an=a8['uint16Array'],ap=i*0x2,aq=j*0x2,av=Qe(ap,aj),aw=Qe(aq,an);let ax=!0x1;if(aw&&av)a6?ax=a0(Me(j,am),Ne(j*0x2,an),Me(i,ab),Ne(i*0x2,aj),a4,a2+j,a3,a1+i):ax=a0(Me(i,ab),Ne(i*0x2,aj),Me(j,am),Ne(j*0x2,an),a3,a1+i,a4,a2+j);else{if(aw){const ay=Tt[jv(0x618)]();se(j,ak,ay),ay[jv(0x5e0)](z);const az=Ue(i),aB=Ge(i,ab);se(az,a9,ti),se(aB,a9,ii);const aC=ay['intersectsBox'](ti),aD=ay['intersectsBox'](ii);ax=aC&&Ke(j,az,H,z,a0,a2,a1,a4,a3+0x1,ay,!a6)||aD&&Ke(j,aB,H,z,a0,a2,a1,a4,a3+0x1,ay,!a6),Tt[jv(0x2f6)](ay);}else{const aE=Ue(j),aF=Ge(j,am);se(aE,ak,zn),se(aF,ak,Hn);const aG=a5['intersectsBox'](zn),aH=a5['intersectsBox'](Hn);if(aG&&aH)ax=Ke(i,aE,z,H,a0,a1,a2,a3,a4+0x1,a5,a6)||Ke(i,aF,z,H,a0,a1,a2,a3,a4+0x1,a5,a6);else{if(aG){if(av)ax=Ke(i,aE,z,H,a0,a1,a2,a3,a4+0x1,a5,a6);else{const aI=Tt[jv(0x618)]();aI[jv(0x195)](zn)['applyMatrix4'](z);const aJ=Ue(i),aK=Ge(i,ab);se(aJ,a9,ti),se(aK,a9,ii);const aL=aI['intersectsBox'](ti),aM=aI[jv(0x675)](ii);ax=aL&&Ke(aE,aJ,H,z,a0,a2,a1,a4,a3+0x1,aI,!a6)||aM&&Ke(aE,aK,H,z,a0,a2,a1,a4,a3+0x1,aI,!a6),Tt[jv(0x2f6)](aI);}}else{if(aH){if(av)ax=Ke(i,aF,z,H,a0,a1,a2,a3,a4+0x1,a5,a6);else{const aN=Tt[jv(0x618)]();aN[jv(0x195)](Hn)[jv(0x5e0)](z);const aO=Ue(i),aP=Ge(i,ab);se(aO,a9,ti),se(aP,a9,ii);const aQ=aN[jv(0x675)](ti),aR=aN['intersectsBox'](ii);ax=aQ&&Ke(aF,aO,H,z,a0,a2,a1,a4,a3+0x1,aN,!a6)||aR&&Ke(aF,aP,H,z,a0,a2,a1,a4,a3+0x1,aN,!a6),Tt[jv(0x2f6)](aN);}}}}}}return ax;}const Ls=new ve(),ko=new a0h(),cd={'strategy':dc,'maxDepth':0x28,'maxLeafTris':0xa,'useSharedArrayBuffer':!0x1,'setBoundingBox':!0x0,'onProgress':null,'indirect':!0x1,'verbose':!0x0,'range':null};class Xr{static[a0cH(0x8b2)](b,d={}){const jw=a0cH;d={'cloneBuffers':!0x0,...d};const f=b[jw(0x45e)],g=b[jw(0x2fb)],h=b[jw(0x22b)],i=f['getIndex']();let j;return d[jw(0xa71)]?j={'roots':g[jw(0x941)](k=>k['slice']()),'index':i?i[jw(0x779)]['slice']():null,'indirectBuffer':h?h['slice']():null}:j={'roots':g,'index':i?i['array']:null,'indirectBuffer':h},j;}static['deserialize'](b,d,f={}){const jx=a0cH;f={'setIndex':!0x0,'indirect':!!b[jx(0x7c4)],...f};const {index:g,roots:i,indirectBuffer:j}=b,k=new Xr(d,{...f,[Pn]:!0x0});if(k['_roots']=i,k[jx(0x22b)]=j||null,f['setIndex']){const m=d[jx(0x3b4)]();if(m===null){const p=new a0F(b[jx(0x1f9)],0x1,!0x1);d[jx(0x31e)](p);}else m['array']!==g&&(m['array'][jx(0x46c)](g),m['needsUpdate']=!0x0);}return k;}get['indirect'](){const jy=a0cH;return!!this[jy(0x22b)];}constructor(b,c={}){const jz=a0cH;if(b[jz(0x2eb)]){if(b['index']&&b[jz(0x1f9)]['isInterleavedBufferAttribute'])throw new Error(jz(0x6b5));}else throw new Error(jz(0x5e8));if(c=Object[jz(0x9a8)]({...cd,[Pn]:!0x1},c),c['useSharedArrayBuffer']&&!od())throw new Error(jz(0x947));this['geometry']=b,this['_roots']=null,this[jz(0x22b)]=null,c[Pn]||(IA(this,c),!b[jz(0x785)]&&c['setBoundingBox']&&(b[jz(0x785)]=this[jz(0xb69)](new a0h()))),this['resolveTriangleIndex']=c['indirect']?d=>this[jz(0x22b)][d]:d=>d;}[a0cH(0x2c6)](b=null){const jB=a0cH;return(this[jB(0x605)]?JA:FA)(this,b);}['traverse'](b,c=0x0){const jC=a0cH,d=this[jC(0x2fb)][c],f=new Uint32Array(d),g=new Uint16Array(d);h(0x0);function h(i,j=0x0){const k=i*0x2,m=g[k+0xf]===nn;if(m){const p=f[i+0x6],v=g[k+0xe];b(j,m,new Float32Array(d,i*0x4,0x6),p,v);}else{const w=i+rs/0x4,x=f[i+0x6],y=f[i+0x7];b(j,m,new Float32Array(d,i*0x4,0x6),y)||(h(w,j+0x1),h(x,j+0x1));}}}['raycast'](i,j=a0aD,k=0x0,v=0x1/0x0){const jD=a0cH,w=this['_roots'],x=this[jD(0x45e)],z=[],B=j['isMaterial'],F=Array['isArray'](j),H=x['groups'],L=B?j['side']:j,N=this[jD(0x605)]?XA:GA;for(let R=0x0,S=w['length'];R<S;R++){const T=F?j[H[R]['materialIndex']][jD(0x1c0)]:L,U=z['length'];if(N(this,R,T,i,z,k,v),F){const a0=H[R][jD(0x71f)];for(let a1=U,a2=z[jD(0x576)];a1<a2;a1++)z[a1]['face'][jD(0x71f)]=a0;}}return z;}['raycastFirst'](i,j=a0aD,k=0x0,m=0x1/0x0){const jE=a0cH,v=this[jE(0x2fb)],w=this[jE(0x45e)],x=j['isMaterial'],y=Array['isArray'](j);let z=null;const B=w['groups'],E=x?j[jE(0x1c0)]:j,F=this['indirect']?ZA:HA;for(let H=0x0,L=v['length'];H<L;H++){const N=y?j[B[H][jE(0x71f)]][jE(0x1c0)]:E,R=F(this,H,N,i,k,m);R!=null&&(z==null||R[jE(0x5d4)]<z[jE(0x5d4)])&&(z=R,y&&(R['face']['materialIndex']=B[H]['materialIndex']));}return z;}['intersectsGeometry'](b,d){const jF=a0cH;let f=!0x1;const g=this['_roots'],h=this['indirect']?ed:qA;for(let i=0x0,j=g[jF(0x576)];i<j&&(f=h(this,i,b,d),!f);i++);return f;}['shapecast'](b){const jG=a0cH,f=ze[jG(0x618)](),i=this[jG(0x605)]?UA:kA;let {boundsTraverseOrder:j,intersectsBounds:k,intersectsRange:m,intersectsTriangle:p}=b;if(m&&p){const y=m;m=(z,B,E,F,H)=>y(z,B,E,F,H)?!0x0:i(z,B,this,p,E,F,f);}else m||(p?m=(z,B,E,F)=>i(z,B,this,p,E,F,f):m=(z,B,E)=>E);let v=!0x1,w=0x0;const x=this['_roots'];for(let z=0x0,B=x[jG(0x576)];z<B;z++){const E=x[z];if(v=QA(this,z,k,m,j,w),v)break;w+=E['byteLength'];}return ze[jG(0x2f6)](f),v;}[a0cH(0x2ba)](b,i,j){const jH=a0cH;let {intersectsRanges:k,intersectsTriangles:m}=j;const v=ze[jH(0x618)](),w=this['geometry']['index'],x=this['geometry'][jH(0x974)][jH(0x3e0)],y=this[jH(0x605)]?H=>{const jI=jH,L=this[jI(0x74b)](H);he(v,L*0x3,w,x);}:H=>{he(v,H*0x3,w,x);},z=ze['getPrimitive'](),B=b['geometry']['index'],E=b['geometry'][jH(0x974)][jH(0x3e0)],F=b['indirect']?H=>{const jJ=jH,L=b[jJ(0x74b)](H);he(z,L*0x3,B,E);}:H=>{he(z,H*0x3,B,E);};if(m){const H=(L,N,R,U,a0,a1,a2,a3)=>{const jK=jH;for(let a4=R,a5=R+U;a4<a5;a4++){F(a4),z['a']['applyMatrix4'](i),z['b']['applyMatrix4'](i),z['c']['applyMatrix4'](i),z['needsUpdate']=!0x0;for(let a6=L,a7=L+N;a6<a7;a6++)if(y(a6),v[jK(0x5f7)]=!0x0,m(v,z,a6,a4,a0,a1,a2,a3))return!0x0;}return!0x1;};if(k){const L=k;k=function(N,R,S,T,U,a0,a1,a2){return L(N,R,S,T,U,a0,a1,a2)?!0x0:H(N,R,S,T,U,a0,a1,a2);};}else k=H;}return ad(this,b,i,k);}['intersectsBox'](b,c){const jL=a0cH;return Ls[jL(0x46c)](b['min'],b['max'],c),Ls[jL(0x5f7)]=!0x0,this[jL(0x3fb)]({'intersectsBounds':d=>Ls['intersectsBox'](d),'intersectsTriangle':d=>Ls['intersectsTriangle'](d)});}['intersectsSphere'](b){const jM=a0cH;return this[jM(0x3fb)]({'intersectsBounds':c=>b[jM(0x675)](c),'intersectsTriangle':c=>c[jM(0x6d7)](b)});}['closestPointToGeometry'](b,c,d={},f={},g=0x0,h=0x1/0x0){return(this['indirect']?rd:WA)(this,b,c,d,f,g,h);}[a0cH(0x189)](b,c={},d=0x0,f=0x1/0x0){return SA(this,b,c,d,f);}['getBoundingBox'](b){const jN=a0cH;return b[jN(0x9db)](),this['_roots'][jN(0x2cd)](c=>{se(0x0,new Float32Array(c),ko),b['union'](ko);}),b;}}function Fo(b,c,d){const jO=a0cH;return b===null?null:(b['point'][jO(0x5e0)](c['matrixWorld']),b['distance']=b['point'][jO(0x5ac)](d[jO(0x9c8)]['origin']),b['object']=c,b);}const Rs=new a0aF(),Oo=new a0c(),No=new a0m(),ld=a0e[a0cH(0x598)][a0cH(0x613)],hd=a0aE[a0cH(0x598)][a0cH(0x613)],Uo=new a0c(),Ee=new a0e(),Ps=[];function Ad(b,c){const jP=a0cH;this[jP(0x874)]?dd[jP(0x95c)](this,b,c):ud['call'](this,b,c);}function dd(b,f){const jQ=a0cH;if(this['boundsTrees']){const i=this['boundsTrees'],j=this[jQ(0x22f)]||this['_instanceInfo'],k=this[jQ(0x60a)]||this[jQ(0x653)],m=this[jQ(0xa7c)];Ee['material']=this[jQ(0xb87)],Ee['geometry']=this[jQ(0x45e)];const p=Ee['geometry']['boundsTree'],v=Ee[jQ(0x45e)][jQ(0x8d6)];Ee['geometry']['boundingSphere']===null&&(Ee['geometry'][jQ(0x50d)]=new a0t());for(let w=0x0,x=j[jQ(0x576)];w<x;w++){if(!this['getVisibleAt'](w))continue;const y=j[w]['geometryIndex'];if(Ee[jQ(0x45e)]['boundsTree']=i[y],this['getMatrixAt'](w,Ee['matrixWorld'])['premultiply'](m),!Ee[jQ(0x45e)][jQ(0x5d6)]){this[jQ(0x1b1)](y,Ee['geometry']['boundingBox']),this['getBoundingSphereAt'](y,Ee[jQ(0x45e)]['boundingSphere']);const z=k[y];Ee[jQ(0x45e)]['setDrawRange'](z['start'],z['count']);}Ee[jQ(0x613)](b,Ps);for(let B=0x0,E=Ps['length'];B<E;B++){const F=Ps[B];F[jQ(0x8c0)]=this,F[jQ(0xb8d)]=w,f['push'](F);}Ps['length']=0x0;}Ee['geometry']['boundsTree']=p,Ee['geometry']['drawRange']=v,Ee[jQ(0xb87)]=null,Ee['geometry']=null;}else hd[jQ(0x95c)](this,b,f);}function ud(b,d){const jR=a0cH;if(this[jR(0x45e)][jR(0x5d6)]){if(this['material']===void 0x0)return;No['copy'](this['matrixWorld'])[jR(0x81d)](),Rs[jR(0x195)](b['ray'])['applyMatrix4'](No),Uo[jR(0x7f2)](this['matrixWorld']),Oo[jR(0x195)](Rs['direction'])['multiply'](Uo);const f=Oo['length'](),g=b[jR(0xa4e)]/f,i=b['far']/f,j=this[jR(0x45e)]['boundsTree'];if(b['firstHitOnly']===!0x0){const k=Fo(j['raycastFirst'](Rs,this[jR(0xb87)],g,i),this,b);k&&d['push'](k);}else{const m=j[jR(0x613)](Rs,this[jR(0xb87)],g,i);for(let p=0x0,u=m[jR(0x576)];p<u;p++){const v=Fo(m[p],this,b);v&&d[jR(0x50e)](v);}}}else ld[jR(0x95c)](this,b,d);}function gd(b={}){return this['boundsTree']=new Xr(this,b),this['boundsTree'];}function fd(){this['boundsTree']=null;}a0j[a0cH(0x598)][a0cH(0x204)]=gd,a0j[a0cH(0x598)]['disposeBoundsTree']=fd,a0e[a0cH(0x598)][a0cH(0x613)]=Ad,a0d[a0cH(0x598)]['findObjectByPartialName']=function(b,c=!0x1){let d;const f=c?b:b['toLowerCase']();return this['traverse'](g=>{const jS=a0b;if(d)return;(c?g['name']:g['name']?.[jS(0x816)]())?.[jS(0x36a)](f)&&(d=g);}),d;},a0d['prototype']['traverseUntilFound']=function(b){const jT=a0cH;let c;return this[jT(0x730)](d=>{!c&&b(d)&&(c=d);}),c;};function pd(){const jU=a0cH;a0j[jU(0x598)][jU(0x2d7)]('computeBoundsTree')||console[jU(0x323)](jU(0x2bb));}const md=new a0aG({'color':0xff,'emissive':a0cH(0x9da),'emissiveIntensity':0x1,'transparent':!0x0,'opacity':0.9}),bd=new a0aH({'color':0xffffff,'transparent':!0x0,'opacity':0x1,'transmission':0x0,'roughness':0.1,'metalness':0x0,'clearcoat':0.5,'clearcoatRoughness':0x0});new a0aG({'color':new a0G(0xe62020),'roughness':0.3,'metalness':0.7,'transparent':!0x1,'opacity':0x1,'envMapIntensity':0.8}),new a0aG({'color':new a0G(0x3ff34b),'roughness':0.3,'metalness':0.7,'transparent':!0x1,'opacity':0x1,'envMapIntensity':0.8}),new a0aG({'color':new a0G(0xd0d0d0),'roughness':0.5,'metalness':0x0,'transparent':!0x1,'opacity':0x1,'envMapIntensity':0.5});const Ed=new a0g({'color':0xffffff,'transparent':!0x1}),Cd=new a0i({'color':0x121212});function Xg(){return{'whiteMaterial':Ed,'emissiveMaterial':md,'glassMaterial':bd};}const yd=sn();class wd{constructor(b,c,d,f){const jV=a0cH;C(this,'el'),C(this,jV(0xa3c)),C(this,jV(0x495)),C(this,jV(0x418)),C(this,jV(0x976),null),C(this,'cssRenderer',null),C(this,jV(0x72f),null),(this['el']=b,this[jV(0xa3c)]=c,this[jV(0x495)]=d,this[jV(0x418)]=f);}[a0cH(0xadd)](){const jW=a0cH,b=new hh();return b['setSize'](this['el'][jW(0x5e7)],this['el'][jW(0x281)]),b['domElement'][jW(0x639)]['position']='absolute',b['domElement']['style']['top']='0',this['el']['appendChild'](b['domElement']),this['cssRenderer']=b,b;}['initWebGLRenderer'](){const jX=a0cH,{render:b}=this['options'],c={'antialias':!0x0,'powerPreference':jX(0xa2d)};b?.[jX(0x51d)]&&a0bq(c,b['webGLRenderer']);const d=new a0aI(c);return yd?d['setPixelRatio'](window[jX(0x94e)]*0.75):d[jX(0x7eb)](window[jX(0x94e)]),d['setSize'](this['el'][jX(0x5e7)],this['el']['clientHeight']),d['domElement']['addEventListener']('webglcontextlost',this[jX(0x495)]),d['domElement'][jX(0x1f6)](jX(0x8a6),this[jX(0x418)]),d['localClippingEnabled']=!0x0,d['outputColorSpace']=a0D,d['domElement']['style'][jX(0x3e0)]='absolute',this['el'][jX(0x89a)](d['domElement']),this[jX(0x72f)]=d['domElement'],this['renderer']=d,d;}['updateSize'](b,c){const jY=a0cH;this[jY(0x976)]&&this[jY(0x976)][jY(0x1f4)](b,c),this[jY(0x72d)]&&this['cssRenderer'][jY(0x1f4)](b,c);}[a0cH(0xa58)](){const jZ=a0cH;this['renderer']&&(this['renderer']['dispose'](),this[jZ(0x976)]['domElement'][jZ(0x909)]&&this['renderer'][jZ(0x736)]['parentNode']['removeChild'](this[jZ(0x976)]['domElement']),this['renderer']=null),this['cssRenderer']&&(this['cssRenderer'][jZ(0x736)][jZ(0x909)]&&this[jZ(0x72d)][jZ(0x736)]['parentNode'][jZ(0x7f7)](this[jZ(0x72d)][jZ(0x736)]),this[jZ(0x72d)]=null),this['canvas']=null;}}const ie={'LEFT':0x1,'RIGHT':0x2,'MIDDLE':0x4},Q=Object[a0cH(0x469)]({'NONE':0x0,'ROTATE':0x1,'TRUCK':0x2,'SCREEN_PAN':0x4,'OFFSET':0x8,'DOLLY':0x10,'ZOOM':0x20,'TOUCH_ROTATE':0x40,'TOUCH_TRUCK':0x80,'TOUCH_SCREEN_PAN':0x100,'TOUCH_OFFSET':0x200,'TOUCH_DOLLY':0x400,'TOUCH_ZOOM':0x800,'TOUCH_DOLLY_TRUCK':0x1000,'TOUCH_DOLLY_SCREEN_PAN':0x2000,'TOUCH_DOLLY_OFFSET':0x4000,'TOUCH_DOLLY_ROTATE':0x8000,'TOUCH_ZOOM_TRUCK':0x10000,'TOUCH_ZOOM_OFFSET':0x20000,'TOUCH_ZOOM_SCREEN_PAN':0x40000,'TOUCH_ZOOM_ROTATE':0x80000}),si={'NONE':0x0,'IN':0x1,'OUT':-0x1};function kt(b){const k0=a0cH;return b[k0(0x389)];}function _t(b){return b['isOrthographicCamera'];}const ni=Math['PI']*0x2,Go=Math['PI']/0x2,bc=0.00001,ji=Math['PI']/0xb4;function We(b,c,d){return Math['max'](c,Math['min'](d,b));}function X(b,c=bc){return Math['abs'](b)<c;}function K(b,c,d=bc){return X(b-c,d);}function zo(b,c){const k1=a0cH;return Math[k1(0xa2a)](b/c)*c;}function Yi(b){const k2=a0cH;return isFinite(b)?b:b<0x0?-Number['MAX_VALUE']:Number[k2(0x326)];}function Ki(b){const k3=a0cH;return Math['abs'](b)<Number[k3(0x326)]?b:b*(0x1/0x0);}function ks(b,f,i,j,k=0x1/0x0,m){const k4=a0cH;j=Math[k4(0x894)](0.0001,j);const p=0x2/j,v=p*m,w=0x1/(0x1+v+0.48*v*v+0.235*v*v*v);let x=b-f;const y=f,z=k*j;x=We(x,-z,z),f=b-x;const B=(i['value']+p*x)*m;i[k4(0x372)]=(i[k4(0x372)]-p*B)*w;let E=f+(x+B)*w;return y-b>0x0==E>y&&(E=y,i['value']=(E-y)/m),E;}function Ho(i,j,z,H,U=0x1/0x0,a0,a1){const k5=a0cH;H=Math[k5(0x894)](0.0001,H);const a2=0x2/H,a3=a2*a0,a4=0x1/(0x1+a3+0.48*a3*a3+0.235*a3*a3*a3);let a5=j['x'],a6=j['y'],a7=j['z'],a8=i['x']-a5,a9=i['y']-a6,ab=i['z']-a7;const aj=a5,ak=a6,am=a7,an=U*H,ap=an*an,aq=a8*a8+a9*a9+ab*ab;if(aq>ap){const aF=Math[k5(0x902)](aq);a8=a8/aF*an,a9=a9/aF*an,ab=ab/aF*an;}a5=i['x']-a8,a6=i['y']-a9,a7=i['z']-ab;const av=(z['x']+a2*a8)*a0,aw=(z['y']+a2*a9)*a0,ax=(z['z']+a2*ab)*a0;z['x']=(z['x']-a2*av)*a4,z['y']=(z['y']-a2*aw)*a4,z['z']=(z['z']-a2*ax)*a4,a1['x']=a5+(a8+av)*a4,a1['y']=a6+(a9+aw)*a4,a1['z']=a7+(ab+ax)*a4;const ay=aj-i['x'],az=ak-i['y'],aB=am-i['z'],aC=a1['x']-aj,aD=a1['y']-ak,aE=a1['z']-am;return ay*aC+az*aD+aB*aE>0x0&&(a1['x']=aj,a1['y']=ak,a1['z']=am,z['x']=(a1['x']-aj)/a0,z['y']=(a1['y']-ak)/a0,z['z']=(a1['z']-am)/a0),a1;}function Vn(b,c){const k6=a0cH;c['set'](0x0,0x0),b[k6(0x2cd)](d=>{const k7=k6;c['x']+=d[k7(0xa4c)],c['y']+=d[k7(0x6f9)];}),c['x']/=b['length'],c['y']/=b[k6(0x576)];}function jn(b,c){return _t(b)?(console['warn'](c+'\x20is\x20not\x20supported\x20in\x20OrthographicCamera'),!0x0):!0x1;}let Id=class{constructor(){const k8=a0cH;C(this,k8(0x1b3),{});}[a0cH(0x1f6)](b,c){const k9=a0cH,d=this[k9(0x1b3)];d[b]===void 0x0&&(d[b]=[]),d[b][k9(0x279)](c)===-0x1&&d[b][k9(0x50e)](c);}['hasEventListener'](b,c){const d=this['_listeners'];return d[b]!==void 0x0&&d[b]['indexOf'](c)!==-0x1;}[a0cH(0x293)](b,c){const kb=a0cH,d=this[kb(0x1b3)][b];if(d!==void 0x0){const f=d[kb(0x279)](c);f!==-0x1&&d[kb(0x263)](f,0x1);}}['removeAllEventListeners'](b){const kf=a0cH;if(!b){this['_listeners']={};return;}Array['isArray'](this[kf(0x1b3)][b])&&(this[kf(0x1b3)][b]['length']=0x0);}[a0cH(0x4a8)](b){const ki=a0cH,c=this['_listeners'][b[ki(0x223)]];if(c!==void 0x0){b[ki(0x427)]=this;const d=c['slice'](0x0);for(let e=0x0,f=d['length'];e<f;e++)d[e]['call'](this,b);}}};const Bd=a0cH(0x240),Fs=0x1/0x8,xd=/Mac/['test'](globalThis?.[a0cH(0x40d)]?.['platform']);let G,qo,Os,Yn,_e,q,Y,ri,Wi,st,nt,Ft,Vo,jo,Re,Ji,oi,Yo,Kn,Ko,Wn,Jn,Ns;class Te extends Id{constructor(i,j){const kj=a0cH;super(),C(this,kj(0x7fa),0x0),C(this,kj(0x69b),Math['PI']),C(this,'minAzimuthAngle',-0x1/0x0),C(this,'maxAzimuthAngle',0x1/0x0),C(this,kj(0x72b),Number[kj(0x380)]),C(this,'maxDistance',0x1/0x0),C(this,kj(0x386),!0x1),C(this,kj(0x9de),0.01),C(this,'maxZoom',0x1/0x0),C(this,'smoothTime',0.25),C(this,'draggingSmoothTime',0.125),C(this,'maxSpeed',0x1/0x0),C(this,kj(0x1d0),0x1),C(this,kj(0x5d7),0x1),C(this,'dollySpeed',0x1),C(this,'dollyDragInverted',!0x1),C(this,'truckSpeed',0x2),C(this,kj(0x8cc),!0x1),C(this,kj(0x183),!0x1),C(this,kj(0x690),0x0),C(this,'restThreshold',0.01),C(this,kj(0x3d2),[]),C(this,'mouseButtons'),C(this,kj(0x275)),C(this,kj(0x5e2),()=>{}),C(this,'lockPointer'),C(this,'unlockPointer'),C(this,kj(0x945),!0x0),C(this,kj(0x2c3)),C(this,kj(0x8da)),C(this,kj(0x92d)),C(this,kj(0x989),Q['NONE']),C(this,'_domElement'),C(this,kj(0x560),null),C(this,kj(0x867)),C(this,kj(0x742)),C(this,'_focalOffset'),C(this,kj(0x15d)),C(this,'_spherical'),C(this,'_sphericalEnd'),C(this,kj(0x938)),C(this,kj(0x980)),C(this,'_zoomEnd'),C(this,kj(0x140)),C(this,'_cameraUp0'),C(this,'_target0'),C(this,'_position0'),C(this,kj(0x28f)),C(this,'_focalOffset0'),C(this,'_dollyControlCoord'),C(this,kj(0x75c),0x0),C(this,'_changedZoom',0x0),C(this,'_nearPlaneCorners'),C(this,kj(0x9a7),!0x0),C(this,'_boundary'),C(this,kj(0x99f),!0x1),C(this,'_needsUpdate',!0x0),C(this,'_updatedLastTime',!0x1),C(this,'_elementRect',new DOMRect()),C(this,'_isDragging',!0x1),C(this,'_dragNeedsUpdate',!0x0),C(this,'_activePointers',[]),C(this,kj(0x4aa),null),C(this,'_interactiveArea',new DOMRect(0x0,0x0,0x1,0x1)),C(this,kj(0x57a),!0x1),C(this,kj(0x539),!0x1),C(this,kj(0x87f),!0x1),C(this,kj(0x18e),!0x1),C(this,kj(0x655),!0x1),C(this,kj(0x810),si['NONE']),C(this,kj(0x272),{'value':0x0}),C(this,kj(0x4e5),{'value':0x0}),C(this,kj(0x296),{'value':0x0}),C(this,'_targetVelocity',new G[(kj(0x83f))]()),C(this,kj(0x553),new G[(kj(0x83f))]()),C(this,'_zoomVelocity',{'value':0x0}),C(this,kj(0x61d),(S,T,U,a0)=>{const kk=kj;let a1,a2;if(kt(this[kk(0x2c3)])){const a3=q[kk(0x195)](this['_camera']['position'])[kk(0x480)](this[kk(0x867)]),a4=this['_camera'][kk(0x16f)]()*ji,a5=a3[kk(0x576)]()*Math['tan'](a4*0.5);a1=this['truckSpeed']*S*a5/this['_elementRect'][kk(0x75a)],a2=this['truckSpeed']*T*a5/this['_elementRect'][kk(0x75a)];}else{if(_t(this['_camera'])){const a6=this['_camera'];a1=this['truckSpeed']*S*(a6[kk(0x889)]-a6[kk(0x4d1)])/a6[kk(0x694)]/this[kk(0x42f)][kk(0x69c)],a2=this[kk(0x928)]*T*(a6['top']-a6[kk(0xaae)])/a6['zoom']/this[kk(0x42f)][kk(0x75a)];}else return;}a0?(U?this['setFocalOffset'](this[kk(0x15d)]['x']+a1,this[kk(0x15d)]['y'],this['_focalOffsetEnd']['z'],!0x0):this['truck'](a1,0x0,!0x0),this['forward'](-a2,!0x0)):U?this['setFocalOffset'](this['_focalOffsetEnd']['x']+a1,this[kk(0x15d)]['y']+a2,this[kk(0x15d)]['z'],!0x0):this[kk(0xb24)](a1,a2,!0x0);}),C(this,'_rotateInternal',(S,T)=>{const km=kj,U=ni*this['azimuthRotateSpeed']*S/this['_elementRect'][km(0x75a)],a0=ni*this[km(0x5d7)]*T/this[km(0x42f)][km(0x75a)];this['rotate'](U,a0,!0x0);}),C(this,'_dollyInternal',(S,T,U)=>{const kp=kj,a0=Math[kp(0x8c4)](0.95,-S*this['dollySpeed']),a1=this['_sphericalEnd'][kp(0x9f0)],a2=this[kp(0x4b0)]['radius']*a0,a3=We(a2,this[kp(0x72b)],this['maxDistance']),a4=a3-a2;this['infinityDolly']&&this[kp(0x8cc)]?this['_dollyToNoClamp'](a2,!0x0):this['infinityDolly']&&!this['dollyToCursor']?(this['dollyInFixed'](a4,!0x0),this['_dollyToNoClamp'](a3,!0x0)):this[kp(0x9b9)](a3,!0x0),this['dollyToCursor']&&(this['_changedDolly']+=(this['infinityDolly']?a2:a3)-a1,this[kp(0x188)][kp(0x46c)](T,U)),this['_lastDollyDirection']=Math['sign'](-S);}),C(this,kj(0x7e8),(S,T,U)=>{const kq=kj,a0=Math[kq(0x8c4)](0.95,S*this['dollySpeed']),a1=this['_zoom'],a2=this[kq(0x980)]*a0;this['zoomTo'](a2,!0x0),this[kq(0x8cc)]&&(this[kq(0x9c4)]+=a2-a1,this['_dollyControlCoord']['set'](T,U));}),(typeof G>'u'&&console[kj(0x323)](kj(0xabb)),this['_camera']=i,this['_yAxisUpSpace']=new G[(kj(0x5de))]()['setFromUnitVectors'](this['_camera']['up'],Os),this['_yAxisUpSpaceInverse']=this[kj(0x8da)][kj(0x8e8)]()[kj(0x81d)](),this['_state']=Q['NONE'],this[kj(0x867)]=new G['Vector3'](),this[kj(0x742)]=this['_target'][kj(0x8e8)](),this['_focalOffset']=new G[(kj(0x83f))](),this[kj(0x15d)]=this[kj(0x521)][kj(0x8e8)](),this[kj(0x24c)]=new G['Spherical']()[kj(0x550)](q['copy'](this[kj(0x2c3)]['position'])['applyQuaternion'](this['_yAxisUpSpace'])),this[kj(0x4b0)]=this['_spherical']['clone'](),this['_lastDistance']=this['_spherical']['radius'],this['_zoom']=this['_camera']['zoom'],this['_zoomEnd']=this['_zoom'],this[kj(0x140)]=this[kj(0x980)],this[kj(0x30c)]=[new G['Vector3'](),new G[(kj(0x83f))](),new G[(kj(0x83f))](),new G['Vector3']()],this[kj(0x950)](),this[kj(0x7de)]=new G['Box3'](new G[(kj(0x83f))](-0x1/0x0,-0x1/0x0,-0x1/0x0),new G['Vector3'](0x1/0x0,0x1/0x0,0x1/0x0)),this['_cameraUp0']=this[kj(0x2c3)]['up']['clone'](),this[kj(0x430)]=this[kj(0x867)][kj(0x8e8)](),this[kj(0x872)]=this[kj(0x2c3)][kj(0x3e0)]['clone'](),this[kj(0x28f)]=this[kj(0x980)],this[kj(0x907)]=this[kj(0x521)]['clone'](),this['_dollyControlCoord']=new G['Vector2'](),this['mouseButtons']={'left':Q['ROTATE'],'middle':Q['DOLLY'],'right':Q[kj(0x2a0)],'wheel':kt(this['_camera'])?Q['DOLLY']:_t(this['_camera'])?Q['ZOOM']:Q['NONE']},this['touches']={'one':Q['TOUCH_ROTATE'],'two':kt(this[kj(0x2c3)])?Q['TOUCH_DOLLY_TRUCK']:_t(this[kj(0x2c3)])?Q['TOUCH_ZOOM_TRUCK']:Q['NONE'],'three':Q[kj(0x522)]});const k=new G['Vector2'](),m=new G['Vector2'](),t=new G[(kj(0x641))](),v=S=>{const kv=kj;if(!this['_enabled']||!this['_domElement'])return;if(this[kv(0x483)]['left']!==0x0||this['_interactiveArea'][kv(0x2a9)]!==0x0||this['_interactiveArea'][kv(0x69c)]!==0x1||this['_interactiveArea']['height']!==0x1){const a0=this['_domElement'][kv(0x5d9)](),a1=S['clientX']/a0[kv(0x69c)],a2=S[kv(0x6f9)]/a0['height'];if(a1<this['_interactiveArea']['left']||a1>this['_interactiveArea']['right']||a2<this[kv(0x483)][kv(0x2a9)]||a2>this[kv(0x483)]['bottom'])return;}const T=S[kv(0x57e)]!==kv(0x177)?null:(S['buttons']&ie[kv(0x9e3)])===ie['LEFT']?ie['LEFT']:(S[kv(0x245)]&ie['MIDDLE'])===ie['MIDDLE']?ie['MIDDLE']:(S['buttons']&ie[kv(0x492)])===ie[kv(0x492)]?ie['RIGHT']:null;if(T!==null){const a3=this[kv(0x949)](T);a3&&this[kv(0x747)](a3);}if((S['buttons']&ie[kv(0x9e3)])===ie[kv(0x9e3)]&&this[kv(0x4aa)])return;const U={'pointerId':S['pointerId'],'clientX':S[kv(0xa4c)],'clientY':S['clientY'],'deltaX':0x0,'deltaY':0x0,'mouseButton':T};this[kv(0xac3)][kv(0x50e)](U),this['_domElement']['ownerDocument'][kv(0x293)](kv(0x4cc),w,{'passive':!0x1}),this[kv(0x61f)][kv(0x6d9)][kv(0x293)]('pointerup',x),this['_domElement'][kv(0x6d9)][kv(0x1f6)](kv(0x4cc),w,{'passive':!0x1}),this[kv(0x61f)][kv(0x6d9)][kv(0x1f6)]('pointerup',x),this['_isDragging']=!0x0,F(S);},w=S=>{const kw=kj;S['cancelable']&&S[kw(0x8b9)]();const T=S['pointerId'],U=this['_lockedPointer']||this['_findPointerById'](T);if(U){if(U[kw(0xa4c)]=S['clientX'],U['clientY']=S['clientY'],U['deltaX']=S['movementX'],U['deltaY']=S['movementY'],this[kw(0x989)]=0x0,S['pointerType']===kw(0x58b))switch(this['_activePointers'][kw(0x576)]){case 0x1:this['_state']=this['touches']['one'];break;case 0x2:this[kw(0x989)]=this[kw(0x275)][kw(0x25a)];break;case 0x3:this[kw(0x989)]=this['touches'][kw(0x763)];break;}else(!this[kw(0x458)]&&this[kw(0x4aa)]||this[kw(0x458)]&&(S['buttons']&ie[kw(0x9e3)])===ie[kw(0x9e3)])&&(this['_state']=this[kw(0x989)]|this['mouseButtons']['left']),this[kw(0x458)]&&(S[kw(0x245)]&ie[kw(0x8dc)])===ie[kw(0x8dc)]&&(this[kw(0x989)]=this['_state']|this['mouseButtons']['middle']),this['_isDragging']&&(S['buttons']&ie['RIGHT'])===ie['RIGHT']&&(this[kw(0x989)]=this['_state']|this['mouseButtons'][kw(0x889)]);H();}},x=S=>{const kx=kj,T=this['_findPointerById'](S['pointerId']);if(!(T&&T===this['_lockedPointer'])){if(T&&this[kx(0x747)](T),S['pointerType']==='touch')switch(this['_activePointers'][kx(0x576)]){case 0x0:this['_state']=Q[kx(0x8fc)];break;case 0x1:this[kx(0x989)]=this[kx(0x275)][kx(0x6da)];break;case 0x2:this['_state']=this[kx(0x275)][kx(0x25a)];break;case 0x3:this['_state']=this[kx(0x275)][kx(0x763)];break;}else this[kx(0x989)]=Q['NONE'];L();}};let y=-0x1;const z=S=>{const ky=kj;if(!this[ky(0x61f)]||!this['_enabled']||this[ky(0x43b)]['wheel']===Q[ky(0x8fc)])return;if(this['_interactiveArea'][ky(0x4d1)]!==0x0||this['_interactiveArea']['top']!==0x0||this['_interactiveArea'][ky(0x69c)]!==0x1||this[ky(0x483)][ky(0x75a)]!==0x1){const a3=this['_domElement'][ky(0x5d9)](),a4=S['clientX']/a3['width'],a5=S['clientY']/a3['height'];if(a4<this['_interactiveArea'][ky(0x4d1)]||a4>this['_interactiveArea']['right']||a5<this['_interactiveArea']['top']||a5>this['_interactiveArea']['bottom'])return;}if(S[ky(0x8b9)](),this['dollyToCursor']||this[ky(0x43b)][ky(0x489)]===Q[ky(0x837)]||this[ky(0x43b)]['wheel']===Q[ky(0x2a0)]){const a6=performance[ky(0x371)]();y-a6<0x3e8&&this[ky(0x535)](this['_elementRect']),y=a6;}const U=xd?-0x1:-0x3,a0=S['deltaMode']===0x1?S[ky(0x421)]/U:S[ky(0x421)]/(U*0xa),a1=this[ky(0x8cc)]?(S[ky(0xa4c)]-this['_elementRect']['x'])/this[ky(0x42f)]['width']*0x2-0x1:0x0,a2=this[ky(0x8cc)]?(S['clientY']-this[ky(0x42f)]['y'])/this['_elementRect'][ky(0x75a)]*-0x2+0x1:0x0;switch(this[ky(0x43b)]['wheel']){case Q['ROTATE']:{this['_rotateInternal'](S[ky(0x8ae)],S['deltaY']),this[ky(0x57a)]=!0x0;break;}case Q[ky(0x2a0)]:{this[ky(0x61d)](S['deltaX'],S[ky(0x421)],!0x1,!0x1),this['_isUserControllingTruck']=!0x0;break;}case Q[ky(0x793)]:{this[ky(0x61d)](S[ky(0x8ae)],S[ky(0x421)],!0x1,!0x0),this['_isUserControllingTruck']=!0x0;break;}case Q['OFFSET']:{this['_truckInternal'](S['deltaX'],S[ky(0x421)],!0x0,!0x1),this['_isUserControllingOffset']=!0x0;break;}case Q[ky(0xa18)]:{this['_dollyInternal'](-a0,a1,a2),this['_isUserControllingDolly']=!0x0;break;}case Q[ky(0xb45)]:{this[ky(0x7e8)](-a0,a1,a2),this[ky(0x655)]=!0x0;break;}}this['dispatchEvent']({'type':'control'});},B=S=>{const kz=kj;if(!(!this[kz(0x61f)]||!this['_enabled'])){if(this['mouseButtons'][kz(0x889)]===Te['ACTION'][kz(0x8fc)]){const T=S instanceof PointerEvent?S[kz(0x7ea)]:0x0,U=this[kz(0x332)](T);U&&this['_disposePointer'](U),this[kz(0x61f)]['ownerDocument']['removeEventListener'](kz(0x4cc),w,{'passive':!0x1}),this[kz(0x61f)][kz(0x6d9)][kz(0x293)]('pointerup',x);return;}S[kz(0x8b9)]();}},F=S=>{const kB=kj;if(!this[kB(0x945)])return;if(Vn(this['_activePointers'],_e),this[kB(0x535)](this['_elementRect']),k[kB(0x195)](_e),m[kB(0x195)](_e),this['_activePointers'][kB(0x576)]>=0x2){const T=_e['x']-this[kB(0xac3)][0x1][kB(0xa4c)],U=_e['y']-this[kB(0xac3)][0x1][kB(0x6f9)],a0=Math[kB(0x902)](T*T+U*U);t[kB(0x46c)](0x0,a0);const a1=(this[kB(0xac3)][0x0]['clientX']+this[kB(0xac3)][0x1]['clientX'])*0.5,a2=(this['_activePointers'][0x0]['clientY']+this[kB(0xac3)][0x1]['clientY'])*0.5;m['set'](a1,a2);}if(this['_state']=0x0,!S)this['_lockedPointer']&&(this['_state']=this[kB(0x989)]|this['mouseButtons'][kB(0x4d1)]);else{if(kB(0x57e)in S&&S['pointerType']===kB(0x58b))switch(this['_activePointers']['length']){case 0x1:this['_state']=this[kB(0x275)][kB(0x6da)];break;case 0x2:this['_state']=this[kB(0x275)]['two'];break;case 0x3:this['_state']=this[kB(0x275)][kB(0x763)];break;}else!this['_lockedPointer']&&(S[kB(0x245)]&ie[kB(0x9e3)])===ie[kB(0x9e3)]&&(this[kB(0x989)]=this['_state']|this['mouseButtons'][kB(0x4d1)]),(S[kB(0x245)]&ie['MIDDLE'])===ie['MIDDLE']&&(this['_state']=this[kB(0x989)]|this['mouseButtons'][kB(0x852)]),(S[kB(0x245)]&ie['RIGHT'])===ie['RIGHT']&&(this[kB(0x989)]=this[kB(0x989)]|this[kB(0x43b)]['right']);}((this['_state']&Q['ROTATE'])===Q['ROTATE']||(this['_state']&Q[kB(0xab7)])===Q[kB(0xab7)]||(this[kB(0x989)]&Q['TOUCH_DOLLY_ROTATE'])===Q[kB(0xb28)]||(this[kB(0x989)]&Q['TOUCH_ZOOM_ROTATE'])===Q['TOUCH_ZOOM_ROTATE'])&&(this[kB(0x4b0)]['theta']=this[kB(0x24c)][kB(0x7c5)],this['_sphericalEnd'][kB(0xac7)]=this[kB(0x24c)][kB(0xac7)],this[kB(0x272)][kB(0x372)]=0x0,this['_phiVelocity'][kB(0x372)]=0x0),((this['_state']&Q['TRUCK'])===Q[kB(0x2a0)]||(this['_state']&Q['SCREEN_PAN'])===Q[kB(0x793)]||(this[kB(0x989)]&Q[kB(0x522)])===Q[kB(0x522)]||(this[kB(0x989)]&Q[kB(0x5d1)])===Q['TOUCH_SCREEN_PAN']||(this[kB(0x989)]&Q[kB(0x5bd)])===Q['TOUCH_DOLLY_TRUCK']||(this['_state']&Q['TOUCH_DOLLY_SCREEN_PAN'])===Q['TOUCH_DOLLY_SCREEN_PAN']||(this[kB(0x989)]&Q['TOUCH_ZOOM_TRUCK'])===Q['TOUCH_ZOOM_TRUCK']||(this[kB(0x989)]&Q['TOUCH_ZOOM_SCREEN_PAN'])===Q['TOUCH_DOLLY_SCREEN_PAN'])&&(this['_targetEnd'][kB(0x195)](this['_target']),this['_targetVelocity'][kB(0x46c)](0x0,0x0,0x0)),((this['_state']&Q['DOLLY'])===Q['DOLLY']||(this[kB(0x989)]&Q['TOUCH_DOLLY'])===Q[kB(0x95a)]||(this['_state']&Q[kB(0x5bd)])===Q['TOUCH_DOLLY_TRUCK']||(this[kB(0x989)]&Q[kB(0x5db)])===Q[kB(0x5db)]||(this[kB(0x989)]&Q['TOUCH_DOLLY_OFFSET'])===Q[kB(0x944)]||(this[kB(0x989)]&Q[kB(0xb28)])===Q['TOUCH_DOLLY_ROTATE'])&&(this['_sphericalEnd'][kB(0x9f0)]=this['_spherical'][kB(0x9f0)],this[kB(0x296)]['value']=0x0),((this[kB(0x989)]&Q[kB(0xb45)])===Q['ZOOM']||(this['_state']&Q[kB(0x278)])===Q['TOUCH_ZOOM']||(this['_state']&Q['TOUCH_ZOOM_TRUCK'])===Q['TOUCH_ZOOM_TRUCK']||(this['_state']&Q[kB(0x9a0)])===Q['TOUCH_ZOOM_SCREEN_PAN']||(this['_state']&Q[kB(0x537)])===Q['TOUCH_ZOOM_OFFSET']||(this[kB(0x989)]&Q[kB(0x2b3)])===Q[kB(0x2b3)])&&(this['_zoomEnd']=this['_zoom'],this[kB(0x1e2)]['value']=0x0),((this['_state']&Q[kB(0x40a)])===Q['OFFSET']||(this['_state']&Q[kB(0x16a)])===Q[kB(0x16a)]||(this[kB(0x989)]&Q[kB(0x944)])===Q['TOUCH_DOLLY_OFFSET']||(this[kB(0x989)]&Q['TOUCH_ZOOM_OFFSET'])===Q['TOUCH_ZOOM_OFFSET'])&&(this[kB(0x15d)][kB(0x195)](this[kB(0x521)]),this['_focalOffsetVelocity'][kB(0x46c)](0x0,0x0,0x0)),this['dispatchEvent']({'type':kB(0x41b)});},H=()=>{const kC=kj;if(!this['_enabled']||!this['_dragNeedsUpdate'])return;this[kC(0x34f)]=!0x1,Vn(this['_activePointers'],_e);const U=this[kC(0x61f)]&&this['_domElement']['ownerDocument']['pointerLockElement']===this['_domElement']?this['_lockedPointer']||this[kC(0xac3)][0x0]:null,a0=U?-U['deltaX']:m['x']-_e['x'],a1=U?-U['deltaY']:m['y']-_e['y'];if(m['copy'](_e),((this[kC(0x989)]&Q[kC(0x837)])===Q['ROTATE']||(this[kC(0x989)]&Q['TOUCH_ROTATE'])===Q['TOUCH_ROTATE']||(this['_state']&Q[kC(0xb28)])===Q[kC(0xb28)]||(this['_state']&Q['TOUCH_ZOOM_ROTATE'])===Q['TOUCH_ZOOM_ROTATE'])&&(this[kC(0xa9a)](a0,a1),this[kC(0x57a)]=!0x0),(this[kC(0x989)]&Q['DOLLY'])===Q['DOLLY']||(this[kC(0x989)]&Q[kC(0xb45)])===Q[kC(0xb45)]){const a2=this[kC(0x8cc)]?(k['x']-this['_elementRect']['x'])/this['_elementRect']['width']*0x2-0x1:0x0,a3=this['dollyToCursor']?(k['y']-this['_elementRect']['y'])/this[kC(0x42f)]['height']*-0x2+0x1:0x0,a4=this[kC(0x3b1)]?-0x1:0x1;(this['_state']&Q['DOLLY'])===Q[kC(0xa18)]?(this['_dollyInternal'](a4*a1*Fs,a2,a3),this['_isUserControllingDolly']=!0x0):(this['_zoomInternal'](a4*a1*Fs,a2,a3),this[kC(0x655)]=!0x0);}if((this['_state']&Q['TOUCH_DOLLY'])===Q['TOUCH_DOLLY']||(this[kC(0x989)]&Q[kC(0x278)])===Q['TOUCH_ZOOM']||(this[kC(0x989)]&Q['TOUCH_DOLLY_TRUCK'])===Q['TOUCH_DOLLY_TRUCK']||(this['_state']&Q[kC(0xad7)])===Q['TOUCH_ZOOM_TRUCK']||(this[kC(0x989)]&Q[kC(0x5db)])===Q['TOUCH_DOLLY_SCREEN_PAN']||(this[kC(0x989)]&Q[kC(0x9a0)])===Q['TOUCH_ZOOM_SCREEN_PAN']||(this['_state']&Q['TOUCH_DOLLY_OFFSET'])===Q[kC(0x944)]||(this[kC(0x989)]&Q['TOUCH_ZOOM_OFFSET'])===Q[kC(0x537)]||(this[kC(0x989)]&Q['TOUCH_DOLLY_ROTATE'])===Q['TOUCH_DOLLY_ROTATE']||(this[kC(0x989)]&Q[kC(0x2b3)])===Q['TOUCH_ZOOM_ROTATE']){const a5=_e['x']-this[kC(0xac3)][0x1][kC(0xa4c)],a6=_e['y']-this[kC(0xac3)][0x1]['clientY'],a7=Math['sqrt'](a5*a5+a6*a6),a8=t['y']-a7;t['set'](0x0,a7);const a9=this['dollyToCursor']?(m['x']-this['_elementRect']['x'])/this['_elementRect']['width']*0x2-0x1:0x0,ab=this['dollyToCursor']?(m['y']-this['_elementRect']['y'])/this[kC(0x42f)]['height']*-0x2+0x1:0x0;(this['_state']&Q['TOUCH_DOLLY'])===Q['TOUCH_DOLLY']||(this[kC(0x989)]&Q[kC(0xb28)])===Q[kC(0xb28)]||(this[kC(0x989)]&Q['TOUCH_DOLLY_TRUCK'])===Q['TOUCH_DOLLY_TRUCK']||(this['_state']&Q[kC(0x5db)])===Q['TOUCH_DOLLY_SCREEN_PAN']||(this['_state']&Q['TOUCH_DOLLY_OFFSET'])===Q[kC(0x944)]?(this[kC(0x8fb)](a8*Fs,a9,ab),this['_isUserControllingDolly']=!0x0):(this[kC(0x7e8)](a8*Fs,a9,ab),this['_isUserControllingZoom']=!0x0);}((this['_state']&Q[kC(0x2a0)])===Q['TRUCK']||(this['_state']&Q['TOUCH_TRUCK'])===Q['TOUCH_TRUCK']||(this[kC(0x989)]&Q[kC(0x5bd)])===Q[kC(0x5bd)]||(this[kC(0x989)]&Q[kC(0xad7)])===Q[kC(0xad7)])&&(this['_truckInternal'](a0,a1,!0x1,!0x1),this[kC(0x87f)]=!0x0),((this['_state']&Q[kC(0x793)])===Q[kC(0x793)]||(this[kC(0x989)]&Q[kC(0x5d1)])===Q['TOUCH_SCREEN_PAN']||(this['_state']&Q[kC(0x5db)])===Q[kC(0x5db)]||(this[kC(0x989)]&Q['TOUCH_ZOOM_SCREEN_PAN'])===Q[kC(0x9a0)])&&(this[kC(0x61d)](a0,a1,!0x1,!0x0),this['_isUserControllingTruck']=!0x0),((this[kC(0x989)]&Q['OFFSET'])===Q['OFFSET']||(this[kC(0x989)]&Q[kC(0x16a)])===Q['TOUCH_OFFSET']||(this['_state']&Q['TOUCH_DOLLY_OFFSET'])===Q[kC(0x944)]||(this[kC(0x989)]&Q['TOUCH_ZOOM_OFFSET'])===Q[kC(0x537)])&&(this[kC(0x61d)](a0,a1,!0x0,!0x1),this['_isUserControllingOffset']=!0x0),this['dispatchEvent']({'type':kC(0xb7d)});},L=()=>{const kD=kj;Vn(this['_activePointers'],_e),m[kD(0x195)](_e),this[kD(0x34f)]=!0x1,(this['_activePointers'][kD(0x576)]===0x0||this[kD(0xac3)][kD(0x576)]===0x1&&this[kD(0xac3)][0x0]===this[kD(0x4aa)])&&(this[kD(0x458)]=!0x1),this[kD(0xac3)]['length']===0x0&&this['_domElement']&&(this[kD(0x61f)]['ownerDocument'][kD(0x293)]('pointermove',w,{'passive':!0x1}),this['_domElement']['ownerDocument']['removeEventListener'](kD(0x35d),x),this[kD(0x4a8)]({'type':kD(0x27c)}));};this['lockPointer']=()=>{const kE=kj;!this[kE(0x945)]||!this[kE(0x61f)]||(this[kE(0x5e2)](),this[kE(0x4aa)]={'pointerId':-0x1,'clientX':0x0,'clientY':0x0,'deltaX':0x0,'deltaY':0x0,'mouseButton':null},this[kE(0xac3)]['push'](this[kE(0x4aa)]),this[kE(0x61f)][kE(0x6d9)][kE(0x293)](kE(0x4cc),w,{'passive':!0x1}),this['_domElement'][kE(0x6d9)][kE(0x293)]('pointerup',x),this[kE(0x61f)][kE(0x778)](),this[kE(0x61f)][kE(0x6d9)][kE(0x1f6)](kE(0x936),N),this['_domElement']['ownerDocument'][kE(0x1f6)]('pointerlockerror',R),this[kE(0x61f)]['ownerDocument']['addEventListener']('pointermove',w,{'passive':!0x1}),this[kE(0x61f)][kE(0x6d9)][kE(0x1f6)]('pointerup',x),F());},this[kj(0x732)]=()=>{const kF=kj;this[kF(0x4aa)]!==null&&(this[kF(0x747)](this['_lockedPointer']),this['_lockedPointer']=null),this['_domElement']?.[kF(0x6d9)]['exitPointerLock'](),this['_domElement']?.[kF(0x6d9)]['removeEventListener']('pointerlockchange',N),this['_domElement']?.[kF(0x6d9)][kF(0x293)]('pointerlockerror',R),this['cancel']();};const N=()=>{const kG=kj;this['_domElement']&&this[kG(0x61f)]['ownerDocument']['pointerLockElement']===this['_domElement']||this['unlockPointer']();},R=()=>{const kH=kj;this[kH(0x732)]();};this['_addAllEventListeners']=S=>{const kI=kj;this['_domElement']=S,this[kI(0x61f)][kI(0x639)]['touchAction']=kI(0x6ab),this['_domElement']['style']['userSelect']='none',this['_domElement']['style'][kI(0x267)]='none',this[kI(0x61f)][kI(0x1f6)]('pointerdown',v),this[kI(0x61f)]['addEventListener'](kI(0x37c),x),this['_domElement'][kI(0x1f6)]('wheel',z,{'passive':!0x1}),this['_domElement'][kI(0x1f6)]('contextmenu',B);},this['_removeAllEventListeners']=()=>{const kJ=kj;this['_domElement']&&(this['_domElement']['style']['touchAction']='',this['_domElement']['style'][kJ(0x6bc)]='',this[kJ(0x61f)][kJ(0x639)][kJ(0x267)]='',this[kJ(0x61f)][kJ(0x293)](kJ(0x4a9),v),this['_domElement'][kJ(0x293)]('pointercancel',x),this[kJ(0x61f)]['removeEventListener'](kJ(0x489),z,{'passive':!0x1}),this[kJ(0x61f)]['removeEventListener'](kJ(0x942),B),this[kJ(0x61f)]['ownerDocument']['removeEventListener']('pointermove',w,{'passive':!0x1}),this[kJ(0x61f)][kJ(0x6d9)][kJ(0x293)]('pointerup',x),this[kJ(0x61f)]['ownerDocument']['removeEventListener']('pointerlockchange',N),this[kJ(0x61f)][kJ(0x6d9)]['removeEventListener'](kJ(0x776),R));},this['cancel']=()=>{const kK=kj;this[kK(0x989)]!==Q['NONE']&&(this[kK(0x989)]=Q['NONE'],this[kK(0xac3)][kK(0x576)]=0x0,L());},j&&this['connect'](j),this[kj(0x9c6)](0x0);}static['install'](b){const kL=a0cH;G=b['THREE'],qo=Object[kL(0x469)](new G[(kL(0x83f))](0x0,0x0,0x0)),Os=Object[kL(0x469)](new G['Vector3'](0x0,0x1,0x0)),Yn=Object[kL(0x469)](new G['Vector3'](0x0,0x0,0x1)),_e=new G[(kL(0x641))](),q=new G[(kL(0x83f))](),Y=new G[(kL(0x83f))](),ri=new G['Vector3'](),Wi=new G['Vector3'](),st=new G['Vector3'](),nt=new G[(kL(0x83f))](),Ft=new G[(kL(0x83f))](),Vo=new G['Vector3'](),jo=new G[(kL(0x83f))](),Re=new G['Spherical'](),Ji=new G[(kL(0x830))](),oi=new G['Box3'](),Yo=new G[(kL(0x2b4))](),Kn=new G['Sphere'](),Ko=new G['Quaternion'](),Wn=new G['Quaternion'](),Jn=new G[(kL(0x151))](),Ns=new G[(kL(0x966))]();}static get['ACTION'](){return Q;}get['camera'](){return this['_camera'];}set[a0cH(0x3e2)](b){const kM=a0cH;this[kM(0x2c3)]=b,this[kM(0x54b)](),this[kM(0x2c3)][kM(0x1cf)](),this[kM(0x950)](),this[kM(0x3be)]=!0x0;}get[a0cH(0x95b)](){return this['_enabled'];}set[a0cH(0x95b)](b){const kN=a0cH;this['_enabled']=b,this[kN(0x61f)]&&(b?(this['_domElement']['style']['touchAction']=kN(0x6ab),this[kN(0x61f)]['style'][kN(0x6bc)]=kN(0x6ab),this[kN(0x61f)][kN(0x639)][kN(0x267)]='none'):(this['cancel'](),this[kN(0x61f)][kN(0x639)]['touchAction']='',this['_domElement'][kN(0x639)]['userSelect']='',this['_domElement']['style'][kN(0x267)]=''));}get[a0cH(0x7e9)](){const kO=a0cH;return!this[kO(0x9a7)];}get['currentAction'](){const kP=a0cH;return this[kP(0x989)];}get['distance'](){const kQ=a0cH;return this[kQ(0x24c)]['radius'];}set['distance'](b){const kR=a0cH;this[kR(0x24c)][kR(0x9f0)]===b&&this[kR(0x4b0)][kR(0x9f0)]===b||(this[kR(0x24c)][kR(0x9f0)]=b,this[kR(0x4b0)][kR(0x9f0)]=b,this['_needsUpdate']=!0x0);}get[a0cH(0xa4f)](){const kS=a0cH;return this[kS(0x24c)][kS(0x7c5)];}set[a0cH(0xa4f)](b){const kT=a0cH;this[kT(0x24c)]['theta']===b&&this[kT(0x4b0)][kT(0x7c5)]===b||(this['_spherical']['theta']=b,this[kT(0x4b0)][kT(0x7c5)]=b,this[kT(0x3be)]=!0x0);}get['polarAngle'](){const kU=a0cH;return this[kU(0x24c)]['phi'];}set['polarAngle'](b){const kV=a0cH;this['_spherical'][kV(0xac7)]===b&&this[kV(0x4b0)][kV(0xac7)]===b||(this['_spherical']['phi']=b,this[kV(0x4b0)][kV(0xac7)]=b,this['_needsUpdate']=!0x0);}get[a0cH(0x85e)](){return this['_boundaryEnclosesCamera'];}set[a0cH(0x85e)](b){this['_boundaryEnclosesCamera']=b,this['_needsUpdate']=!0x0;}set[a0cH(0x3cb)](b){const kW=a0cH;this[kW(0x483)][kW(0x69c)]=We(b['width'],0x0,0x1),this[kW(0x483)]['height']=We(b[kW(0x75a)],0x0,0x1),this[kW(0x483)]['x']=We(b['x'],0x0,0x1-this['_interactiveArea']['width']),this['_interactiveArea']['y']=We(b['y'],0x0,0x1-this[kW(0x483)]['height']);}['addEventListener'](b,c){super['addEventListener'](b,c);}['removeEventListener'](b,c){super['removeEventListener'](b,c);}[a0cH(0xb8b)](b,c,d=!0x1){const kX=a0cH;return this[kX(0xa2b)](this[kX(0x4b0)]['theta']+b,this[kX(0x4b0)]['phi']+c,d);}[a0cH(0x73b)](b,c=!0x1){const kY=a0cH;return this[kY(0xa2b)](b,this['_sphericalEnd'][kY(0xac7)],c);}['rotatePolarTo'](b,c=!0x1){const kZ=a0cH;return this['rotateTo'](this['_sphericalEnd'][kZ(0x7c5)],b,c);}[a0cH(0xa2b)](b,d,f=!0x1){const l0=a0cH;this['_isUserControllingRotate']=!0x1;const g=We(b,this['minAzimuthAngle'],this['maxAzimuthAngle']),h=We(d,this[l0(0x7fa)],this[l0(0x69b)]);this['_sphericalEnd']['theta']=g,this[l0(0x4b0)][l0(0xac7)]=h,this[l0(0x4b0)][l0(0x358)](),this['_needsUpdate']=!0x0,f||(this[l0(0x24c)][l0(0x7c5)]=this[l0(0x4b0)][l0(0x7c5)],this[l0(0x24c)]['phi']=this[l0(0x4b0)][l0(0xac7)]);const i=!f||K(this['_spherical']['theta'],this['_sphericalEnd']['theta'],this[l0(0x72e)])&&K(this[l0(0x24c)][l0(0xac7)],this['_sphericalEnd'][l0(0xac7)],this[l0(0x72e)]);return this['_createOnRestPromise'](i);}[a0cH(0xa1d)](b,c=!0x1){const l1=a0cH;return this[l1(0x745)](this[l1(0x4b0)]['radius']-b,c);}[a0cH(0x745)](b,c=!0x1){const l2=a0cH;return this['_isUserControllingDolly']=!0x1,this['_lastDollyDirection']=si[l2(0x8fc)],this[l2(0x75c)]=0x0,this['_dollyToNoClamp'](We(b,this['minDistance'],this['maxDistance']),c);}[a0cH(0x9b9)](b,d=!0x1){const l3=a0cH,f=this['_sphericalEnd']['radius'];if(this['colliderMeshes'][l3(0x576)]>=0x1){const h=this[l3(0xb11)](),i=K(h,this[l3(0x24c)]['radius']);if(!(f>b)&&i)return Promise['resolve']();this['_sphericalEnd'][l3(0x9f0)]=Math['min'](b,h);}else this[l3(0x4b0)]['radius']=b;this[l3(0x3be)]=!0x0,d||(this[l3(0x24c)]['radius']=this['_sphericalEnd'][l3(0x9f0)]);const g=!d||K(this[l3(0x24c)]['radius'],this[l3(0x4b0)][l3(0x9f0)],this[l3(0x72e)]);return this[l3(0x4f3)](g);}['dollyInFixed'](b,c=!0x1){const l4=a0cH;this['_targetEnd'][l4(0x644)](this['_getCameraDirection'](Wi)['multiplyScalar'](b)),c||this[l4(0x867)]['copy'](this['_targetEnd']);const d=!c||K(this[l4(0x867)]['x'],this[l4(0x742)]['x'],this[l4(0x72e)])&&K(this['_target']['y'],this['_targetEnd']['y'],this['restThreshold'])&&K(this[l4(0x867)]['z'],this['_targetEnd']['z'],this['restThreshold']);return this[l4(0x4f3)](d);}[a0cH(0x694)](b,c=!0x1){const l5=a0cH;return this[l5(0xa21)](this[l5(0x66d)]+b,c);}[a0cH(0xa21)](b,c=!0x1){const l6=a0cH;this[l6(0x655)]=!0x1,this['_zoomEnd']=We(b,this['minZoom'],this['maxZoom']),this[l6(0x3be)]=!0x0,c||(this['_zoom']=this['_zoomEnd']);const d=!c||K(this[l6(0x980)],this[l6(0x66d)],this[l6(0x72e)]);return this['_changedZoom']=0x0,this[l6(0x4f3)](d);}[a0cH(0xb88)](b,c,d=!0x1){const l7=a0cH;return console['warn']('`pan`\x20has\x20been\x20renamed\x20to\x20`truck`'),this[l7(0xb24)](b,c,d);}['truck'](b,c,d=!0x1){const l8=a0cH;this['_camera']['updateMatrix'](),st[l8(0x511)](this['_camera']['matrix'],0x0),nt['setFromMatrixColumn'](this['_camera']['matrix'],0x1),st[l8(0xa49)](b),nt['multiplyScalar'](-c);const f=q[l8(0x195)](st)['add'](nt),g=Y[l8(0x195)](this[l8(0x742)])['add'](f);return this['moveTo'](g['x'],g['y'],g['z'],d);}['forward'](b,c=!0x1){const l9=a0cH;q['setFromMatrixColumn'](this[l9(0x2c3)]['matrix'],0x0),q[l9(0x74a)](this[l9(0x2c3)]['up'],q),q[l9(0xa49)](b);const d=Y['copy'](this[l9(0x742)])[l9(0x644)](q);return this[l9(0x723)](d['x'],d['y'],d['z'],c);}['elevate'](b,c=!0x1){const lb=a0cH;return q[lb(0x195)](this['_camera']['up'])[lb(0xa49)](b),this[lb(0x723)](this[lb(0x742)]['x']+q['x'],this[lb(0x742)]['y']+q['y'],this['_targetEnd']['z']+q['z'],c);}[a0cH(0x723)](b,d,f,g=!0x1){const le=a0cH;this['_isUserControllingTruck']=!0x1;const h=q[le(0x46c)](b,d,f)[le(0x480)](this[le(0x742)]);this['_encloseToBoundary'](this['_targetEnd'],h,this[le(0x690)]),this['_needsUpdate']=!0x0,g||this[le(0x867)][le(0x195)](this[le(0x742)]);const i=!g||K(this[le(0x867)]['x'],this[le(0x742)]['x'],this[le(0x72e)])&&K(this['_target']['y'],this[le(0x742)]['y'],this['restThreshold'])&&K(this['_target']['z'],this[le(0x742)]['z'],this['restThreshold']);return this[le(0x4f3)](i);}[a0cH(0x5c2)](b,c,d,f=!0x1){const lj=a0cH,g=q['set'](b,c,d)['sub'](this['_targetEnd'])['normalize']()['multiplyScalar'](-this['_sphericalEnd'][lj(0x9f0)])['add'](this['_targetEnd']);return this[lj(0x6d6)](g['x'],g['y'],g['z'],f);}[a0cH(0xb75)](i,j,{cover:k=!0x1,paddingLeft:t=0x0,paddingRight:v=0x0,paddingBottom:z=0x0,paddingTop:F=0x0}={}){const lk=a0cH,H=[],L=i['isBox3']?oi['copy'](i):oi['setFromObject'](i);L['isEmpty']()&&(console['warn'](lk(0xba8)),Promise[lk(0x83e)]());const N=zo(this['_sphericalEnd'][lk(0x7c5)],Go),R=zo(this[lk(0x4b0)]['phi'],Go);H[lk(0x50e)](this['rotateTo'](N,R,j));const S=q['setFromSpherical'](this[lk(0x4b0)])[lk(0x456)](),T=Ko['setFromUnitVectors'](S,Yn),U=K(Math['abs'](S['y']),0x1);U&&T['multiply'](Wn[lk(0x528)](Os,N)),T[lk(0x5b4)](this[lk(0x92d)]);const a0=Yo['makeEmpty']();Y['copy'](L[lk(0x2f8)])[lk(0xa8a)](T),a0[lk(0x554)](Y),Y['copy'](L['min'])[lk(0x9d8)](L['max']['x'])['applyQuaternion'](T),a0['expandByPoint'](Y),Y[lk(0x195)](L[lk(0x2f8)])[lk(0x26f)](L[lk(0x894)]['y'])[lk(0xa8a)](T),a0[lk(0x554)](Y),Y['copy'](L[lk(0x894)])[lk(0x687)](L[lk(0x2f8)]['z'])['applyQuaternion'](T),a0['expandByPoint'](Y),Y['copy'](L[lk(0x2f8)])['setZ'](L[lk(0x894)]['z'])[lk(0xa8a)](T),a0['expandByPoint'](Y),Y['copy'](L['max'])['setY'](L['min']['y'])['applyQuaternion'](T),a0['expandByPoint'](Y),Y[lk(0x195)](L['max'])['setX'](L['min']['x'])['applyQuaternion'](T),a0['expandByPoint'](Y),Y[lk(0x195)](L['max'])[lk(0xa8a)](T),a0[lk(0x554)](Y),a0[lk(0x2f8)]['x']-=t,a0['min']['y']-=z,a0['max']['x']+=v,a0[lk(0x894)]['y']+=F,T['setFromUnitVectors'](Yn,S),U&&T[lk(0x5c6)](Wn['invert']()),T['premultiply'](this[lk(0x8da)]);const a1=a0['getSize'](q),a2=a0['getCenter'](Y)[lk(0xa8a)](T);if(kt(this[lk(0x2c3)])){const a3=this['getDistanceToFitBox'](a1['x'],a1['y'],a1['z'],k);H[lk(0x50e)](this[lk(0x723)](a2['x'],a2['y'],a2['z'],j)),H[lk(0x50e)](this[lk(0x745)](a3,j)),H['push'](this['setFocalOffset'](0x0,0x0,0x0,j));}else{if(_t(this[lk(0x2c3)])){const a4=this['_camera'],a5=a4[lk(0x889)]-a4['left'],a6=a4['top']-a4[lk(0xaae)],a7=k?Math[lk(0x894)](a5/a1['x'],a6/a1['y']):Math[lk(0x2f8)](a5/a1['x'],a6/a1['y']);H['push'](this[lk(0x723)](a2['x'],a2['y'],a2['z'],j)),H['push'](this[lk(0xa21)](a7,j)),H['push'](this['setFocalOffset'](0x0,0x0,0x0,j));}}return Promise['all'](H);}[a0cH(0x581)](b,d){const lm=a0cH,f=[],g='isObject3D'in b?Te['createBoundingSphere'](b,Kn):Kn[lm(0x195)](b);if(f['push'](this['moveTo'](g[lm(0x231)]['x'],g[lm(0x231)]['y'],g['center']['z'],d)),kt(this[lm(0x2c3)])){const i=this['getDistanceToFitSphere'](g[lm(0x9f0)]);f['push'](this[lm(0x745)](i,d));}else{if(_t(this[lm(0x2c3)])){const j=this[lm(0x2c3)]['right']-this[lm(0x2c3)]['left'],k=this['_camera'][lm(0x2a9)]-this[lm(0x2c3)]['bottom'],m=0x2*g[lm(0x9f0)],p=Math['min'](j/m,k/m);f[lm(0x50e)](this['zoomTo'](p,d));}}return f[lm(0x50e)](this['setFocalOffset'](0x0,0x0,0x0,d)),Promise[lm(0xa5a)](f);}[a0cH(0x3db)](b,f,g,i,j,k,m=!0x1){const ln=a0cH;this['_isUserControllingRotate']=!0x1,this['_isUserControllingDolly']=!0x1,this['_isUserControllingTruck']=!0x1,this[ln(0x810)]=si[ln(0x8fc)],this['_changedDolly']=0x0;const p=Y['set'](i,j,k),t=q['set'](b,f,g);this[ln(0x742)]['copy'](p),this['_sphericalEnd']['setFromVector3'](t[ln(0x480)](p)[ln(0xa8a)](this[ln(0x8da)])),this[ln(0x253)](),this[ln(0x3be)]=!0x0,m||(this[ln(0x867)]['copy'](this[ln(0x742)]),this[ln(0x24c)][ln(0x195)](this[ln(0x4b0)]));const u=!m||K(this['_target']['x'],this[ln(0x742)]['x'],this[ln(0x72e)])&&K(this[ln(0x867)]['y'],this[ln(0x742)]['y'],this[ln(0x72e)])&&K(this[ln(0x867)]['z'],this['_targetEnd']['z'],this[ln(0x72e)])&&K(this[ln(0x24c)][ln(0x7c5)],this['_sphericalEnd']['theta'],this['restThreshold'])&&K(this[ln(0x24c)]['phi'],this[ln(0x4b0)]['phi'],this['restThreshold'])&&K(this['_spherical'][ln(0x9f0)],this[ln(0x4b0)]['radius'],this[ln(0x72e)]);return this['_createOnRestPromise'](u);}[a0cH(0x38b)](i,j,k,t,z,F,H,L,N,R,S,T,U,a0=!0x1){const lp=a0cH;this[lp(0x57a)]=!0x1,this['_isUserControllingDolly']=!0x1,this['_isUserControllingTruck']=!0x1,this['_lastDollyDirection']=si[lp(0x8fc)],this[lp(0x75c)]=0x0;const a1=q['set'](t,z,F),a2=Y[lp(0x46c)](i,j,k);Re[lp(0x550)](a2[lp(0x480)](a1)['applyQuaternion'](this[lp(0x8da)]));const a3=ri['set'](R,S,T),a4=Y[lp(0x46c)](H,L,N);Ji[lp(0x550)](a4[lp(0x480)](a3)[lp(0xa8a)](this['_yAxisUpSpace'])),this[lp(0x742)][lp(0x195)](a1['lerp'](a3,U));const a5=Ji['theta']-Re['theta'],a6=Ji['phi']-Re['phi'],a7=Ji['radius']-Re[lp(0x9f0)];this['_sphericalEnd']['set'](Re[lp(0x9f0)]+a7*U,Re['phi']+a6*U,Re['theta']+a5*U),this[lp(0x253)](),this[lp(0x3be)]=!0x0,a0||(this[lp(0x867)]['copy'](this['_targetEnd']),this['_spherical']['copy'](this[lp(0x4b0)]));const a8=!a0||K(this['_target']['x'],this[lp(0x742)]['x'],this[lp(0x72e)])&&K(this[lp(0x867)]['y'],this['_targetEnd']['y'],this[lp(0x72e)])&&K(this['_target']['z'],this[lp(0x742)]['z'],this['restThreshold'])&&K(this['_spherical'][lp(0x7c5)],this[lp(0x4b0)][lp(0x7c5)],this[lp(0x72e)])&&K(this['_spherical'][lp(0xac7)],this[lp(0x4b0)]['phi'],this[lp(0x72e)])&&K(this['_spherical']['radius'],this['_sphericalEnd']['radius'],this[lp(0x72e)]);return this['_createOnRestPromise'](a8);}[a0cH(0x6d6)](b,c,d,f=!0x1){const lq=a0cH;return this[lq(0x3db)](b,c,d,this[lq(0x742)]['x'],this['_targetEnd']['y'],this['_targetEnd']['z'],f);}[a0cH(0x432)](b,d,f,g=!0x1){const lv=a0cH,h=this['getPosition'](q),i=this['setLookAt'](h['x'],h['y'],h['z'],b,d,f,g);return this['_sphericalEnd'][lv(0xac7)]=We(this[lv(0x4b0)]['phi'],this['minPolarAngle'],this[lv(0x69b)]),i;}[a0cH(0x2da)](b,c,d,f=!0x1){const lw=a0cH;this['_isUserControllingOffset']=!0x1,this[lw(0x15d)][lw(0x46c)](b,c,d),this['_needsUpdate']=!0x0,f||this[lw(0x521)]['copy'](this['_focalOffsetEnd']);const g=!f||K(this[lw(0x521)]['x'],this['_focalOffsetEnd']['x'],this[lw(0x72e)])&&K(this['_focalOffset']['y'],this['_focalOffsetEnd']['y'],this[lw(0x72e)])&&K(this[lw(0x521)]['z'],this['_focalOffsetEnd']['z'],this[lw(0x72e)]);return this[lw(0x4f3)](g);}['setOrbitPoint'](b,d,f){const lx=a0cH;this['_camera']['updateMatrixWorld'](),st[lx(0x511)](this[lx(0x2c3)][lx(0xb5e)],0x0),nt[lx(0x511)](this[lx(0x2c3)][lx(0xb5e)],0x1),Ft['setFromMatrixColumn'](this[lx(0x2c3)][lx(0xb5e)],0x2);const g=q['set'](b,d,f),h=g['distanceTo'](this[lx(0x2c3)][lx(0x3e0)]),i=g['sub'](this['_camera'][lx(0x3e0)]);st['multiplyScalar'](i['x']),nt['multiplyScalar'](i['y']),Ft['multiplyScalar'](i['z']),q['copy'](st)[lx(0x644)](nt)[lx(0x644)](Ft),q['z']=q['z']+h,this['dollyTo'](h,!0x1),this['setFocalOffset'](-q['x'],q['y'],-q['z'],!0x1),this['moveTo'](b,d,f,!0x1);}['setBoundary'](b){const ly=a0cH;if(!b){this[ly(0x7de)]['min'][ly(0x46c)](-0x1/0x0,-0x1/0x0,-0x1/0x0),this[ly(0x7de)]['max'][ly(0x46c)](0x1/0x0,0x1/0x0,0x1/0x0),this[ly(0x3be)]=!0x0;return;}this[ly(0x7de)][ly(0x195)](b),this['_boundary']['clampPoint'](this[ly(0x742)],this[ly(0x742)]),this['_needsUpdate']=!0x0;}['setViewport'](b,c,d,f){const lz=a0cH;if(b===null){this['_viewport']=null;return;}this['_viewport']=this['_viewport']||new G['Vector4'](),typeof b==lz(0x7ca)?this[lz(0x560)][lz(0x46c)](b,c,d,f):this[lz(0x560)]['copy'](b);}['getDistanceToFitBox'](b,d,f,g=!0x1){const lB=a0cH;if(jn(this[lB(0x2c3)],lB(0x573)))return this[lB(0x24c)][lB(0x9f0)];const h=b/d,i=this[lB(0x2c3)]['getEffectiveFOV']()*ji,j=this[lB(0x2c3)]['aspect'];return((g?h>j:h<j)?d:b/j)*0.5/Math[lB(0x580)](i*0.5)+f*0.5;}['getDistanceToFitSphere'](b){const lC=a0cH;if(jn(this['_camera'],lC(0x5c0)))return this['_spherical'][lC(0x9f0)];const c=this[lC(0x2c3)][lC(0x16f)]()*ji,d=Math[lC(0x96d)](Math[lC(0x580)](c*0.5)*this[lC(0x2c3)][lC(0x46b)])*0x2,f=0x1<this[lC(0x2c3)]['aspect']?c:d;return b/Math[lC(0x8b0)](f*0.5);}['getTarget'](b,c=!0x0){const lD=a0cH;return(b&&b['isVector3']?b:new G[(lD(0x83f))]())[lD(0x195)](c?this[lD(0x742)]:this['_target']);}[a0cH(0x317)](b,c=!0x0){const lE=a0cH;return(b&&b['isVector3']?b:new G[(lE(0x83f))]())[lE(0x381)](c?this['_sphericalEnd']:this['_spherical'])['applyQuaternion'](this[lE(0x92d)])[lE(0x644)](c?this['_targetEnd']:this['_target']);}[a0cH(0x36c)](b,c=!0x0){const lF=a0cH;return(b||new G['Spherical']())[lF(0x195)](c?this['_sphericalEnd']:this[lF(0x24c)]);}[a0cH(0x9b5)](b,c=!0x0){const lG=a0cH;return(b&&b[lG(0x803)]?b:new G[(lG(0x83f))]())['copy'](c?this['_focalOffsetEnd']:this[lG(0x521)]);}[a0cH(0x253)](){const lH=a0cH;this[lH(0x4b0)]['theta']=this[lH(0x4b0)][lH(0x7c5)]%ni,this[lH(0x4b0)][lH(0x7c5)]<0x0&&(this[lH(0x4b0)]['theta']+=ni),this['_spherical']['theta']+=ni*Math['round']((this['_sphericalEnd']['theta']-this['_spherical']['theta'])/ni);}['stop'](){const lI=a0cH;this[lI(0x521)]['copy'](this['_focalOffsetEnd']),this[lI(0x867)]['copy'](this[lI(0x742)]),this[lI(0x24c)][lI(0x195)](this['_sphericalEnd']),this[lI(0x980)]=this[lI(0x66d)];}['reset'](b=!0x1){const lJ=a0cH;if(!K(this['_camera']['up']['x'],this[lJ(0x373)]['x'])||!K(this['_camera']['up']['y'],this[lJ(0x373)]['y'])||!K(this[lJ(0x2c3)]['up']['z'],this[lJ(0x373)]['z'])){this[lJ(0x2c3)]['up'][lJ(0x195)](this[lJ(0x373)]);const d=this[lJ(0x317)](q);this['updateCameraUp'](),this['setPosition'](d['x'],d['y'],d['z']);}const c=[this[lJ(0x3db)](this['_position0']['x'],this['_position0']['y'],this['_position0']['z'],this[lJ(0x430)]['x'],this['_target0']['y'],this[lJ(0x430)]['z'],b),this[lJ(0x2da)](this[lJ(0x907)]['x'],this[lJ(0x907)]['y'],this[lJ(0x907)]['z'],b),this['zoomTo'](this['_zoom0'],b)];return Promise['all'](c);}['saveState'](){const lK=a0cH;this[lK(0x373)]['copy'](this[lK(0x2c3)]['up']),this['getTarget'](this['_target0']),this['getPosition'](this['_position0']),this[lK(0x28f)]=this[lK(0x980)],this[lK(0x907)]['copy'](this[lK(0x521)]);}['updateCameraUp'](){const lL=a0cH;this[lL(0x8da)][lL(0x31d)](this['_camera']['up'],Os),this[lL(0x92d)]['copy'](this[lL(0x8da)])['invert']();}['applyCameraUp'](){const lM=a0cH,b=q[lM(0x1fd)](this[lM(0x867)],this['_camera'][lM(0x3e0)])[lM(0x456)](),c=Y[lM(0x74a)](b,this['_camera']['up']);this['_camera']['up'][lM(0x74a)](c,b)['normalize'](),this[lM(0x2c3)]['updateMatrixWorld']();const d=this['getPosition'](q);this[lM(0x54b)](),this['setPosition'](d['x'],d['y'],d['z']);}['update'](i){const lN=a0cH,j=this['_sphericalEnd'][lN(0x7c5)]-this['_spherical'][lN(0x7c5)],k=this[lN(0x4b0)][lN(0xac7)]-this[lN(0x24c)][lN(0xac7)],t=this['_sphericalEnd'][lN(0x9f0)]-this['_spherical']['radius'],z=Vo[lN(0x1fd)](this['_targetEnd'],this['_target']),A=jo['subVectors'](this['_focalOffsetEnd'],this['_focalOffset']),F=this['_zoomEnd']-this['_zoom'];if(X(j))this[lN(0x272)][lN(0x372)]=0x0,this['_spherical'][lN(0x7c5)]=this['_sphericalEnd']['theta'];else{const N=this[lN(0x57a)]?this['draggingSmoothTime']:this['smoothTime'];this['_spherical']['theta']=ks(this['_spherical'][lN(0x7c5)],this['_sphericalEnd'][lN(0x7c5)],this['_thetaVelocity'],N,0x1/0x0,i),this[lN(0x3be)]=!0x0;}if(X(k))this[lN(0x4e5)][lN(0x372)]=0x0,this[lN(0x24c)][lN(0xac7)]=this['_sphericalEnd'][lN(0xac7)];else{const R=this['_isUserControllingRotate']?this[lN(0x59f)]:this[lN(0x8f4)];this[lN(0x24c)][lN(0xac7)]=ks(this['_spherical']['phi'],this['_sphericalEnd'][lN(0xac7)],this['_phiVelocity'],R,0x1/0x0,i),this[lN(0x3be)]=!0x0;}if(X(t))this['_radiusVelocity'][lN(0x372)]=0x0,this[lN(0x24c)][lN(0x9f0)]=this['_sphericalEnd']['radius'];else{const S=this[lN(0x539)]?this[lN(0x59f)]:this['smoothTime'];this[lN(0x24c)][lN(0x9f0)]=ks(this[lN(0x24c)][lN(0x9f0)],this[lN(0x4b0)][lN(0x9f0)],this['_radiusVelocity'],S,this[lN(0x28d)],i),this['_needsUpdate']=!0x0;}if(X(z['x'])&&X(z['y'])&&X(z['z']))this['_targetVelocity']['set'](0x0,0x0,0x0),this[lN(0x867)]['copy'](this['_targetEnd']);else{const U=this[lN(0x87f)]?this['draggingSmoothTime']:this['smoothTime'];Ho(this['_target'],this[lN(0x742)],this[lN(0x1f1)],U,this['maxSpeed'],i,this[lN(0x867)]),this[lN(0x3be)]=!0x0;}if(X(A['x'])&&X(A['y'])&&X(A['z']))this['_focalOffsetVelocity'][lN(0x46c)](0x0,0x0,0x0),this[lN(0x521)][lN(0x195)](this[lN(0x15d)]);else{const a0=this[lN(0x18e)]?this[lN(0x59f)]:this[lN(0x8f4)];Ho(this[lN(0x521)],this[lN(0x15d)],this[lN(0x553)],a0,this[lN(0x28d)],i,this['_focalOffset']),this[lN(0x3be)]=!0x0;}if(X(F))this['_zoomVelocity'][lN(0x372)]=0x0,this['_zoom']=this['_zoomEnd'];else{const a1=this[lN(0x655)]?this[lN(0x59f)]:this['smoothTime'];this['_zoom']=ks(this['_zoom'],this[lN(0x66d)],this['_zoomVelocity'],a1,0x1/0x0,i);}if(this[lN(0x8cc)]){if(kt(this['_camera'])&&this['_changedDolly']!==0x0){const a2=this[lN(0x24c)]['radius']-this['_lastDistance'],a3=this[lN(0x2c3)],a4=this['_getCameraDirection'](Wi),a5=q[lN(0x195)](a4)[lN(0xba2)](a3['up'])[lN(0x456)]();a5[lN(0x869)]()===0x0&&(a5['x']=0x1);const a6=Y['crossVectors'](a5,a4),a7=this[lN(0x4b0)][lN(0x9f0)]*Math[lN(0x580)](a3[lN(0x16f)]()*ji*0.5),a8=(this[lN(0x4b0)][lN(0x9f0)]-a2-this[lN(0x4b0)]['radius'])/this[lN(0x4b0)]['radius'],a9=ri[lN(0x195)](this['_targetEnd'])['add'](a5['multiplyScalar'](this['_dollyControlCoord']['x']*a7*a3[lN(0x46b)]))[lN(0x644)](a6['multiplyScalar'](this['_dollyControlCoord']['y']*a7)),ab=q['copy'](this[lN(0x742)])[lN(0x27b)](a9,a8),aj=this[lN(0x810)]===si['IN']&&this['_spherical'][lN(0x9f0)]<=this[lN(0x72b)],ak=this['_lastDollyDirection']===si[lN(0x981)]&&this['maxDistance']<=this['_spherical'][lN(0x9f0)];if(this['infinityDolly']&&(aj||ak)){this['_sphericalEnd']['radius']-=a2,this[lN(0x24c)][lN(0x9f0)]-=a2;const an=Y[lN(0x195)](a4)['multiplyScalar'](-a2);ab[lN(0x644)](an);}this[lN(0x7de)]['clampPoint'](ab,ab);const am=Y[lN(0x1fd)](ab,this['_targetEnd']);this['_targetEnd'][lN(0x195)](ab),this['_target']['add'](am),this['_changedDolly']-=a2,X(this['_changedDolly'])&&(this[lN(0x75c)]=0x0);}else{if(_t(this[lN(0x2c3)])&&this['_changedZoom']!==0x0){const ap=this['_zoom']-this['_lastZoom'],aq=this[lN(0x2c3)],av=q['set'](this[lN(0x188)]['x'],this['_dollyControlCoord']['y'],(aq['near']+aq['far'])/(aq[lN(0xa4e)]-aq['far']))['unproject'](aq),aw=Y['set'](0x0,0x0,-0x1)['applyQuaternion'](aq[lN(0x58f)]),ax=ri['copy'](av)['add'](aw[lN(0xa49)](-av['dot'](aq['up']))),ay=-(this[lN(0x980)]-ap-this['_zoom'])/this[lN(0x980)],az=this['_getCameraDirection'](Wi),aB=this[lN(0x742)][lN(0x24b)](az),aC=q['copy'](this[lN(0x742)])[lN(0x27b)](ax,ay),aD=aC['dot'](az),aE=az['multiplyScalar'](aD-aB);aC[lN(0x480)](aE),this['_boundary']['clampPoint'](aC,aC);const aF=Y[lN(0x1fd)](aC,this[lN(0x742)]);this[lN(0x742)][lN(0x195)](aC),this['_target'][lN(0x644)](aF),this['_changedZoom']-=ap,X(this['_changedZoom'])&&(this[lN(0x9c4)]=0x0);}}}this['_camera']['zoom']!==this['_zoom']&&(this['_camera'][lN(0x694)]=this['_zoom'],this['_camera'][lN(0x1cf)](),this['_updateNearPlaneCorners'](),this['_needsUpdate']=!0x0),this[lN(0x34f)]=!0x0;const H=this['_collisionTest']();this[lN(0x24c)][lN(0x9f0)]=Math[lN(0x2f8)](this['_spherical']['radius'],H),this['_spherical']['makeSafe'](),this['_camera']['position']['setFromSpherical'](this[lN(0x24c)])['applyQuaternion'](this[lN(0x92d)])[lN(0x644)](this['_target']),this[lN(0x2c3)]['lookAt'](this['_target']),(!X(this['_focalOffset']['x'])||!X(this['_focalOffset']['y'])||!X(this[lN(0x521)]['z']))&&(st['setFromMatrixColumn'](this[lN(0x2c3)][lN(0x5bb)],0x0),nt[lN(0x511)](this['_camera']['matrix'],0x1),Ft[lN(0x511)](this['_camera']['matrix'],0x2),st[lN(0xa49)](this['_focalOffset']['x']),nt[lN(0xa49)](-this[lN(0x521)]['y']),Ft['multiplyScalar'](this['_focalOffset']['z']),q[lN(0x195)](st)[lN(0x644)](nt)[lN(0x644)](Ft),this['_camera'][lN(0x3e0)][lN(0x644)](q),this['_camera'][lN(0x6e5)]()),this['_boundaryEnclosesCamera']&&this['_encloseToBoundary'](this['_camera']['position'][lN(0x195)](this[lN(0x867)]),q[lN(0x381)](this[lN(0x24c)])[lN(0xa8a)](this['_yAxisUpSpaceInverse']),0x1);const L=this['_needsUpdate'];return L&&!this['_updatedLastTime']?(this['_hasRested']=!0x1,this[lN(0x4a8)]({'type':'wake'}),this[lN(0x4a8)]({'type':'update'})):L?(this[lN(0x4a8)]({'type':lN(0x9c6)}),X(j,this[lN(0x72e)])&&X(k,this['restThreshold'])&&X(t,this[lN(0x72e)])&&X(z['x'],this['restThreshold'])&&X(z['y'],this[lN(0x72e)])&&X(z['z'],this[lN(0x72e)])&&X(A['x'],this['restThreshold'])&&X(A['y'],this['restThreshold'])&&X(A['z'],this[lN(0x72e)])&&X(F,this['restThreshold'])&&!this[lN(0x9a7)]&&(this[lN(0x9a7)]=!0x0,this[lN(0x4a8)]({'type':lN(0x627)}))):!L&&this[lN(0x162)]&&this[lN(0x4a8)]({'type':lN(0x1a7)}),this[lN(0x938)]=this[lN(0x24c)][lN(0x9f0)],this[lN(0x140)]=this[lN(0x980)],this['_updatedLastTime']=L,this['_needsUpdate']=!0x1,L;}['toJSON'](){const lO=a0cH;return JSON[lO(0x2cf)]({'enabled':this['_enabled'],'minDistance':this[lO(0x72b)],'maxDistance':Yi(this['maxDistance']),'minZoom':this['minZoom'],'maxZoom':Yi(this['maxZoom']),'minPolarAngle':this[lO(0x7fa)],'maxPolarAngle':Yi(this[lO(0x69b)]),'minAzimuthAngle':Yi(this[lO(0x62d)]),'maxAzimuthAngle':Yi(this['maxAzimuthAngle']),'smoothTime':this[lO(0x8f4)],'draggingSmoothTime':this['draggingSmoothTime'],'dollySpeed':this[lO(0x431)],'truckSpeed':this[lO(0x928)],'dollyToCursor':this[lO(0x8cc)],'target':this['_targetEnd']['toArray'](),'position':q[lO(0x381)](this['_sphericalEnd'])[lO(0x644)](this['_targetEnd'])[lO(0x9d4)](),'zoom':this[lO(0x66d)],'focalOffset':this[lO(0x15d)][lO(0x9d4)](),'target0':this[lO(0x430)][lO(0x9d4)](),'position0':this[lO(0x872)]['toArray'](),'zoom0':this[lO(0x28f)],'focalOffset0':this['_focalOffset0']['toArray']()});}['fromJSON'](b,c=!0x1){const lP=a0cH,d=JSON['parse'](b);this['enabled']=d[lP(0x95b)],this[lP(0x72b)]=d['minDistance'],this['maxDistance']=Ki(d[lP(0xaf6)]),this['minZoom']=d['minZoom'],this[lP(0x7af)]=Ki(d[lP(0x7af)]),this['minPolarAngle']=d[lP(0x7fa)],this['maxPolarAngle']=Ki(d['maxPolarAngle']),this[lP(0x62d)]=Ki(d[lP(0x62d)]),this[lP(0x6e6)]=Ki(d['maxAzimuthAngle']),this[lP(0x8f4)]=d['smoothTime'],this['draggingSmoothTime']=d['draggingSmoothTime'],this[lP(0x431)]=d[lP(0x431)],this['truckSpeed']=d[lP(0x928)],this['dollyToCursor']=d[lP(0x8cc)],this[lP(0x430)][lP(0xae9)](d['target0']),this['_position0'][lP(0xae9)](d['position0']),this['_zoom0']=d['zoom0'],this[lP(0x907)][lP(0xae9)](d[lP(0x895)]),this['moveTo'](d['target'][0x0],d[lP(0x427)][0x1],d['target'][0x2],c),Re['setFromVector3'](q[lP(0xae9)](d[lP(0x3e0)])['sub'](this[lP(0x742)])[lP(0xa8a)](this[lP(0x8da)])),this[lP(0xa2b)](Re['theta'],Re[lP(0xac7)],c),this[lP(0x745)](Re[lP(0x9f0)],c),this['zoomTo'](d[lP(0x694)],c),this[lP(0x2da)](d[lP(0x6f7)][0x0],d['focalOffset'][0x1],d[lP(0x6f7)][0x2],c),this[lP(0x3be)]=!0x0;}[a0cH(0x5a9)](b){const lQ=a0cH;if(this[lQ(0x61f)]){console['warn'](lQ(0xada));return;}b['setAttribute']('data-camera-controls-version',Bd),this['_addAllEventListeners'](b),this['_getClientRect'](this['_elementRect']);}['disconnect'](){const lR=a0cH;this['cancel'](),this['_removeAllEventListeners'](),this[lR(0x61f)]&&(this['_domElement'][lR(0x8e2)](lR(0x541)),this[lR(0x61f)]=void 0x0);}[a0cH(0xa58)](){const lS=a0cH;this[lS(0x54f)](),this['disconnect']();}['_getTargetDirection'](b){const lT=a0cH;return b['setFromSpherical'](this[lT(0x24c)])['divideScalar'](this['_spherical'][lT(0x9f0)])[lT(0xa8a)](this[lT(0x92d)]);}[a0cH(0x42a)](b){return this['_getTargetDirection'](b)['negate']();}[a0cH(0x332)](b){const lU=a0cH;return this[lU(0xac3)][lU(0x7bf)](c=>c['pointerId']===b);}['_findPointerByMouseButton'](b){return this['_activePointers']['find'](c=>c['mouseButton']===b);}['_disposePointer'](b){const lV=a0cH;this['_activePointers']['splice'](this['_activePointers'][lV(0x279)](b),0x1);}['_encloseToBoundary'](b,c,d){const lW=a0cH,f=c[lW(0x869)]();if(f===0x0)return b;const g=Y[lW(0x195)](c)['add'](b),i=this['_boundary'][lW(0x276)](g,ri)['sub'](g),j=i['lengthSq']();if(j===0x0)return b['add'](c);if(j===f)return b;if(d===0x0)return b['add'](c)['add'](i);{const k=0x1+d*j/c['dot'](i);return b['add'](Y[lW(0x195)](c)['multiplyScalar'](k))['add'](i['multiplyScalar'](0x1-d));}}['_updateNearPlaneCorners'](){const lX=a0cH;if(kt(this[lX(0x2c3)])){const b=this['_camera'],d=b['near'],f=b[lX(0x16f)]()*ji,g=Math['tan'](f*0.5)*d,h=g*b['aspect'];this['_nearPlaneCorners'][0x0][lX(0x46c)](-h,-g,0x0),this[lX(0x30c)][0x1]['set'](h,-g,0x0),this[lX(0x30c)][0x2][lX(0x46c)](h,g,0x0),this[lX(0x30c)][0x3]['set'](-h,g,0x0);}else{if(_t(this['_camera'])){const i=this[lX(0x2c3)],j=0x1/ i['zoom'],k=i['left']*j,l=i[lX(0x889)]*j,m=i[lX(0x2a9)]*j,p=i[lX(0xaae)]*j;this[lX(0x30c)][0x0]['set'](k,m,0x0),this['_nearPlaneCorners'][0x1]['set'](l,m,0x0),this['_nearPlaneCorners'][0x2][lX(0x46c)](l,p,0x0),this['_nearPlaneCorners'][0x3][lX(0x46c)](k,p,0x0);}}}[a0cH(0xb11)](){const lY=a0cH;let b=0x1/0x0;if(!(this[lY(0x3d2)]['length']>=0x1)||jn(this[lY(0x2c3)],lY(0xb11)))return b;const d=this['_getTargetDirection'](Wi);Jn[lY(0x502)](qo,d,this[lY(0x2c3)]['up']);for(let f=0x0;f<0x4;f++){const g=Y[lY(0x195)](this['_nearPlaneCorners'][f]);g[lY(0x5e0)](Jn);const h=ri['addVectors'](this[lY(0x867)],g);Ns['set'](h,d),Ns['far']=this[lY(0x24c)]['radius']+0x1;const i=Ns['intersectObjects'](this['colliderMeshes']);i['length']!==0x0&&i[0x0]['distance']<b&&(b=i[0x0]['distance']);}return b;}['_getClientRect'](b){const lZ=a0cH;if(!this['_domElement'])return;const c=this['_domElement']['getBoundingClientRect']();return b['x']=c[lZ(0x4d1)],b['y']=c[lZ(0x2a9)],this['_viewport']?(b['x']+=this[lZ(0x560)]['x'],b['y']+=c[lZ(0x75a)]-this[lZ(0x560)]['w']-this[lZ(0x560)]['y'],b['width']=this['_viewport']['z'],b['height']=this['_viewport']['w']):(b['width']=c['width'],b['height']=c[lZ(0x75a)]),b;}[a0cH(0x4f3)](b){const m0=a0cH;return b?Promise[m0(0x83e)]():(this['_hasRested']=!0x1,this['dispatchEvent']({'type':m0(0x5c5)}),new Promise(c=>{const m2=m0,d=()=>{const m1=a0b;this[m1(0x293)]('rest',d),c();};this[m2(0x1f6)]('rest',d);}));}[a0cH(0x8f6)](b){}[a0cH(0x5a8)](){}get[a0cH(0xb1d)](){const m3=a0cH;return console[m3(0x637)]('.dampingFactor\x20has\x20been\x20deprecated.\x20use\x20smoothTime\x20(in\x20seconds)\x20instead.'),0x0;}set[a0cH(0xb1d)](b){const m4=a0cH;console['warn'](m4(0x239));}get['draggingDampingFactor'](){const m5=a0cH;return console[m5(0x637)]('.draggingDampingFactor\x20has\x20been\x20deprecated.\x20use\x20draggingSmoothTime\x20(in\x20seconds)\x20instead.'),0x0;}set['draggingDampingFactor'](b){const m6=a0cH;console[m6(0x637)](m6(0xb10));}static['createBoundingSphere'](b,c=new G['Sphere']()){const m7=a0cH,d=c,f=d['center'];oi['makeEmpty'](),b['traverseVisible'](h=>{h['isMesh']&&oi['expandByObject'](h);}),oi[m7(0x8f7)](f);let g=0x0;return b[m7(0x95e)](i=>{const m8=m7;if(!i['isMesh'])return;const j=i;if(!j[m8(0x45e)])return;const k=j['geometry'][m8(0x8e8)]();k['applyMatrix4'](j[m8(0xa7c)]);const m=k[m8(0x974)][m8(0x3e0)];for(let p=0x0,t=m[m8(0xa6a)];p<t;p++)q['fromBufferAttribute'](m,p),g=Math[m8(0x894)](g,f['distanceToSquared'](q));}),d[m7(0x9f0)]=Math[m7(0x902)](g),d;}}Te[a0cH(0xa13)]({'THREE':{'Vector2':a0l,'Vector3':a0c,'Vector4':a0y,'Quaternion':a0au,'Matrix4':a0m,'Spherical':a0aK,'Box3':a0h,'Sphere':a0t,'Raycaster':a0aJ}});class vd{constructor(b){const m9=a0cH;C(this,m9(0x1ca)),C(this,m9(0x7c1)),C(this,m9(0x9d7)),C(this,m9(0x883)),C(this,m9(0x933)),C(this,m9(0x1fa)),C(this,'el'),C(this,m9(0xa3c)),C(this,'renderer'),C(this,'boxCenter',new a0c(0x0,0x0,0x0)),C(this,m9(0x36f),new a0c(0xa,0xa,0xa)),(this['el']=b['el'],this[m9(0xa3c)]=b['options'],this[m9(0x976)]=b['renderer'],this[m9(0x900)]());}[a0cH(0x900)](){const mb=a0cH,b=this['el']['clientWidth']/this['el']['clientHeight'];this['perspectiveCamera']=new a0aL(this[mb(0xa3c)][mb(0x3e2)][mb(0x5fe)],b,0.1,0x7d0),this[mb(0x1ca)]['position'][mb(0x46c)](0x0,0x0,0x14),this[mb(0x9d7)]=new Te(this['perspectiveCamera'],this[mb(0x976)]['domElement']),this['setControl'](this[mb(0x9d7)]);const c=0xa;this[mb(0x7c1)]=new a0n(-0xa*b/0x2,c*b/0x2,c/0x2,-0xa/0x2,0.01,0x7d0),this['orthographicCamera']['position'][mb(0x46c)](0x0,0x0,c*0x2),this['orthographicControls']=new Te(this['orthographicCamera'],this[mb(0x976)]['domElement']),this[mb(0x994)](this[mb(0x883)]),this[mb(0x933)]=this[mb(0x1ca)],this['currentControls']=this[mb(0x9d7)];}['setControl'](b){const mf=a0cH;b[mf(0x8f4)]=0.25;}['setBoxInfo'](b,c){const mj=a0cH;this[mj(0x260)]=b,this[mj(0x36f)]=c;}[a0cH(0x20d)](){const mk=a0cH,b=h=>h*(Math['PI']/0xb4),{x:d,y:f,z:g}=this[mk(0x36f)];if(this[mk(0x933)]instanceof a0aL){const h=this['currentCamera'][mk(0x46b)],i=b(this[mk(0x933)]['fov']),j=0x2*Math['atan'](Math[mk(0x580)](i/0x2)*h);return Math['max'](d/(0x2*Math['tan'](j/0x2)),f/(0x2*Math['tan'](i/0x2)),g/0x2)*2.2;}else{const k=this[mk(0x933)]['zoom'];return Math['max'](d,f,g)*2.2/k;}}[a0cH(0x841)](b){const mm=a0cH,{x:d,y:f,z:g}=this[mm(0x260)],h=this[mm(0x20d)](),i=this['options']['render'][mm(0x5ee)],j={'top':[d,f+h,g],'bottom':[d,f-h,g],'front':[d,f,g+h],'back':[d,f,g-h],'left':[d-h,f,g],'right':[d+h,f,g]};this['currentCamera']instanceof a0aL||this[mm(0x5cb)](),this[mm(0x1fa)][mm(0x2da)](0x0,0x0,0x0),this['currentControls']['setLookAt'](...j[b],d,f,g,i);}[a0cH(0x5cb)](){const mn=a0cH,b=this[mn(0x933)],d=this['el']['clientWidth']/this['el'][mn(0x281)],{x:f,y:g,z:h}=this['boxSize'],i=Math['max'](f,g,h)*1.2;b[mn(0x4d1)]=-i*d/0x2,b['right']=i*d/0x2,b['top']=i/0x2,b['bottom']=-i/0x2,b['updateProjectionMatrix']();}[a0cH(0x226)](b){const mp=a0cH;return b==='orthographic'?(this[mp(0x933)]=this['orthographicCamera'],this[mp(0x1fa)]=this[mp(0x883)]):(this[mp(0x933)]=this[mp(0x1ca)],this['currentControls']=this['perspectiveControls']),{'camera':this['currentCamera'],'controls':this[mp(0x1fa)]};}['getCamera'](){const mq=a0cH;return this[mq(0x933)];}['getControls'](){const mv=a0cH;return this[mv(0x1fa)];}['getPerspectiveCamera'](){return this['perspectiveCamera'];}['getOrthographicCamera'](){const mw=a0cH;return this[mw(0x7c1)];}['getPerspectiveControls'](){return this['perspectiveControls'];}[a0cH(0xb94)](){const mx=a0cH;return this[mx(0x883)];}['updateAspectRatio'](b,c){const my=a0cH,d=b/c;this[my(0x1ca)][my(0x46b)]=d,this[my(0x1ca)][my(0x1cf)]();const f=0xa;this['orthographicCamera'][my(0x4d1)]=-0xa*d/0x2,this['orthographicCamera'][my(0x889)]=f*d/0x2,this['orthographicCamera'][my(0x1cf)]();}['dispose'](){}}const Ut=[{'name':'预设风格','type':0x0,'background':{'color':'#ABDEF2','middleColor':a0cH(0x33f),'gradientColor':a0cH(0xa3f)},'sky':{'enabled':!0x1,'turbidity':0x0,'rayleigh':0.28,'mieCoefficient':0.005,'mieDirectionalG':0.7,'elevation':0x2,'azimuth':0xb4,'inclination':0.5},'ssao':{'enabled':!0x1,'intensity':0x8,'kernelRadius':0.2,'minDistance':0.0001,'maxDistance':0.15,'blurKernelSize':0x20,'bias':0x8},'edge':{'enabled':!0x0,'color':'#222222'},'fog':{'enabled':!0x1,'color':'#DBDBDE','density':0.0015},'material':{'opacity':0x1},'axes':{'display':!0x1}},{'name':'环境光渲染','type':0x1,'background':{'color':'#87CEEB','middleColor':a0cH(0x54d),'gradientColor':a0cH(0x33f)},'sky':{'enabled':!0x1,'turbidity':0x0,'rayleigh':0.28,'mieCoefficient':0.005,'mieDirectionalG':0.7,'elevation':0x2,'azimuth':0xb4,'inclination':0.5},'ssao':{'enabled':!0x0,'intensity':0x8,'kernelRadius':0.2,'minDistance':0.0001,'maxDistance':0.15,'blurKernelSize':0x20,'bias':0x8},'edge':{'enabled':!0x0,'color':'#626262'},'fog':{'enabled':!0x1,'color':a0cH(0x59d),'density':0.0015},'material':{'opacity':0x1},'axes':{'display':!0x1}},{'name':'建筑设计','type':0x2,'background':{'color':'#CCCCC9','gradientColor':''},'sky':{'enabled':!0x1,'turbidity':0x0,'rayleigh':0.28,'mieCoefficient':0.005,'mieDirectionalG':0.7,'elevation':0x2,'azimuth':0xb4,'inclination':0.5},'ssao':{'enabled':!0x1,'intensity':0x8,'kernelRadius':0.2,'minDistance':0.0001,'maxDistance':0.15,'blurKernelSize':0x20,'bias':0x8},'edge':{'enabled':!0x0,'color':'#222222'},'fog':{'enabled':!0x1,'color':a0cH(0x59d),'density':0.0015},'material':{'opacity':0x1},'axes':{'display':!0x0}},{'name':'黑白模式','type':0x3,'background':{'color':a0cH(0x3ef),'gradientColor':''},'sky':{'enabled':!0x1,'turbidity':0x0,'rayleigh':0.28,'mieCoefficient':0.005,'mieDirectionalG':0.7,'elevation':0x2,'azimuth':0xb4,'inclination':0.5},'ssao':{'enabled':!0x1,'intensity':0x8,'kernelRadius':0.2,'minDistance':0.0001,'maxDistance':0.15,'blurKernelSize':0x20,'bias':0x8},'edge':{'enabled':!0x0,'color':'#222222'},'fog':{'enabled':!0x1,'color':'#DBDBDE','density':0.0015},'material':{'opacity':0x1},'axes':{'display':!0x1}},{'name':a0cH(0x85b),'type':0x4,'background':{'color':'#323336','gradientColor':''},'sky':{'enabled':!0x1,'turbidity':0x0,'rayleigh':0.28,'mieCoefficient':0.005,'mieDirectionalG':0.7,'elevation':0x2,'azimuth':0xb4,'inclination':0.5},'ssao':{'enabled':!0x1,'intensity':0x8,'kernelRadius':0.2,'minDistance':0.0001,'maxDistance':0.15,'blurKernelSize':0x20,'bias':0x8},'edge':{'enabled':!0x0,'color':a0cH(0x3ef)},'fog':{'enabled':!0x1,'color':a0cH(0x59d),'density':0.0015},'material':{'opacity':0.36},'axes':{'display':!0x1}}];Gr(Ut);const _d=0xffffff,Td=new a0G(0.2,0.2,0.2),Qd=0.5,Sd=0.5,Dd=a0cH(0xb9e),Us=0x6,Xi={'DEFAULT':0x0,'BLACK_WHITE':0x3,'TRANSPARENCY':0x4},Md=new a0g({'color':_d});class Ld{constructor(b){const mz=a0cH;C(this,mz(0x651)),C(this,'originalMaterials'),C(this,'originalTransparencies'),C(this,'currentStyleIndex',Xi['DEFAULT']),C(this,mz(0xb34)),C(this,mz(0x176),!0x0),C(this,mz(0xb74),0x2),(this[mz(0x651)]=b,this['originalMaterials']=new Map(),this['originalTransparencies']=new Map(),this['edgeMeshCache']=new Map());}['changeStyle'](b=Xi['DEFAULT'],c){const mB=a0cH;this['currentStyleIndex']===Xi['TRANSPARENCY']&&this[mB(0x234)](),this['currentStyleIndex']=b,b===Xi['BLACK_WHITE']?this['enableBlackWhiteMode']():this['disableBlackWhiteMode'](),b===Xi[mB(0x87a)]&&this[mB(0x7aa)](),a0bq(this['viewer']['options']['style'],Ut[b]),c&&c(this[mB(0x651)]['options']['style']),this[mB(0x1de)](this[mB(0x651)][mB(0xa3c)]['style']);}['enableBlackWhiteMode'](){this['viewer']['scene']['traverse'](b=>{const mC=a0b;if(b[mC(0x2dc)]){const c=b;this['originalMaterials']['has'](c)||this['originalMaterials'][mC(0x46c)](c,c[mC(0xb87)]),c[mC(0xb87)]=Md;}});}[a0cH(0x439)](){const mD=a0cH;this['viewer'][mD(0x770)]['traverse'](b=>{const mE=mD;if(b['isMesh']){const c=b,d=this['originalMaterials'][mE(0x20c)](c);d&&(c[mE(0xb87)]=d,this['originalMaterials'][mE(0xa16)](c));}});}[a0cH(0x615)](b,c=!0x1){const mF=a0cH,d=b??(this['viewer']['edgeMesh']?!this['_edgeVisible']:!0x0);if(this[mF(0x651)][mF(0x55f)]){this[mF(0xa1c)](d);return;}this[mF(0x651)]['modelLoader']['parseEdge'](),this[mF(0x651)][mF(0x55f)]?this[mF(0xa1c)](d):b!==void 0x0&&(this[mF(0x176)]=b);}[a0cH(0xa1c)](b){const mG=a0cH;this['viewer'][mG(0x55f)]&&(this[mG(0x651)][mG(0x55f)][mG(0x921)]=b,this['_edgeVisible']=b,this['setEdgeMesh'](this['viewer']['edgeMesh']),this['updateEdge']());}['updateEdge'](){const mH=a0cH;if(!this['viewer']['edgeData']||!this[mH(0x651)]['edgeMesh']){this['viewer'][mH(0x55f)]||console['warn'](mH(0x4b3));return;}const b=this['viewer']['layerManager'][mH(0x86d)](),i=[...b][mH(0x32e)]((z,B)=>z-B),j=this['djb2Hash'](i),k=this['edgeMeshCache']['get'](j);if(k){this['viewer']['edgeMesh']&&this[mH(0x651)]['scene']['remove'](this[mH(0x651)][mH(0x55f)]),this[mH(0x651)]['edgeMesh']=this[mH(0xb8e)](k),this['viewer'][mH(0x55f)]['visible']=this['_edgeVisible'],this['viewer']['scene']['add'](this['viewer'][mH(0x55f)]);return;}const {edgeLayers:m}=this['viewer'][mH(0xa1f)],p=m[mH(0x576)],v=new Set(b),w=new Float32Array(p*0x2);let x=0x0;for(let z=0x0;z<p;z++){const B=m[z];let E=0x1;for(let F=0x0;F<B[mH(0x576)];F++)if(v['has'](B[F])){E=0x0;break;}w[x]=E,w[x+0x1]=E,x+=0x2;}this['viewer'][mH(0x55f)][mH(0x45e)][mH(0x86c)]('visibility',new a0F(w,0x1)),this[mH(0x651)][mH(0x55f)][mH(0x45e)]['needsUpdate']=!0x0;const y=this['cloneEdgeMesh'](this[mH(0x651)]['edgeMesh']);this[mH(0xb34)]['set'](j,y),this[mH(0x52f)]();}[a0cH(0xb09)](b,d){const mI=a0cH;this['viewer']['edgeMesh']&&(this[mI(0x651)]['scene']['remove'](this['viewer'][mI(0x55f)]),this[mI(0x651)][mI(0x55f)]['geometry']['dispose'](),this['viewer'][mI(0x55f)]['material']&&typeof this['viewer'][mI(0x55f)][mI(0xb87)]['dispose']==mI(0x199)&&this[mI(0x651)]['edgeMesh'][mI(0xb87)]['dispose'](),this['viewer'][mI(0x55f)]=null);const f=new a0j(),g=Array[mI(0x1d4)](b)&&b['length']>0x0&&b[0x0]instanceof Float32Array?new Float32Array(b[mI(0x97f)]((m,p)=>[...m,...Array[mI(0xb73)](p)],[])):b,h=Array['isArray'](d)&&d['length']>0x0&&d[0x0]instanceof Float32Array?new Float32Array(d['reduce']((m,p)=>[...m,...Array[mI(0xb73)](p)],[])):d;f['setAttribute']('position',new a0F(g,0x3)),f[mI(0x86c)]('visibility',new a0F(h,0x1));const i=Array['from']({'length':Us},()=>new a0y(0x0,0x0,0x0,0x0)),j=new a0u({'uniforms':{'color':{'value':Td['clone']()},'cps':{'value':i}},'vertexShader':this['_getVertexShader'](),'fragmentShader':this[mI(0x70e)](),'clipping':!0x0}),k=new a0k(f,j);k['name']=Dd,k[mI(0x921)]=this[mI(0x176)],this[mI(0x651)][mI(0x55f)]=k,this[mI(0x651)][mI(0x770)]['add'](k);}[a0cH(0xaee)](){return'\x0a\x20\x20\x20\x20\x20\x20uniform\x20vec4\x20cps['+Us+'];\x0a\x20\x20\x20\x20\x20\x20varying\x20vec3\x20vWorldPosition;\x0a\x20\x20\x20\x20\x20\x20attribute\x20float\x20visibility;\x0a\x20\x20\x20\x20\x20\x20varying\x20float\x20vVisibility;\x0a\x0a\x20\x20\x20\x20\x20\x20void\x20main()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20vVisibility\x20=\x20visibility;\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20worldPosition\x20=\x20modelMatrix\x20*\x20vec4(position,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vWorldPosition\x20=\x20worldPosition.xyz;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20projectionMatrix\x20*\x20viewMatrix\x20*\x20worldPosition;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20';}['_getFragmentShader'](){const mJ=a0cH;return mJ(0x698)+Us+'];\x0a\x20\x20\x20\x20\x20\x20varying\x20vec3\x20vWorldPosition;\x0a\x20\x20\x20\x20\x20\x20varying\x20float\x20vVisibility;\x0a\x0a\x20\x20\x20\x20\x20\x20void\x20main()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(vVisibility\x20<\x20'+Sd+')\x20discard;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20for\x20(int\x20i\x20=\x200;\x20i\x20<\x20'+Us+';\x20i++)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(cps[i]\x20!=\x20vec4(0.0))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20distance\x20=\x20dot(vWorldPosition,\x20cps[i].xyz)\x20+\x20cps[i].w;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(distance\x20<=\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20discard;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(color,\x201.0);\x20\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20';}[a0cH(0x394)](b){const mK=a0cH;let c=0x1505;for(let d=0x0;d<b[mK(0x576)];d++)c=(c<<0x5)+c+b[d];return c['toString']();}get['edgeVisible'](){const mL=a0cH;return this['viewer']['edgeMesh']?this['viewer'][mL(0x55f)]['visible']:this['_edgeVisible'];}['isEdgeVisible'](){return this['edgeVisible'];}[a0cH(0x833)](b,c=!0x1){const mM=a0cH;this[mM(0x615)](b,c);}['showEdge'](b=!0x1){this['setEdgeVisible'](!0x0,b);}[a0cH(0x754)](b=!0x1){this['setEdgeVisible'](!0x1,b);}[a0cH(0x952)](b){const mN=a0cH,c=typeof b=='string'?{'color':b}:b;if(!c||!c['color']){console[mN(0x637)](mN(0x3c0));return;}const {color:d,middleColor:f=d,gradientColor:g=d,direction:h=mN(0x790)}=c;d!==g||d!==f?Ka(this[mN(0x651)][mN(0x770)],[{'position':0x0,'color':d},{'position':0.5,'color':f},{'position':0x1,'color':g}],h):this['viewer']['scene']['background']=new a0G(d);}['setEdgeColor'](b){const mO=a0cH;if(this['viewer']['edgeMesh']&&this[mO(0x651)][mO(0x55f)][mO(0xb87)]instanceof a0u){const c=this[mO(0x651)][mO(0x55f)]['material'];c['uniforms']?.[mO(0xa89)]&&(c[mO(0x4b8)]['color']['value']=new a0G(b));}}['setEdgeMesh'](b){this['viewer']['edgeMesh']=b;}[a0cH(0xb8e)](b){const mP=a0cH;if(!b)throw new Error(mP(0x813));const c=b['geometry'][mP(0x8e8)](),d=b['material'][mP(0x8e8)](),f=new a0k(c,d);return f['name']=b[mP(0x587)],f[mP(0x921)]=b['visible'],f;}['cleanupCache'](){const mQ=a0cH;if(this['edgeMeshCache']['size']<=this['maxCacheSize'])return;const b=this[mQ(0xb34)][mQ(0x18b)]-this[mQ(0xb74)],c=Array[mQ(0xb73)](this[mQ(0xb34)][mQ(0x762)]());for(let d=0x0;d<b;d++){const f=c[d],g=this[mQ(0xb34)][mQ(0x20c)](f);g&&(g[mQ(0x45e)][mQ(0xa58)](),g[mQ(0xb87)]&&typeof g[mQ(0xb87)][mQ(0xa58)]=='function'&&g[mQ(0xb87)]['dispose']()),this['edgeMeshCache']['delete'](f);}}[a0cH(0x44d)](){return this['currentStyleIndex'];}['refreshByStyle'](b=this[a0cH(0x651)]['options']['style'],c){const mR=a0cH,{background:d,ssao:f,edge:g,axes:h}=b;this[mR(0x952)](d),g?.[mR(0xa89)]&&this[mR(0x652)](g['color']),c?.[mR(0x670)]&&c[mR(0x670)](h?.['display']||!0x1),c?.['toggleEffect']&&c[mR(0xaa8)]('ssao',f?.['enabled']||!0x1,f);}[a0cH(0x7aa)](){const mS=a0cH;this[mS(0x651)]['scene'][mS(0x730)](b=>{const mT=mS;if(b['isMesh']){const c=b;(Array[mT(0x1d4)](c[mT(0xb87)])?c['material']:[c['material']])[mT(0x2cd)](d=>{const mU=mT;d&&(this['originalTransparencies'][mU(0x2ce)](d)||this['originalTransparencies']['set'](d,{'opacity':d[mU(0xab5)],'transparent':d['transparent']}),d[mU(0x22e)]=!0x0,d[mU(0xab5)]=Qd,d[mU(0x5f7)]=!0x0);});}});}['restoreOriginalTransparencies'](){const mV=a0cH;this[mV(0x9ad)]['forEach']((b,c)=>{const mW=mV;c[mW(0xab5)]=b['opacity'],c['transparent']=b['transparent'],c['needsUpdate']=!0x0;}),this['originalTransparencies'][mV(0x6d2)]();}['dispose'](){const mX=a0cH;this[mX(0x692)]['clear'](),this['originalTransparencies']['clear'](),this['edgeMeshCache']['clear']();}}var Rd=(function(){const mY=a0cH;var i='b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:P8Yqdbk;3sezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfgocl4cifcd4hxdndndndnaoc9WGgmTmbcbhPcehsawcjdfhzalhHinaraH9Rax6midnaraHaxfgl9RcK6mbczhoinawcj;cbfaogifgoc9WfhOdndndndndnaHaic9WfgAco4fRbbaAci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOalRblalRbbgAco4gCaCciSgCE86bbaocGfalclfaCfgORbbaAcl4ciGgCaCciSgCE86bbaocVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbaoc7faOaCfgORbbaAciGgAaAciSgAE86bbaoctfaOaAfgARbbalRbegOco4gCaCciSgCE86bbaoc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc93faAaCfgARbbaOciGgOaOciSgOE86bbaoc94faAaOfgARbbalRbdgOco4gCaCciSgCE86bbaoc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc97faAaCfgARbbaOciGgOaOciSgOE86bbaoc98faAaOfgORbbalRbiglco4gAaAciSgAE86bbaoc99faOaAfgORbbalcl4ciGgAaAciSgAE86bbaoc9:faOaAfgORbbalcd4ciGgAaAciSgAE86bbaocufaOaAfgoRbbalciGglalciSglE86bbaoalfhlxdkaOalRbwalRbbgAcl4gCaCcsSgCE86bbaocGfalcwfaCfgORbbaAcsGgAaAcsSgAE86bbaocVfaOaAfgORbbalRbegAcl4gCaCcsSgCE86bbaoc7faOaCfgORbbaAcsGgAaAcsSgAE86bbaoctfaOaAfgORbbalRbdgAcl4gCaCcsSgCE86bbaoc91faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc4faOaAfgORbbalRbigAcl4gCaCcsSgCE86bbaoc93faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc94faOaAfgORbbalRblgAcl4gCaCcsSgCE86bbaoc95faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc96faOaAfgORbbalRbvgAcl4gCaCcsSgCE86bbaoc97faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc98faOaAfgORbbalRbogAcl4gCaCcsSgCE86bbaoc99faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc9:faOaAfgORbbalRbrglcl4gAaAcsSgAE86bbaocufaOaAfgoRbbalcsGglalcsSglE86bbaoalfhlxekaOal8Pbb83bbaOcwfalcwf8Pbb83bbalczfhlkdnaiam9pmbaiczfhoaral9RcL0mekkaiam6mialTmidnakTmbawaPfRbbhOcbhoazhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkkazcefhzaPcefgPad6hsalhHaPad9hmexvkkcbhlasceGmdxikalaxad2fhCdnakTmbcbhHcehsawcjdfhminaral9Rax6mialTmdalaxfhlawaHfRbbhOcbhoamhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkamcefhmaHcefgHad6hsaHad9hmbkaChlxikcbhocehsinaral9Rax6mdalTmealaxfhlaocefgoad6hsadao9hmbkaChlxdkcbhlasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqalmbkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;yzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2geTmbinababydbgdcwtcw91:Yadce91cjjj;8ifcjjj98G::NUdbabclfhbaecufgembkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfhiaeczfheadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb',j='b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;t9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;h8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgohAaoclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;uzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:EPliuo97eue978Jjjjjbca9Rhidndnadcl9hmbdnaec98GglTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaiaeciGgvcdtgdVcbczad9R;8kbaiabalcdtfglad;8qbbdnavTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkalaiad;8qbbskdnaec98GgxTmbcbhvabhdinadczfglalpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgvax6mbkkaxae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabaxcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbhdabheinaeaepbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbaeczfheadclfgdav6mbkkdnaval9pmbaialciGgdcdtgeVcbc;abae9R;8kbaiabavcdtfgvae;8qbbdnadTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiae;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb',k=new Uint8Array([0x0,0x61,0x73,0x6d,0x1,0x0,0x0,0x0,0x1,0x4,0x1,0x60,0x0,0x0,0x3,0x3,0x2,0x0,0x0,0x5,0x3,0x1,0x0,0x1,0xc,0x1,0x0,0xa,0x16,0x2,0xc,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0xfc,0xa,0x0,0x0,0xb,0x7,0x0,0x41,0x0,0xfd,0xf,0x1a,0xb]),m=new Uint8Array([0x20,0x0,0x41,0x2,0x1,0x6a,0x22,0x21,0x3,0x80,0xb,0x4,0xd,0x40,0x6,0xfd,0xa,0x7,0xf,0x74,0x7f,0x5,0x8,0xc,0x28,0x10,0x13,0x36,0x14,0x9,0x1b,0xff,0x71,0x11,0x2a,0x43,0x18,0x17,0x92,0x94,0x12,0xe,0x16,0x2d,0x46,0x45,0x38,0x72,0x65,0x15,0x19,0x3f,0x4b,0x88,0x6c,0x1c,0x76,0x1d,0x49,0x73]);if(typeof WebAssembly!=mY(0x8c0))return{'supported':!0x1};var v=WebAssembly[mY(0x2be)](k)?j:i,w,x=WebAssembly['instantiate'](y(v),{})['then'](function(T){const mZ=mY;w=T['instance'],w[mZ(0x91c)][mZ(0x460)]();});function y(T){const n0=mY;for(var U=new Uint8Array(T['length']),a0=0x0;a0<T[n0(0x576)];++a0){var a1=T[n0(0x64c)](a0);U[a0]=a1>0x60?a1-0x61:a1>0x40?a1-0x27:a1+0x4;}for(var a2=0x0,a0=0x0;a0<T[n0(0x576)];++a0)U[a2++]=U[a0]<0x3c?m[U[a0]]:(U[a0]-0x3c)*0x40+U[++a0];return U[n0(0x67a)]['slice'](0x0,a2);}function z(U,a0,a1,a2,a3,a4){const n1=mY;var a5=w['exports'][n1(0x929)],a6=a1+0x3&-0x4,a7=a5(a6*a2),a8=a5(a3['length']),a9=new Uint8Array(w[n1(0x91c)][n1(0xb3f)][n1(0x67a)]);a9[n1(0x46c)](a3,a8);var ab=U(a7,a1,a2,a8,a3[n1(0x576)]);if(ab==0x0&&a4&&a4(a7,a6,a2),a0['set'](a9[n1(0x7be)](a7,a7+a1*a2)),a5(a7-a5(0x0)),ab!=0x0)throw new Error(n1(0xa15)+ab);}var B={'NONE':'','OCTAHEDRAL':'meshopt_decodeFilterOct','QUATERNION':'meshopt_decodeFilterQuat','EXPONENTIAL':mY(0x1ee)},E={'ATTRIBUTES':mY(0x241),'TRIANGLES':mY(0x516),'INDICES':mY(0xb2e)},F=[],H=0x0;function L(T){const n2=mY;var U={'object':new Worker(T),'pending':0x0,'requests':{}};return U['object'][n2(0x1aa)]=function(a0){const n3=n2;var a1=a0['data'];U['pending']-=a1[n3(0xa6a)],U['requests'][a1['id']][a1[n3(0x27e)]](a1['value']),delete U['requests'][a1['id']];},U;}function N(T){const n4=mY;for(var U='var\x20instance;\x20var\x20ready\x20=\x20WebAssembly.instantiate(new\x20Uint8Array(['+new Uint8Array(y(v))+']),\x20{}).then(function(result)\x20{\x20instance\x20=\x20result.instance;\x20instance.exports.__wasm_call_ctors();\x20});self.onmessage\x20=\x20workerProcess;'+z[n4(0xa82)]()+S['toString'](),a0=new Blob([U],{'type':n4(0xb63)}),a1=URL['createObjectURL'](a0),a2=0x0;a2<T;++a2)F[a2]=L(a1);URL['revokeObjectURL'](a1);}function R(T,U,a0,a1,a2){const n5=mY;for(var a3=F[0x0],a4=0x1;a4<F['length'];++a4)F[a4]['pending']<a3[n5(0xb00)]&&(a3=F[a4]);return new Promise(function(a5,a6){const n6=n5;var a7=new Uint8Array(a0),a8=H++;a3['pending']+=T,a3[n6(0x960)][a8]={'resolve':a5,'reject':a6},a3[n6(0x8c0)]['postMessage']({'id':a8,'count':T,'size':U,'source':a7,'mode':a1,'filter':a2},[a7[n6(0x67a)]]);});}function S(T){const n7=mY;x[n7(0x75d)](function(){const n8=n7;var U=T['data'];try{var a0=new Uint8Array(U[n8(0xa6a)]*U[n8(0x18b)]);z(w[n8(0x91c)][U['mode']],a0,U[n8(0xa6a)],U['size'],U[n8(0x6a0)],w['exports'][U[n8(0x781)]]),self[n8(0x19e)]({'id':U['id'],'count':U[n8(0xa6a)],'action':'resolve','value':a0},[a0[n8(0x67a)]]);}catch(a1){self['postMessage']({'id':U['id'],'count':U[n8(0xa6a)],'action':'reject','value':a1});}});}return{'ready':x,'supported':!0x0,'useWorkers':function(T){N(T);},'decodeVertexBuffer':function(T,U,a0,a1,a2){z(w['exports']['meshopt_decodeVertexBuffer'],T,U,a0,a1,w['exports'][B[a2]]);},'decodeIndexBuffer':function(T,U,a0,a1){const n9=mY;z(w[n9(0x91c)]['meshopt_decodeIndexBuffer'],T,U,a0,a1);},'decodeIndexSequence':function(T,U,a0,a1){const nb=mY;z(w[nb(0x91c)]['meshopt_decodeIndexSequence'],T,U,a0,a1);},'decodeGltfBuffer':function(T,U,a0,a1,a2,a3){const nj=mY;z(w['exports'][E[a2]],T,U,a0,a1,w[nj(0x91c)][B[a3]]);},'decodeGltfBufferAsync':function(T,U,a0,a1,a2){const nk=mY;return F[nk(0x576)]>0x0?R(T,U,a0,E[a1],B[a2]):x['then'](function(){const nm=nk;var a3=new Uint8Array(T*U);return z(w['exports'][E[a1]],a3,T,U,a0,w[nm(0x91c)][B[a2]]),a3;});}};}());function Wo(b,d){const np=a0cH;if(d===a0aM)return console['warn'](np(0x986)),b;if(d===a0aN||d===a0aO){let f=b[np(0x3b4)]();if(f===null){const j=[],k=b[np(0x271)](np(0x3e0));if(k!==void 0x0){for(let m=0x0;m<k['count'];m++)j['push'](m);b['setIndex'](j),f=b['getIndex']();}else return console['error'](np(0xae1)),b;}const g=f['count']-0x2,h=[];if(d===a0aN){for(let p=0x1;p<=g;p++)h['push'](f['getX'](0x0)),h[np(0x50e)](f['getX'](p)),h['push'](f['getX'](p+0x1));}else{for(let u=0x0;u<g;u++)u%0x2===0x0?(h[np(0x50e)](f['getX'](u)),h[np(0x50e)](f['getX'](u+0x1)),h['push'](f['getX'](u+0x2))):(h['push'](f['getX'](u+0x2)),h[np(0x50e)](f['getX'](u+0x1)),h['push'](f['getX'](u)));}h['length']/0x3!==g&&console['error']('THREE.BufferGeometryUtils.toTrianglesDrawMode():\x20Unable\x20to\x20generate\x20correct\x20amount\x20of\x20triangles.');const i=b['clone']();return i[np(0x31e)](h),i['clearGroups'](),i;}else return console['error']('THREE.BufferGeometryUtils.toTrianglesDrawMode():\x20Unknown\x20draw\x20mode:',d),b;}function Pd(){const nq=a0cH;if(typeof navigator>'u'||typeof window>'u')return!0x1;const b=/Android|iPhone|iPod|Mobile/i['test'](navigator[nq(0x855)]),c=window[nq(0x16b)][nq(0x69c)]<=0x3e8,d='ontouchstart'in window||navigator['maxTouchPoints']>0x0;return b&&(c||d);}class kd extends a0B{constructor(b){const nv=a0cH;super(b),this[nv(0x17d)]=null,this[nv(0x152)]=null,this[nv(0x9ce)]=null,this['pluginCallbacks']=[],this['register'](function(c){return new Gd(c);}),this[nv(0x8b6)](function(c){return new zd(c);}),this['register'](function(c){return new Xd(c);}),this[nv(0x8b6)](function(c){return new $d(c);}),this['register'](function(c){return new Zd(c);}),this['register'](function(c){return new qd(c);}),this['register'](function(c){return new Vd(c);}),this[nv(0x8b6)](function(c){return new jd(c);}),this[nv(0x8b6)](function(c){return new Yd(c);}),this[nv(0x8b6)](function(c){return new Ud(c);}),this[nv(0x8b6)](function(c){return new Kd(c);}),this['register'](function(c){return new Hd(c);}),this['register'](function(c){return new Jd(c);}),this['register'](function(c){return new Wd(c);}),this['register'](function(c){return new Od(c);}),this['register'](function(c){return new eu(c);}),this[nv(0x8b6)](function(c){return new tu(c);});}[a0cH(0x774)](b,d,f,g){const nw=a0cH,i=this;let j;if(this[nw(0x68e)]!=='')j=this[nw(0x68e)];else{if(this['path']!==''){const p=a0aP['extractUrlBase'](b);j=a0aP['resolveURL'](p,this[nw(0xa88)]);}else j=a0aP['extractUrlBase'](b);}this[nw(0xad0)][nw(0x768)](b);const k=function(u){const nx=nw;g?g(u):console['error'](u),i['manager'][nx(0x9fc)](b),i[nx(0xad0)][nx(0x8f3)](b);},m=new a0C(this['manager']);m[nw(0x475)](this[nw(0xa88)]),m['setResponseType']('arraybuffer'),m[nw(0x7d5)](this[nw(0x31a)]),m[nw(0x1f5)](this['withCredentials']),m['load'](b,function(u){const ny=nw;try{i[ny(0x20f)](u,j,function(v){const nz=ny;d(v),i[nz(0xad0)]['itemEnd'](b);},k);}catch(v){k(v);}},f,k);}[a0cH(0x143)](b){return this['dracoLoader']=b,this;}['setKTX2Loader'](b){return this['ktx2Loader']=b,this;}['setMeshoptDecoder'](b){const nB=a0cH;return this[nB(0x9ce)]=b,this;}[a0cH(0x8b6)](b){const nC=a0cH;return this['pluginCallbacks'][nC(0x279)](b)===-0x1&&this[nC(0xaa0)]['push'](b),this;}[a0cH(0x393)](b){const nD=a0cH;return this[nD(0xaa0)]['indexOf'](b)!==-0x1&&this[nD(0xaa0)]['splice'](this['pluginCallbacks'][nD(0x279)](b),0x1),this;}['parse'](b,f,g,i){const nE=a0cH;let j;const k={},m={},p=new TextDecoder();if(typeof b==nE(0xb0b))j=JSON[nE(0x20f)](b);else{if(b instanceof ArrayBuffer){if(p[nE(0x8e1)](new Uint8Array(b,0x0,0x4))===Ec){try{k[V[nE(0x961)]]=new iu(b);}catch(w){i&&i(w);return;}j=JSON[nE(0x20f)](k[V[nE(0x961)]]['content']);}else j=JSON['parse'](p['decode'](b));}else j=b;}if(j[nE(0x8bc)]===void 0x0||j['asset']['version'][0x0]<0x2){i&&i(new Error('THREE.GLTFLoader:\x20Unsupported\x20asset.\x20glTF\x20versions\x20>=2.0\x20are\x20supported.'));return;}const v=new fu(j,{'path':f||this['resourcePath']||'','crossOrigin':this[nE(0x8c6)],'requestHeader':this['requestHeader'],'manager':this[nE(0xad0)],'ktx2Loader':this[nE(0x152)],'meshoptDecoder':this[nE(0x9ce)]});v[nE(0x2a1)][nE(0x7d5)](this['requestHeader']);for(let x=0x0;x<this[nE(0xaa0)][nE(0x576)];x++){const y=this[nE(0xaa0)][x](v);y['name']||console['error'](nE(0xa7f)),m[y[nE(0x587)]]=y,k[y[nE(0x587)]]=!0x0;}if(j['extensionsUsed'])for(let z=0x0;z<j['extensionsUsed']['length'];++z){const B=j[nE(0xa48)][z],E=j[nE(0x93d)]||[];switch(B){case V[nE(0x47a)]:k[B]=new Nd();break;case V[nE(0x17a)]:k[B]=new su(j,this[nE(0x17d)]);break;case V['KHR_TEXTURE_TRANSFORM']:k[B]=new nu();break;case V[nE(0x225)]:k[B]=new ru();break;default:E['indexOf'](B)>=0x0&&m[B]===void 0x0&&console[nE(0x637)](nE(0x390)+B+'\x22.');}}v[nE(0x174)](k),v['setPlugins'](m),v[nE(0x20f)](g,i);}[a0cH(0x84e)](b,c){const d=this;return new Promise(function(f,g){const nF=a0b;d[nF(0x20f)](b,c,f,g);});}}function Fd(){let b={};return{'get':function(c){return b[c];},'add':function(c,d){b[c]=d;},'remove':function(c){delete b[c];},'removeAll':function(){b={};}};}const V={'KHR_BINARY_GLTF':'KHR_binary_glTF','KHR_DRACO_MESH_COMPRESSION':'KHR_draco_mesh_compression','KHR_LIGHTS_PUNCTUAL':a0cH(0x2fe),'KHR_MATERIALS_CLEARCOAT':a0cH(0x634),'KHR_MATERIALS_DISPERSION':'KHR_materials_dispersion','KHR_MATERIALS_IOR':'KHR_materials_ior','KHR_MATERIALS_SHEEN':a0cH(0x74f),'KHR_MATERIALS_SPECULAR':'KHR_materials_specular','KHR_MATERIALS_TRANSMISSION':a0cH(0x7f1),'KHR_MATERIALS_IRIDESCENCE':a0cH(0x89d),'KHR_MATERIALS_ANISOTROPY':a0cH(0x7e4),'KHR_MATERIALS_UNLIT':'KHR_materials_unlit','KHR_MATERIALS_VOLUME':a0cH(0x503),'KHR_TEXTURE_BASISU':'KHR_texture_basisu','KHR_TEXTURE_TRANSFORM':a0cH(0x1a0),'KHR_MESH_QUANTIZATION':'KHR_mesh_quantization','KHR_MATERIALS_EMISSIVE_STRENGTH':'KHR_materials_emissive_strength','EXT_MATERIALS_BUMP':'EXT_materials_bump','EXT_TEXTURE_WEBP':'EXT_texture_webp','EXT_TEXTURE_AVIF':a0cH(0x8d7),'EXT_MESHOPT_COMPRESSION':a0cH(0x557),'EXT_MESH_GPU_INSTANCING':a0cH(0x3f6)};class Od{constructor(b){const nG=a0cH;this['parser']=b,this['name']=V[nG(0x625)],this[nG(0xb41)]={'refs':{},'uses':{}};}[a0cH(0x887)](){const nH=a0cH,b=this['parser'],c=this[nH(0x270)][nH(0x703)]['nodes']||[];for(let d=0x0,f=c[nH(0x576)];d<f;d++){const g=c[d];g[nH(0x22a)]&&g['extensions'][this[nH(0x587)]]&&g[nH(0x22a)][this['name']]['light']!==void 0x0&&b['_addNodeRef'](this['cache'],g[nH(0x22a)][this[nH(0x587)]]['light']);}}[a0cH(0x7a6)](b){const nI=a0cH,c=this[nI(0x270)],f='light:'+b;let g=c[nI(0xb41)][nI(0x20c)](f);if(g)return g;const i=c['json'],j=((i['extensions']&&i[nI(0x22a)][this['name']]||{})['lights']||[])[b];let k;const m=new a0G(0xffffff);j['color']!==void 0x0&&m['setRGB'](j[nI(0xa89)][0x0],j[nI(0xa89)][0x1],j['color'][0x2],a0E);const o=j[nI(0x2e6)]!==void 0x0?j['range']:0x0;switch(j[nI(0x223)]){case nI(0x1b7):k=new a0aS(m),k[nI(0x427)][nI(0x3e0)]['set'](0x0,0x0,-0x1),k['add'](k['target']);break;case nI(0x21d):k=new a0aR(m),k['distance']=o;break;case'spot':k=new a0aQ(m),k[nI(0x5d4)]=o,j['spot']=j[nI(0x8aa)]||{},j[nI(0x8aa)]['innerConeAngle']=j[nI(0x8aa)][nI(0x33d)]!==void 0x0?j[nI(0x8aa)]['innerConeAngle']:0x0,j[nI(0x8aa)]['outerConeAngle']=j['spot']['outerConeAngle']!==void 0x0?j[nI(0x8aa)]['outerConeAngle']:Math['PI']/0x4,k[nI(0x491)]=j['spot']['outerConeAngle'],k['penumbra']=0x1-j[nI(0x8aa)][nI(0x33d)]/j['spot'][nI(0xa24)],k[nI(0x427)][nI(0x3e0)]['set'](0x0,0x0,-0x1),k['add'](k['target']);break;default:throw new Error(nI(0x35f)+j['type']);}return k[nI(0x3e0)][nI(0x46c)](0x0,0x0,0x0),k['decay']=0x2,mt(k,j),j[nI(0xa81)]!==void 0x0&&(k['intensity']=j['intensity']),k[nI(0x587)]=c['createUniqueName'](j['name']||nI(0x1ef)+b),g=Promise['resolve'](k),c[nI(0xb41)][nI(0x644)](f,g),g;}[a0cH(0x2b5)](b,c){const nJ=a0cH;if(b==='light')return this[nJ(0x7a6)](c);}['createNodeAttachment'](b){const nK=a0cH,d=this,f=this[nK(0x270)],g=f['json']['nodes'][b],h=(g[nK(0x22a)]&&g['extensions'][this['name']]||{})['light'];return h===void 0x0?null:this[nK(0x7a6)](h)['then'](function(i){const nL=nK;return f[nL(0x510)](d[nL(0xb41)],h,i);});}}class Nd{constructor(){const nM=a0cH;this['name']=V[nM(0x47a)];}[a0cH(0x289)](){return a0g;}[a0cH(0x512)](b,c,d){const nN=a0cH,f=[];b['color']=new a0G(0x1,0x1,0x1),b['opacity']=0x1;const g=c[nN(0xac5)];if(g){if(Array['isArray'](g['baseColorFactor'])){const h=g[nN(0x4ce)];b['color']['setRGB'](h[0x0],h[0x1],h[0x2],a0E),b['opacity']=h[0x3];}g['baseColorTexture']!==void 0x0&&f[nN(0x50e)](d['assignTexture'](b,'map',g['baseColorTexture'],a0D));}return Promise[nN(0xa5a)](f);}}class Ud{constructor(b){const nO=a0cH;this['parser']=b,this[nO(0x587)]=V[nO(0xa9f)];}[a0cH(0x55e)](b,c){const nP=a0cH,d=this['parser'][nP(0x703)][nP(0x382)][b];if(!d[nP(0x22a)]||!d['extensions'][this['name']])return Promise['resolve']();const f=d[nP(0x22a)][this[nP(0x587)]]['emissiveStrength'];return f!==void 0x0&&(c['emissiveIntensity']=f),Promise['resolve']();}}class Gd{constructor(b){const nQ=a0cH;this[nQ(0x270)]=b,this['name']=V['KHR_MATERIALS_CLEARCOAT'];}['getMaterialType'](b){const nR=a0cH,c=this[nR(0x270)][nR(0x703)][nR(0x382)][b];return!c[nR(0x22a)]||!c[nR(0x22a)][this[nR(0x587)]]?null:a0aH;}[a0cH(0x55e)](b,d){const nS=a0cH,f=this[nS(0x270)],g=f['json']['materials'][b];if(!g['extensions']||!g['extensions'][this['name']])return Promise[nS(0x83e)]();const h=[],i=g['extensions'][this[nS(0x587)]];if(i[nS(0x435)]!==void 0x0&&(d['clearcoat']=i['clearcoatFactor']),i['clearcoatTexture']!==void 0x0&&h[nS(0x50e)](f['assignTexture'](d,'clearcoatMap',i[nS(0x788)])),i[nS(0xa79)]!==void 0x0&&(d[nS(0xb5c)]=i[nS(0xa79)]),i[nS(0x48e)]!==void 0x0&&h['push'](f['assignTexture'](d,'clearcoatRoughnessMap',i[nS(0x48e)])),i['clearcoatNormalTexture']!==void 0x0&&(h[nS(0x50e)](f[nS(0xadb)](d,'clearcoatNormalMap',i[nS(0x14d)])),i['clearcoatNormalTexture'][nS(0x49b)]!==void 0x0)){const j=i[nS(0x14d)][nS(0x49b)];d[nS(0x63f)]=new a0l(j,j);}return Promise[nS(0xa5a)](h);}}class zd{constructor(b){const nT=a0cH;this[nT(0x270)]=b,this[nT(0x587)]=V[nT(0x1a2)];}['getMaterialType'](b){const nU=a0cH,c=this[nU(0x270)]['json'][nU(0x382)][b];return!c['extensions']||!c[nU(0x22a)][this['name']]?null:a0aH;}['extendMaterialParams'](b,c){const nV=a0cH,d=this[nV(0x270)]['json'][nV(0x382)][b];if(!d['extensions']||!d[nV(0x22a)][this['name']])return Promise[nV(0x83e)]();const f=d['extensions'][this['name']];return c['dispersion']=f[nV(0x13d)]!==void 0x0?f[nV(0x13d)]:0x0,Promise[nV(0x83e)]();}}class Hd{constructor(b){const nW=a0cH;this[nW(0x270)]=b,this['name']=V['KHR_MATERIALS_IRIDESCENCE'];}[a0cH(0x289)](b){const nX=a0cH,c=this['parser'][nX(0x703)]['materials'][b];return!c[nX(0x22a)]||!c[nX(0x22a)][this['name']]?null:a0aH;}[a0cH(0x55e)](b,c){const nY=a0cH,d=this['parser'],f=d[nY(0x703)]['materials'][b];if(!f['extensions']||!f[nY(0x22a)][this[nY(0x587)]])return Promise[nY(0x83e)]();const g=[],h=f[nY(0x22a)][this[nY(0x587)]];return h['iridescenceFactor']!==void 0x0&&(c[nY(0x78f)]=h[nY(0x216)]),h['iridescenceTexture']!==void 0x0&&g[nY(0x50e)](d[nY(0xadb)](c,nY(0x422),h[nY(0x8a1)])),h[nY(0x7b3)]!==void 0x0&&(c['iridescenceIOR']=h['iridescenceIor']),c['iridescenceThicknessRange']===void 0x0&&(c['iridescenceThicknessRange']=[0x64,0x190]),h[nY(0x731)]!==void 0x0&&(c['iridescenceThicknessRange'][0x0]=h[nY(0x731)]),h[nY(0xad6)]!==void 0x0&&(c[nY(0x26b)][0x1]=h['iridescenceThicknessMaximum']),h['iridescenceThicknessTexture']!==void 0x0&&g['push'](d['assignTexture'](c,'iridescenceThicknessMap',h[nY(0x1b4)])),Promise['all'](g);}}class qd{constructor(b){const nZ=a0cH;this['parser']=b,this[nZ(0x587)]=V['KHR_MATERIALS_SHEEN'];}[a0cH(0x289)](b){const o0=a0cH,c=this['parser']['json'][o0(0x382)][b];return!c[o0(0x22a)]||!c[o0(0x22a)][this[o0(0x587)]]?null:a0aH;}[a0cH(0x55e)](b,d){const o1=a0cH,f=this[o1(0x270)],g=f[o1(0x703)][o1(0x382)][b];if(!g[o1(0x22a)]||!g['extensions'][this['name']])return Promise[o1(0x83e)]();const h=[];d['sheenColor']=new a0G(0x0,0x0,0x0),d[o1(0x436)]=0x0,d['sheen']=0x1;const i=g[o1(0x22a)][this['name']];if(i[o1(0x8cb)]!==void 0x0){const j=i[o1(0x8cb)];d[o1(0x6d8)][o1(0x4c2)](j[0x0],j[0x1],j[0x2],a0E);}return i[o1(0x552)]!==void 0x0&&(d['sheenRoughness']=i[o1(0x552)]),i[o1(0x81e)]!==void 0x0&&h['push'](f[o1(0xadb)](d,'sheenColorMap',i[o1(0x81e)],a0D)),i['sheenRoughnessTexture']!==void 0x0&&h['push'](f['assignTexture'](d,'sheenRoughnessMap',i[o1(0x8bf)])),Promise[o1(0xa5a)](h);}}class Vd{constructor(b){const o2=a0cH;this[o2(0x270)]=b,this[o2(0x587)]=V[o2(0x6a4)];}['getMaterialType'](b){const o3=a0cH,c=this[o3(0x270)][o3(0x703)][o3(0x382)][b];return!c[o3(0x22a)]||!c[o3(0x22a)][this[o3(0x587)]]?null:a0aH;}['extendMaterialParams'](b,c){const o4=a0cH,d=this[o4(0x270)],f=d['json']['materials'][b];if(!f['extensions']||!f['extensions'][this[o4(0x587)]])return Promise[o4(0x83e)]();const g=[],h=f['extensions'][this[o4(0x587)]];return h[o4(0x35b)]!==void 0x0&&(c['transmission']=h['transmissionFactor']),h[o4(0x3aa)]!==void 0x0&&g['push'](d['assignTexture'](c,'transmissionMap',h['transmissionTexture'])),Promise[o4(0xa5a)](g);}}class jd{constructor(b){const o5=a0cH;this[o5(0x270)]=b,this['name']=V[o5(0xb55)];}[a0cH(0x289)](b){const o6=a0cH,c=this[o6(0x270)][o6(0x703)]['materials'][b];return!c['extensions']||!c['extensions'][this[o6(0x587)]]?null:a0aH;}[a0cH(0x55e)](b,d){const o7=a0cH,f=this['parser'],g=f['json']['materials'][b];if(!g[o7(0x22a)]||!g[o7(0x22a)][this[o7(0x587)]])return Promise['resolve']();const h=[],i=g['extensions'][this[o7(0x587)]];d['thickness']=i[o7(0x823)]!==void 0x0?i[o7(0x823)]:0x0,i[o7(0x8f5)]!==void 0x0&&h['push'](f['assignTexture'](d,'thicknessMap',i[o7(0x8f5)])),d['attenuationDistance']=i[o7(0x2d2)]||0x1/0x0;const j=i['attenuationColor']||[0x1,0x1,0x1];return d[o7(0x62b)]=new a0G()[o7(0x4c2)](j[0x0],j[0x1],j[0x2],a0E),Promise['all'](h);}}class Yd{constructor(b){const o8=a0cH;this['parser']=b,this['name']=V[o8(0x6a6)];}[a0cH(0x289)](b){const o9=a0cH,c=this['parser'][o9(0x703)]['materials'][b];return!c['extensions']||!c['extensions'][this[o9(0x587)]]?null:a0aH;}[a0cH(0x55e)](b,c){const ob=a0cH,d=this['parser']['json']['materials'][b];if(!d['extensions']||!d[ob(0x22a)][this[ob(0x587)]])return Promise['resolve']();const f=d['extensions'][this[ob(0x587)]];return c['ior']=f['ior']!==void 0x0?f['ior']:1.5,Promise['resolve']();}}class Kd{constructor(b){const oj=a0cH;this['parser']=b,this[oj(0x587)]=V[oj(0x8d0)];}[a0cH(0x289)](b){const ok=a0cH,c=this['parser']['json']['materials'][b];return!c['extensions']||!c[ok(0x22a)][this[ok(0x587)]]?null:a0aH;}[a0cH(0x55e)](b,d){const om=a0cH,f=this[om(0x270)],g=f[om(0x703)]['materials'][b];if(!g['extensions']||!g[om(0x22a)][this['name']])return Promise[om(0x83e)]();const h=[],i=g['extensions'][this[om(0x587)]];d[om(0x21f)]=i[om(0x82a)]!==void 0x0?i[om(0x82a)]:0x1,i['specularTexture']!==void 0x0&&h[om(0x50e)](f[om(0xadb)](d,om(0xb95),i['specularTexture']));const j=i[om(0x5e4)]||[0x1,0x1,0x1];return d['specularColor']=new a0G()['setRGB'](j[0x0],j[0x1],j[0x2],a0E),i['specularColorTexture']!==void 0x0&&h[om(0x50e)](f[om(0xadb)](d,'specularColorMap',i[om(0x363)],a0D)),Promise[om(0xa5a)](h);}}class Wd{constructor(b){this['parser']=b,this['name']=V['EXT_MATERIALS_BUMP'];}[a0cH(0x289)](b){const op=a0cH,c=this[op(0x270)][op(0x703)][op(0x382)][b];return!c[op(0x22a)]||!c['extensions'][this[op(0x587)]]?null:a0aH;}['extendMaterialParams'](b,c){const oq=a0cH,d=this[oq(0x270)],f=d['json']['materials'][b];if(!f[oq(0x22a)]||!f['extensions'][this[oq(0x587)]])return Promise['resolve']();const g=[],h=f['extensions'][this['name']];return c[oq(0x954)]=h[oq(0x3c5)]!==void 0x0?h[oq(0x3c5)]:0x1,h['bumpTexture']!==void 0x0&&g['push'](d['assignTexture'](c,oq(0x1bd),h['bumpTexture'])),Promise['all'](g);}}class Jd{constructor(b){const ov=a0cH;this['parser']=b,this['name']=V[ov(0x438)];}[a0cH(0x289)](b){const ow=a0cH,c=this['parser'][ow(0x703)][ow(0x382)][b];return!c[ow(0x22a)]||!c['extensions'][this['name']]?null:a0aH;}['extendMaterialParams'](b,c){const ox=a0cH,d=this['parser'],f=d[ox(0x703)][ox(0x382)][b];if(!f['extensions']||!f['extensions'][this[ox(0x587)]])return Promise['resolve']();const g=[],h=f[ox(0x22a)][this['name']];return h['anisotropyStrength']!==void 0x0&&(c[ox(0x2cb)]=h[ox(0x28c)]),h['anisotropyRotation']!==void 0x0&&(c['anisotropyRotation']=h['anisotropyRotation']),h['anisotropyTexture']!==void 0x0&&g['push'](d['assignTexture'](c,'anisotropyMap',h[ox(0xb99)])),Promise[ox(0xa5a)](g);}}class Xd{constructor(b){const oy=a0cH;this['parser']=b,this[oy(0x587)]=V['KHR_TEXTURE_BASISU'];}['loadTexture'](b){const oz=a0cH,c=this['parser'],d=c[oz(0x703)],f=d['textures'][b];if(!f[oz(0x22a)]||!f[oz(0x22a)][this[oz(0x587)]])return null;const g=f['extensions'][this['name']],h=c[oz(0xa3c)][oz(0x152)];if(!h){if(d[oz(0x93d)]&&d[oz(0x93d)][oz(0x279)](this['name'])>=0x0)throw new Error(oz(0x49c));return null;}return c['loadTextureImage'](b,g[oz(0x6a0)],h);}}class $d{constructor(b){const oB=a0cH;this['parser']=b,this['name']=V[oB(0x501)],this['isSupported']=null;}['loadTexture'](b){const oC=a0cH,d=this['name'],f=this['parser'],g=f[oC(0x703)],i=g['textures'][b];if(!i[oC(0x22a)]||!i[oC(0x22a)][d])return null;const j=i['extensions'][d],k=g['images'][j[oC(0x6a0)]];let m=f[oC(0x5aa)];if(k['uri']){const p=f[oC(0xa3c)][oC(0xad0)][oC(0x41c)](k['uri']);p!==null&&(m=p);}return this['detectSupport']()[oC(0x75d)](function(u){const oD=oC;if(u)return f[oD(0x198)](b,j['source'],m);if(g[oD(0x93d)]&&g[oD(0x93d)][oD(0x279)](d)>=0x0)throw new Error('THREE.GLTFLoader:\x20WebP\x20required\x20by\x20asset\x20but\x20unsupported.');return f['loadTexture'](b);});}[a0cH(0x804)](){const oE=a0cH;return this[oE(0x4ae)]||(this[oE(0x4ae)]=new Promise(function(b){const oF=oE,c=new Image();c['src']='data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA',c['onload']=c[oF(0x6ee)]=function(){const oG=oF;b(c[oG(0x75a)]===0x1);};})),this['isSupported'];}}class Zd{constructor(b){const oH=a0cH;this['parser']=b,this[oH(0x587)]=V[oH(0x9fe)],this['isSupported']=null;}[a0cH(0x3b5)](b){const oI=a0cH,d=this['name'],f=this[oI(0x270)],g=f['json'],i=g['textures'][b];if(!i['extensions']||!i['extensions'][d])return null;const j=i[oI(0x22a)][d],k=g['images'][j[oI(0x6a0)]];let m=f['textureLoader'];if(k['uri']){const p=f['options'][oI(0xad0)]['getHandler'](k['uri']);p!==null&&(m=p);}return this[oI(0x804)]()[oI(0x75d)](function(u){const oJ=oI;if(u)return f[oJ(0x198)](b,j['source'],m);if(g[oJ(0x93d)]&&g[oJ(0x93d)][oJ(0x279)](d)>=0x0)throw new Error(oJ(0xae8));return f[oJ(0x3b5)](b);});}['detectSupport'](){const oK=a0cH;return this[oK(0x4ae)]||(this[oK(0x4ae)]=new Promise(function(b){const oL=oK,c=new Image();c['src']='data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=',c[oL(0x8f0)]=c[oL(0x6ee)]=function(){b(c['height']===0x1);};})),this[oK(0x4ae)];}}class eu{constructor(b){const oM=a0cH;this['name']=V[oM(0x251)],this[oM(0x270)]=b;}[a0cH(0x679)](b){const oN=a0cH,c=this[oN(0x270)]['json'],d=c['bufferViews'][b];if(d['extensions']&&d[oN(0x22a)][this['name']]){const f=d[oN(0x22a)][this[oN(0x587)]],g=this[oN(0x270)]['getDependency']('buffer',f[oN(0x67a)]),h=this[oN(0x270)][oN(0xa3c)][oN(0x9ce)];if(!h||!h[oN(0x362)]){if(c[oN(0x93d)]&&c['extensionsRequired'][oN(0x279)](this['name'])>=0x0)throw new Error(oN(0x884));return null;}return g[oN(0x75d)](function(i){const oO=oN,j=f['byteOffset']||0x0,k=f['byteLength']||0x0,m=f[oO(0xa6a)],p=f[oO(0x819)],v=new Uint8Array(i,j,k);return h['decodeGltfBufferAsync']?h['decodeGltfBufferAsync'](m,p,v,f[oO(0x238)],f['filter'])[oO(0x75d)](function(w){return w['buffer'];}):h[oO(0x38e)]['then'](function(){const w=new ArrayBuffer(m*p);return h['decodeGltfBuffer'](new Uint8Array(w),m,p,v,f['mode'],f['filter']),w;});});}else return null;}}class tu{constructor(b){const oP=a0cH;this[oP(0x587)]=V['EXT_MESH_GPU_INSTANCING'],this['parser']=b;}[a0cH(0x696)](b){const oQ=a0cH,d=this[oQ(0x270)]['json'],f=d['nodes'][b];if(!f['extensions']||!f['extensions'][this[oQ(0x587)]]||f['mesh']===void 0x0)return null;const g=d[oQ(0x591)][f['mesh']];for(const m of g[oQ(0x321)])if(m[oQ(0x238)]!==ke[oQ(0x224)]&&m['mode']!==ke[oQ(0x3f0)]&&m['mode']!==ke['TRIANGLE_FAN']&&m['mode']!==void 0x0)return null;const i=f['extensions'][this[oQ(0x587)]][oQ(0x974)],j=[],k={};for(const p in i)j['push'](this['parser'][oQ(0x2b5)](oQ(0x4dc),i[p])['then'](r=>(k[p]=r,k[p])));return j['length']<0x1?null:(j[oQ(0x50e)](this['parser'][oQ(0x696)](b)),Promise['all'](j)[oQ(0x75d)](r=>{const oR=oQ,v=r['pop'](),x=v[oR(0x6e8)]?v['children']:[v],z=r[0x0][oR(0xa6a)],F=[];for(const H of x){const L=new a0m(),N=new a0c(),R=new a0au(),S=new a0c(0x1,0x1,0x1),T=new a0aw(H[oR(0x45e)],H['material'],z);for(let U=0x0;U<z;U++)k[oR(0x36b)]&&N[oR(0x7bd)](k[oR(0x36b)],U),k['ROTATION']&&R['fromBufferAttribute'](k['ROTATION'],U),k['SCALE']&&S[oR(0x7bd)](k['SCALE'],U),T[oR(0x53e)](U,L['compose'](N,R,S));for(const a0 in k)if(a0==='_COLOR_0'){const a1=k[a0];T['instanceColor']=new a0aT(a1[oR(0x779)],a1[oR(0x7b0)],a1[oR(0xa50)]);}else a0!==oR(0x36b)&&a0!=='ROTATION'&&a0!==oR(0x611)&&H['geometry'][oR(0x86c)](a0,k[a0]);a0d['prototype']['copy'][oR(0x95c)](T,H),this[oR(0x270)][oR(0x324)](T),F[oR(0x50e)](T);}return v['isGroup']?(v['clear'](),v[oR(0x644)](...F),v):F[0x0];}));}}const Ec='glTF',$i=0xc,Jo={'JSON':0x4e4f534a,'BIN':0x4e4942};class iu{constructor(b){const oS=a0cH;this['name']=V['KHR_BINARY_GLTF'],this[oS(0x4a2)]=null,this[oS(0x3f4)]=null;const d=new DataView(b,0x0,$i),f=new TextDecoder();if(this['header']={'magic':f['decode'](new Uint8Array(b['slice'](0x0,0x4))),'version':d['getUint32'](0x4,!0x0),'length':d[oS(0x345)](0x8,!0x0)},this['header'][oS(0x9fd)]!==Ec)throw new Error('THREE.GLTFLoader:\x20Unsupported\x20glTF-Binary\x20header.');if(this['header']['version']<0x2)throw new Error('THREE.GLTFLoader:\x20Legacy\x20binary\x20file\x20detected.');const g=this['header']['length']-$i,i=new DataView(b,$i);let j=0x0;for(;j<g;){const k=i['getUint32'](j,!0x0);j+=0x4;const m=i['getUint32'](j,!0x0);if(j+=0x4,m===Jo[oS(0xa54)]){const p=new Uint8Array(b,$i+j,k);this[oS(0x4a2)]=f['decode'](p);}else{if(m===Jo[oS(0x930)]){const u=$i+j;this[oS(0x3f4)]=b['slice'](u,u+k);}}j+=k;}if(this['content']===null)throw new Error('THREE.GLTFLoader:\x20JSON\x20content\x20not\x20found.');}}class su{constructor(b,c){const oT=a0cH;if(!c)throw new Error(oT(0x5a2));this['name']=V[oT(0x17a)],this[oT(0x703)]=b,this['dracoLoader']=c,this['dracoLoader'][oT(0x8a8)]();}['decodePrimitive'](b,f){const oU=a0cH,i=this[oU(0x703)],j=this[oU(0x17d)],k=b['extensions'][this[oU(0x587)]]['bufferView'],m=b['extensions'][this[oU(0x587)]]['attributes'],p={},v={},w={};for(const x in m){const y=Sr[x]||x[oU(0x816)]();p[y]=m[x];}for(const z in b['attributes']){const B=Sr[z]||z['toLowerCase']();if(m[z]!==void 0x0){const E=i[oU(0xb31)][b['attributes'][z]],F=Ci[E['componentType']];w[B]=F[oU(0x587)],v[B]=E[oU(0xa50)]===!0x0;}}return f[oU(0x2b5)](oU(0xa42),k)['then'](function(H){return new Promise(function(L,N){j['decodeDracoFile'](H,function(R){const oV=a0b;for(const S in R[oV(0x974)]){const T=R['attributes'][S],U=v[S];U!==void 0x0&&(T['normalized']=U);}L(R);},p,w,a0E,N);});});}}class nu{constructor(){const oW=a0cH;this['name']=V[oW(0x864)];}['extendTexture'](b,c){const oX=a0cH;return(c['texCoord']===void 0x0||c['texCoord']===b[oX(0x9f4)])&&c['offset']===void 0x0&&c[oX(0x4cd)]===void 0x0&&c[oX(0x49b)]===void 0x0||(b=b['clone'](),c[oX(0x514)]!==void 0x0&&(b['channel']=c['texCoord']),c['offset']!==void 0x0&&b['offset']['fromArray'](c['offset']),c['rotation']!==void 0x0&&(b[oX(0x4cd)]=c[oX(0x4cd)]),c[oX(0x49b)]!==void 0x0&&b['repeat'][oX(0xae9)](c['scale']),b['needsUpdate']=!0x0),b;}}class ru{constructor(){this['name']=V['KHR_MESH_QUANTIZATION'];}}class Cc extends a0bi{constructor(b,c,d,f){super(b,c,d,f);}['copySampleValue_'](b){const oY=a0cH,c=this[oY(0x934)],d=this[oY(0x529)],f=this['valueSize'],g=b*f*0x3+f;for(let h=0x0;h!==f;h++)c[h]=d[g+h];return c;}['interpolate_'](i,j,k,z){const oZ=a0cH,F=this['resultBuffer'],H=this[oZ(0x529)],L=this[oZ(0x8af)],N=L*0x2,R=L*0x3,S=z-j,T=(k-j)/S,U=T*T,a0=U*T,a1=i*R,a2=a1-R,a3=-0x2*a0+0x3*U,a4=a0-U,a5=0x1-a3,a6=a4-U+T;for(let a7=0x0;a7!==L;a7++){const a8=H[a2+a7+L],a9=H[a2+a7+N]*S,ab=H[a1+a7+L],aj=H[a1+a7]*S;F[a7]=a5*a8+a6*a9+a3*ab+a4*aj;}return F;}}const ou=new a0au();class au extends Cc{[a0cH(0xafb)](b,c,d,f){const p0=a0cH,g=super[p0(0xafb)](b,c,d,f);return ou[p0(0xae9)](g)['normalize']()[p0(0x9d4)](g),g;}}const ke={'POINTS':0x0,'LINES':0x1,'LINE_LOOP':0x2,'LINE_STRIP':0x3,'TRIANGLES':0x4,'TRIANGLE_STRIP':0x5,'TRIANGLE_FAN':0x6},Ci={0x1400:Int8Array,0x1401:Uint8Array,0x1402:Int16Array,0x1403:Uint16Array,0x1405:Uint32Array,0x1406:Float32Array},Xo={0x2600:a0ad,0x2601:a0L,0x2700:a0aZ,0x2701:a0aY,0x2702:a0aX,0x2703:a0M},$o={0x812f:a0b1,0x8370:a0b0,0x2901:a0ak},Xn={'SCALAR':0x1,'VEC2':0x2,'VEC3':0x3,'VEC4':0x4,'MAT2':0x4,'MAT3':0x9,'MAT4':0x10},Sr={'POSITION':'position','NORMAL':a0cH(0x186),'TANGENT':a0cH(0x2e4),'TEXCOORD_0':'uv','TEXCOORD_1':a0cH(0xb44),'TEXCOORD_2':a0cH(0x337),'TEXCOORD_3':a0cH(0x4ff),'COLOR_0':'color','WEIGHTS_0':a0cH(0x15a),'JOINTS_0':'skinIndex'},xt={'scale':a0cH(0x49b),'translation':'position','rotation':'quaternion','weights':a0cH(0x7fe)},cu={'CUBICSPLINE':void 0x0,'LINEAR':a0bd,'STEP':a0bc},$n={'OPAQUE':a0cH(0x325),'MASK':a0cH(0x429),'BLEND':a0cH(0x441)};function lu(b){const p1=a0cH;return b['DefaultMaterial']===void 0x0&&(b[p1(0x67b)]=new a0aG({'color':0xffffff,'side':a0at})),b[p1(0x67b)];}function Ot(b,c,d){const p2=a0cH;for(const f in d['extensions'])b[f]===void 0x0&&(c['userData']['gltfExtensions']=c[p2(0x47e)]['gltfExtensions']||{},c['userData']['gltfExtensions'][f]=d['extensions'][f]);}function mt(b,c){const p3=a0cH;c[p3(0x252)]!==void 0x0&&(typeof c['extras']=='object'?Object[p3(0x9a8)](b['userData'],c['extras']):console['warn'](p3(0xab4)+c['extras']));}function hu(b,f,g){const p4=a0cH;let i=!0x1,j=!0x1,k=!0x1;for(let w=0x0,x=f[p4(0x576)];w<x;w++){const y=f[w];if(y[p4(0x399)]!==void 0x0&&(i=!0x0),y[p4(0x400)]!==void 0x0&&(j=!0x0),y['COLOR_0']!==void 0x0&&(k=!0x0),i&&j&&k)break;}if(!i&&!j&&!k)return Promise['resolve'](b);const m=[],p=[],v=[];for(let z=0x0,B=f['length'];z<B;z++){const E=f[z];if(i){const F=E[p4(0x399)]!==void 0x0?g[p4(0x2b5)]('accessor',E['POSITION']):b['attributes']['position'];m[p4(0x50e)](F);}if(j){const H=E['NORMAL']!==void 0x0?g[p4(0x2b5)](p4(0x4dc),E['NORMAL']):b['attributes']['normal'];p[p4(0x50e)](H);}if(k){const L=E[p4(0x2a7)]!==void 0x0?g[p4(0x2b5)]('accessor',E[p4(0x2a7)]):b['attributes'][p4(0xa89)];v['push'](L);}}return Promise[p4(0xa5a)]([Promise['all'](m),Promise[p4(0xa5a)](p),Promise[p4(0xa5a)](v)])[p4(0x75d)](function(N){const p5=p4,R=N[0x0],S=N[0x1],T=N[0x2];return i&&(b[p5(0x401)]['position']=R),j&&(b[p5(0x401)][p5(0x186)]=S),k&&(b[p5(0x401)][p5(0xa89)]=T),b['morphTargetsRelative']=!0x0,b;});}function Au(b,c){const p6=a0cH;if(b[p6(0x847)](),c[p6(0x247)]!==void 0x0){for(let d=0x0,f=c[p6(0x247)]['length'];d<f;d++)b['morphTargetInfluences'][d]=c['weights'][d];}if(c['extras']&&Array[p6(0x1d4)](c['extras']['targetNames'])){const g=c['extras'][p6(0x7a0)];if(b['morphTargetInfluences'][p6(0x576)]===g['length']){b['morphTargetDictionary']={};for(let h=0x0,i=g['length'];h<i;h++)b['morphTargetDictionary'][g[h]]=h;}else console['warn']('THREE.GLTFLoader:\x20Invalid\x20extras.targetNames\x20length.\x20Ignoring\x20names.');}}function du(b){const p7=a0cH;let c;const d=b['extensions']&&b[p7(0x22a)][V['KHR_DRACO_MESH_COMPRESSION']];if(d?c='draco:'+d[p7(0xa42)]+':'+d[p7(0x508)]+':'+Zn(d[p7(0x974)]):c=b['indices']+':'+Zn(b[p7(0x974)])+':'+b[p7(0x238)],b[p7(0x5cf)]!==void 0x0){for(let f=0x0,g=b['targets'][p7(0x576)];f<g;f++)c+=':'+Zn(b['targets'][f]);}return c;}function Zn(b){const p8=a0cH;let c='';const d=Object[p8(0x762)](b)['sort']();for(let f=0x0,g=d[p8(0x576)];f<g;f++)c+=d[f]+':'+b[d[f]]+';';return c;}function Dr(b){switch(b){case Int8Array:return 0x1/0x7f;case Uint8Array:return 0x1/0xff;case Int16Array:return 0x1/0x7fff;case Uint16Array:return 0x1/0xffff;default:throw new Error('THREE.GLTFLoader:\x20Unsupported\x20normalized\x20accessor\x20component\x20type.');}}function uu(b){const p9=a0cH;return b['search'](/\.jpe?g($|\?)/i)>0x0||b['search'](/^data\:image\/jpeg/)===0x0?'image/jpeg':b['search'](/\.webp($|\?)/i)>0x0||b['search'](/^data\:image\/webp/)===0x0?p9(0x3eb):b[p9(0x825)](/\.ktx2($|\?)/i)>0x0||b['search'](/^data\:image\/ktx2/)===0x0?'image/ktx2':'image/png';}const gu=new a0m();class fu{constructor(b={},d={}){const pb=a0cH;this[pb(0x703)]=b,this[pb(0x22a)]={},this['plugins']={},this['options']=d,this['cache']=new Fd(),this['associations']=new Map(),this[pb(0x16c)]={},this['nodeCache']={},this['meshCache']={'refs':{},'uses':{}},this[pb(0x633)]={'refs':{},'uses':{}},this['lightCache']={'refs':{},'uses':{}},this['sourceCache']={},this[pb(0x2dd)]={},this['nodeNamesUsed']={},this['isMobile']=Pd();let f=!0x1,g=-0x1,h=!0x1,i=-0x1;if(typeof navigator<'u'){const j=navigator[pb(0x855)];f=/^((?!chrome|android).)*safari/i[pb(0x805)](j)===!0x0;const k=j['match'](/Version\/(\d+)/);g=f&&k?parseInt(k[0x1],0xa):-0x1,h=j[pb(0x279)](pb(0x90e))>-0x1,i=h?j[pb(0x1e3)](/Firefox\/([0-9]+)\./)[0x1]:-0x1;}typeof createImageBitmap>'u'||f&&g<0x11||h&&i<0x62?this[pb(0x5aa)]=new a0aU(this['options']['manager']):this['textureLoader']=new a0aV(this['options']['manager']),this['textureLoader'][pb(0x1c9)](this['options']['crossOrigin']),this[pb(0x5aa)][pb(0x7d5)](this[pb(0xa3c)][pb(0x31a)]),this['fileLoader']=new a0C(this[pb(0xa3c)][pb(0xad0)]),this[pb(0x2a1)][pb(0x924)]('arraybuffer'),this[pb(0xa3c)]['crossOrigin']===pb(0x589)&&this[pb(0x2a1)]['setWithCredentials'](!0x0);}['setExtensions'](b){this['extensions']=b;}['setPlugins'](b){const pf=a0cH;this[pf(0x32c)]=b;}['parse'](b,c){const pj=a0cH,d=this,f=this[pj(0x703)],g=this[pj(0x22a)];this['cache']['removeAll'](),this['nodeCache']={},this[pj(0x80d)](function(h){const pk=pj;return h[pk(0x887)]&&h[pk(0x887)]();}),Promise[pj(0xa5a)](this['_invokeAll'](function(h){const pm=pj;return h[pm(0x998)]&&h['beforeRoot']();}))[pj(0x75d)](function(){const pn=pj;return Promise[pn(0xa5a)]([d['getDependencies'](pn(0x770)),d['getDependencies']('animation'),d[pn(0x2b2)]('camera')]);})['then'](function(h){const pp=pj,i={'scene':h[0x0][f[pp(0x770)]||0x0],'scenes':h[0x0],'animations':h[0x1],'cameras':h[0x2],'asset':f[pp(0x8bc)],'parser':d,'userData':{}};return Ot(g,i,f),mt(i,f),Promise[pp(0xa5a)](d['_invokeAll'](function(j){const pq=pp;return j[pq(0xb61)]&&j['afterRoot'](i);}))[pp(0x75d)](function(){for(const j of i['scenes'])j['updateMatrixWorld']();b(i);});})['catch'](c);}[a0cH(0x887)](){const pv=a0cH,b=this[pv(0x703)]['nodes']||[],d=this[pv(0x703)]['skins']||[],f=this[pv(0x703)]['meshes']||[];for(let g=0x0,h=d[pv(0x576)];g<h;g++){const i=d[g][pv(0xb30)];for(let j=0x0,k=i[pv(0x576)];j<k;j++)b[i[j]][pv(0x3e8)]=!0x0;}for(let m=0x0,p=b[pv(0x576)];m<p;m++){const u=b[m];u['mesh']!==void 0x0&&(this['_addNodeRef'](this[pv(0x191)],u['mesh']),u['skin']!==void 0x0&&(f[u['mesh']][pv(0x333)]=!0x0)),u[pv(0x3e2)]!==void 0x0&&this[pv(0x392)](this['cameraCache'],u[pv(0x3e2)]);}}['_addNodeRef'](b,c){const pw=a0cH;c!==void 0x0&&(b[pw(0xacb)][c]===void 0x0&&(b['refs'][c]=b['uses'][c]=0x0),b['refs'][c]++);}['_getNodeRef'](b,c,d){const px=a0cH;if(b[px(0xacb)][c]<=0x1)return d;const f=d[px(0x8e8)](),g=(i,j)=>{const py=px,k=this[py(0x859)][py(0x20c)](i);k!=null&&this['associations']['set'](j,k);for(const [m,p]of i['children'][py(0x75b)]())g(p,j[py(0x330)][m]);};return g(d,f),f['name']+='_instance_'+b[px(0x5a3)][c]++,f;}['_invokeOne'](b){const pz=a0cH,c=Object[pz(0x85f)](this[pz(0x32c)]);c[pz(0x50e)](this);for(let d=0x0;d<c['length'];d++){const f=b(c[d]);if(f)return f;}return null;}[a0cH(0x80d)](b){const pB=a0cH,c=Object[pB(0x85f)](this[pB(0x32c)]);c['unshift'](this);const d=[];for(let f=0x0;f<c[pB(0x576)];f++){const g=b(c[f]);g&&d['push'](g);}return d;}[a0cH(0x2b5)](b,c){const pC=a0cH,d=b+':'+c;let f=this[pC(0xb41)][pC(0x20c)](d);if(!f){switch(b){case'scene':f=this['loadScene'](c);break;case'node':f=this[pC(0xb25)](function(g){const pD=pC;return g['loadNode']&&g[pD(0x5f8)](c);});break;case'mesh':f=this[pC(0xb25)](function(g){const pE=pC;return g['loadMesh']&&g[pE(0x359)](c);});break;case'accessor':f=this['loadAccessor'](c);break;case'bufferView':f=this[pC(0xb25)](function(g){return g['loadBufferView']&&g['loadBufferView'](c);});break;case'buffer':f=this['loadBuffer'](c);break;case pC(0xb87):f=this['_invokeOne'](function(g){const pF=pC;return g[pF(0xb6b)]&&g['loadMaterial'](c);});break;case'texture':f=this['_invokeOne'](function(g){const pG=pC;return g[pG(0x3b5)]&&g['loadTexture'](c);});break;case pC(0x3c9):f=this[pC(0x8fe)](c);break;case'animation':f=this[pC(0xb25)](function(g){const pH=pC;return g[pH(0xa28)]&&g['loadAnimation'](c);});break;case'camera':f=this[pC(0x548)](c);break;default:if(f=this['_invokeOne'](function(g){return g!=this&&g['getDependency']&&g['getDependency'](b,c);}),!f)throw new Error('Unknown\x20type:\x20'+b);break;}this[pC(0xb41)][pC(0x644)](d,f);}return f;}['getDependencies'](b){const pI=a0cH;let c=this[pI(0xb41)]['get'](b);if(!c){const d=this,f=this['json'][b+(b==='mesh'?'es':'s')]||[];c=Promise['all'](f['map'](function(g,h){return d['getDependency'](b,h);})),this['cache']['add'](b,c);}return c;}[a0cH(0x9f2)](b){const pJ=a0cH,c=this[pJ(0x703)][pJ(0x9be)][b],d=this['fileLoader'];if(c[pJ(0x223)]&&c[pJ(0x223)]!=='arraybuffer')throw new Error('THREE.GLTFLoader:\x20'+c[pJ(0x223)]+pJ(0x63c));if(c['uri']===void 0x0&&b===0x0)return Promise['resolve'](this[pJ(0x22a)][V[pJ(0x961)]]['body']);const f=this[pJ(0xa3c)];return new Promise(function(g,h){const pK=pJ;d['load'](a0aP['resolveURL'](c[pK(0x47b)],f['path']),g,void 0x0,function(){const pL=pK;h(new Error(pL(0x354)+c['uri']+'\x22.'));});});}['loadBufferView'](b){const pM=a0cH,c=this['json'][pM(0x63b)][b];return this['getDependency']('buffer',c[pM(0x67a)])[pM(0x75d)](function(d){const pN=pM,f=c['byteLength']||0x0,g=c[pN(0x4b1)]||0x0;return d['slice'](g,g+f);});}['loadAccessor'](b){const pO=a0cH,d=this,f=this['json'],g=this[pO(0x703)]['accessors'][b];if(g['bufferView']===void 0x0&&g[pO(0xa04)]===void 0x0){const j=Xn[g['type']],k=Ci[g[pO(0x184)]],m=g[pO(0xa50)]===!0x0,p=new k(g['count']*j);return Promise[pO(0x83e)](new a0F(p,j,m));}const i=[];return g[pO(0xa42)]!==void 0x0?i[pO(0x50e)](this[pO(0x2b5)]('bufferView',g['bufferView'])):i['push'](null),g['sparse']!==void 0x0&&(i[pO(0x50e)](this['getDependency'](pO(0xa42),g[pO(0xa04)][pO(0x508)][pO(0xa42)])),i[pO(0x50e)](this[pO(0x2b5)]('bufferView',g[pO(0xa04)]['values']['bufferView']))),Promise['all'](i)[pO(0x75d)](function(z){const pP=pO,F=z[0x0],H=Xn[g['type']],L=Ci[g['componentType']],N=L[pP(0x443)],R=N*H,S=g['byteOffset']||0x0,U=g[pP(0xa42)]!==void 0x0?f[pP(0x63b)][g['bufferView']]['byteStride']:void 0x0,a0=g[pP(0xa50)]===!0x0;let a1,a2;if(U&&U!==R){const a3=Math['floor'](S/U),a4='InterleavedBuffer:'+g['bufferView']+':'+g['componentType']+':'+a3+':'+g[pP(0xa6a)];let a5=d['cache'][pP(0x20c)](a4);a5||(a1=new L(F,a3*U,g[pP(0xa6a)]*U/N),a5=new a0aW(a1,U/N),d['cache'][pP(0x644)](a4,a5)),a2=new a0r(a5,H,S%U/N,a0);}else F===null?a1=new L(g['count']*H):a1=new L(F,S,g[pP(0xa6a)]*H),a2=new a0F(a1,H,a0);if(g[pP(0xa04)]!==void 0x0){const a6=Xn['SCALAR'],a7=Ci[g['sparse'][pP(0x508)]['componentType']],a8=g[pP(0xa04)][pP(0x508)]['byteOffset']||0x0,a9=g['sparse'][pP(0x85f)][pP(0x4b1)]||0x0,ab=new a7(z[0x1],a8,g[pP(0xa04)]['count']*a6),aj=new L(z[0x2],a9,g[pP(0xa04)]['count']*H);F!==null&&(a2=new a0F(a2[pP(0x779)]['slice'](),a2['itemSize'],a2[pP(0xa50)])),a2['normalized']=!0x1;for(let ak=0x0,am=ab['length'];ak<am;ak++){const an=ab[ak];if(a2[pP(0x9d8)](an,aj[ak*H]),H>=0x2&&a2['setY'](an,aj[ak*H+0x1]),H>=0x3&&a2[pP(0x687)](an,aj[ak*H+0x2]),H>=0x4&&a2[pP(0x66f)](an,aj[ak*H+0x3]),H>=0x5)throw new Error(pP(0xa56));}a2[pP(0xa50)]=a0;}return a2;});}[a0cH(0x3b5)](b){const pQ=a0cH,d=this[pQ(0x703)],f=this[pQ(0xa3c)],g=d[pQ(0x750)][b]['source'],h=d[pQ(0x2b9)][g];let i=this[pQ(0x5aa)];if(h['uri']){const j=f[pQ(0xad0)]['getHandler'](h['uri']);j!==null&&(i=j);}return this[pQ(0x198)](b,g,i);}['loadTextureImage'](b,d,f){const pR=a0cH,g=this,i=this[pR(0x703)],j=i[pR(0x750)][b],k=i['images'][d],m=(k['uri']||k['bufferView'])+':'+j['sampler'];if(this[pR(0x2dd)][m])return this[pR(0x2dd)][m];const p=this[pR(0x9a9)](d,f)['then'](function(v){const pS=pR;v[pS(0x5ed)]=!0x1,v['name']=j['name']||k['name']||'',v['name']===''&&typeof k[pS(0x47b)]==pS(0xb0b)&&k['uri'][pS(0x316)]('data:image/')===!0x1&&(v['name']=k[pS(0x47b)]);const w=(i['samplers']||{})[j['sampler']]||{};return v[pS(0x38a)]=Xo[w[pS(0x38a)]]||a0L,v[pS(0x533)]=Xo[w['minFilter']]||a0M,v['wrapS']=$o[w[pS(0xa46)]]||a0ak,v['wrapT']=$o[w[pS(0x167)]]||a0ak,v[pS(0x8d1)]=!v[pS(0xb58)]&&v[pS(0x533)]!==a0ad&&v[pS(0x533)]!==a0L,g['isMobile']&&(v['anisotropy']=Math[pS(0x2f8)](v[pS(0x2cb)]||0x1,0x2)),g[pS(0x859)]['set'](v,{'textures':b}),v;})['catch'](function(){return null;});return this[pR(0x2dd)][m]=p,p;}[a0cH(0x9a9)](b,d){const pT=a0cH,f=this,g=this['json'],i=this['options'];if(this['sourceCache'][b]!==void 0x0)return this[pT(0x783)][b][pT(0x75d)](v=>v[pT(0x8e8)]());const j=g['images'][b],k=self[pT(0x230)]||self[pT(0x892)];let m=j['uri']||'',p=!0x1;if(j[pT(0xa42)]!==void 0x0)m=f[pT(0x2b5)](pT(0xa42),j['bufferView'])[pT(0x75d)](function(v){const pU=pT;p=!0x0;const w=new Blob([v],{'type':j[pU(0xb97)]});return m=k['createObjectURL'](w),m;});else{if(j[pT(0x47b)]===void 0x0)throw new Error('THREE.GLTFLoader:\x20Image\x20'+b+pT(0x61e));}const u=Promise['resolve'](m)['then'](function(v){return new Promise(function(w,x){const pV=a0b;let y=w;d[pV(0x820)]===!0x0?y=function(z){const pW=pV,E=new a0be(z);if(E['needsUpdate']=!0x0,f['isMobile']&&z){let F=z['width']||0x0,H=z[pW(0x75a)]||0x0;if(F>0x400||H>0x400){const L=Math['min'](0x400/F,0x400/H),N=Math[pW(0xa7a)](F*L),R=Math['floor'](H*L);createImageBitmap(z,{'resizeWidth':N,'resizeHeight':R,'resizeQuality':pW(0x3ea)})[pW(0x75d)](function(S){const pX=pW;E[pX(0x7dd)]=S,E['needsUpdate']=!0x0,w(E);})[pW(0xb17)](function(){w(E);});return;}}w(E);}:y=function(z){const pY=pV,F=new a0be(z);if(F['needsUpdate']=!0x0,f[pY(0x9fa)]&&z){let H=z[pY(0x69c)]||z[pY(0xab6)]||0x0,L=z['height']||z[pY(0x661)]||0x0;if(H>0x0&&L>0x0&&(H>0x400||L>0x400)){const N=Math['min'](0x400/H,0x400/L),R=Math[pY(0xa7a)](H*N),S=Math[pY(0xa7a)](L*N);try{const T=document['createElement']('canvas');T['width']=R,T['height']=S;const U=T[pY(0x4d3)]('2d');U&&(U[pY(0xa26)](z,0x0,0x0,R,S),F['image']=T,F['needsUpdate']=!0x0);}catch(a0){console[pY(0x637)]('GLTFLoader:\x20Failed\x20to\x20resize\x20texture\x20for\x20mobile',a0);}}}w(F);},d['load'](a0aP['resolveURL'](v,i[pV(0xa88)]),y,void 0x0,x);});})['then'](function(v){const pZ=pT;return p===!0x0&&k[pZ(0x425)](m),mt(v,j),v[pZ(0x47e)][pZ(0xb97)]=j['mimeType']||uu(j['uri']),v;})[pT(0xb17)](function(v){throw console['error']('THREE.GLTFLoader:\x20Couldn\x27t\x20load\x20texture',m),v;});return this[pT(0x783)][b]=u,u;}['assignTexture'](b,c,d,f){const q0=a0cH,g=this;return this[q0(0x2b5)]('texture',d[q0(0x1f9)])[q0(0x75d)](function(h){const q1=q0;if(!h)return null;if(d[q1(0x514)]!==void 0x0&&d['texCoord']>0x0&&(h=h[q1(0x8e8)](),h['channel']=d[q1(0x514)]),g[q1(0x22a)][V['KHR_TEXTURE_TRANSFORM']]){const i=d['extensions']!==void 0x0?d[q1(0x22a)][V['KHR_TEXTURE_TRANSFORM']]:void 0x0;if(i){const j=g[q1(0x859)]['get'](h);h=g[q1(0x22a)][V[q1(0x864)]][q1(0x2ca)](h,i),g[q1(0x859)][q1(0x46c)](h,j);}}return f!==void 0x0&&(h[q1(0x71e)]=f),b[c]=h,h;});}['assignFinalMaterial'](b){const q2=a0cH,d=b['geometry'];let f=b[q2(0xb87)];const g=d['attributes'][q2(0x2e4)]===void 0x0,h=d[q2(0x974)][q2(0xa89)]!==void 0x0,i=d['attributes'][q2(0x186)]===void 0x0;if(b['isPoints']){const j='PointsMaterial:'+f['uuid'];let k=this[q2(0xb41)]['get'](j);k||(k=new a0b2(),a0b3[q2(0x598)][q2(0x195)][q2(0x95c)](k,f),k[q2(0xa89)][q2(0x195)](f[q2(0xa89)]),k[q2(0x941)]=f['map'],k['sizeAttenuation']=!0x1,this[q2(0xb41)][q2(0x644)](j,k)),f=k;}else{if(b[q2(0x97e)]){const m=q2(0x935)+f[q2(0x9b1)];let p=this['cache'][q2(0x20c)](m);p||(p=new a0i(),a0b3[q2(0x598)]['copy']['call'](p,f),p['color']['copy'](f['color']),p[q2(0x941)]=f['map'],this['cache'][q2(0x644)](m,p)),f=p;}}if(g||h||i){let u='ClonedMaterial:'+f[q2(0x9b1)]+':';g&&(u+=q2(0x5f2)),h&&(u+='vertex-colors:'),i&&(u+=q2(0x3cc));let v=this['cache']['get'](u);v||(v=f[q2(0x8e8)](),h&&(v['vertexColors']=!0x0),i&&(v[q2(0xa8e)]=!0x0),g&&(v['normalScale']&&(v[q2(0x5f5)]['y']*=-0x1),v[q2(0x63f)]&&(v['clearcoatNormalScale']['y']*=-0x1)),this['cache'][q2(0x644)](u,v),this[q2(0x859)]['set'](v,this['associations']['get'](f))),f=v;}b['material']=f;}[a0cH(0x289)](){return a0b4;}[a0cH(0xb6b)](b){const q3=a0cH,f=this,g=this[q3(0x703)],i=this['extensions'],j=g['materials'][b];let k;const m={},p=j[q3(0x22a)]||{},v=[];if(p[V[q3(0x47a)]]){const x=i[V['KHR_MATERIALS_UNLIT']];k=x[q3(0x289)](),v[q3(0x50e)](x['extendParams'](m,j,f));}else{const y=j[q3(0xac5)]||{};if(m['color']=new a0G(0x1,0x1,0x1),m[q3(0xab5)]=0x1,Array[q3(0x1d4)](y[q3(0x4ce)])){const z=y['baseColorFactor'];m['color'][q3(0x4c2)](z[0x0],z[0x1],z[0x2],q3(0x1b2)),m['opacity']=z[0x3];}y['baseColorTexture']!==void 0x0&&v['push'](f['assignTexture'](m,q3(0x941),y[q3(0x527)],a0D)),m[q3(0x3b3)]=y[q3(0x35c)]!==void 0x0?y[q3(0x35c)]:0x1,m['roughness']=y[q3(0x26d)]!==void 0x0?y['roughnessFactor']:0x1,!f['isMobile']&&y['metallicRoughnessTexture']!==void 0x0&&(v[q3(0x50e)](f['assignTexture'](m,q3(0x845),y[q3(0x350)])),v[q3(0x50e)](f[q3(0xadb)](m,'roughnessMap',y['metallicRoughnessTexture']))),k=this[q3(0xb25)](function(B){return B['getMaterialType']&&B['getMaterialType'](b);}),v['push'](Promise['all'](this[q3(0x80d)](function(B){const q4=q3;return B['extendMaterialParams']&&B[q4(0x55e)](b,m);})));}j['doubleSided']===!0x0&&(m['side']=a0at);const w=j['alphaMode']||$n[q3(0x325)];if(w===$n[q3(0x441)]?(m[q3(0x22e)]=!0x0,m[q3(0x3bd)]=!0x1):(m[q3(0x22e)]=!0x1,w===$n['MASK']&&(m['alphaTest']=j[q3(0x63a)]!==void 0x0?j[q3(0x63a)]:0.5)),!f[q3(0x9fa)]){if(j[q3(0x6be)]!==void 0x0&&k!==a0g&&(v[q3(0x50e)](f[q3(0xadb)](m,q3(0xad5),j['normalTexture'])),m[q3(0x5f5)]=new a0l(0x1,0x1),j[q3(0x6be)]['scale']!==void 0x0)){const B=j[q3(0x6be)]['scale'];m['normalScale'][q3(0x46c)](B,B);}j['occlusionTexture']!==void 0x0&&k!==a0g&&(v[q3(0x50e)](f['assignTexture'](m,'aoMap',j['occlusionTexture'])),j['occlusionTexture'][q3(0xa39)]!==void 0x0&&(m['aoMapIntensity']=j['occlusionTexture']['strength']));}if(j['emissiveFactor']!==void 0x0&&k!==a0g){const E=j['emissiveFactor'];m[q3(0x725)]=new a0G()[q3(0x4c2)](E[0x0],E[0x1],E[0x2],a0E);}return j['emissiveTexture']!==void 0x0&&k!==a0g&&v['push'](f[q3(0xadb)](m,'emissiveMap',j['emissiveTexture'],a0D)),Promise['all'](v)['then'](function(){const q5=q3;m['hasOwnProperty']('roughness')&&delete m[q5(0x4f9)],m[q5(0x2d7)](q5(0x3b3))&&delete m[q5(0x3b3)];const F=new k(m);Object['keys'](m)['some'](H=>H['includes']('map')&&m[H]!==void 0x0)&&F['color']['set'](0xeeeeee);for(const H in F){const L=F[H];L&&L['isTexture']&&(L['colorSpace']=q5(0x1b2));}return f[q5(0x9fa)]&&(F['envMapIntensity']!==void 0x0&&(F['envMapIntensity']=(F[q5(0x6a8)]||0x1)*0.5),F[q5(0x391)]||F[q5(0x398)]),j[q5(0x587)]&&(F[q5(0x587)]=j['name']),mt(F,j),f[q5(0x859)]['set'](F,{'materials':b}),j[q5(0x22a)]&&Ot(i,F,j),F;});}[a0cH(0x4c3)](b){const q6=a0cH,c=a0b5['sanitizeNodeName'](b||'');return c in this[q6(0x78e)]?c+'_'+ ++this['nodeNamesUsed'][c]:(this['nodeNamesUsed'][c]=0x0,c);}[a0cH(0x7c3)](b){const q7=a0cH,f=this,g=this['extensions'],i=this[q7(0x16c)];function j(m){const q8=q7;return g[V['KHR_DRACO_MESH_COMPRESSION']][q8(0x4e3)](m,f)['then'](function(p){return Zo(p,m,f);});}const k=[];for(let m=0x0,p=b['length'];m<p;m++){const v=b[m],w=du(v),x=i[w];if(x)k['push'](x[q7(0x13a)]);else{let y;v['extensions']&&v['extensions'][V['KHR_DRACO_MESH_COMPRESSION']]?y=j(v):y=Zo(new a0j(),v,f),i[w]={'primitive':v,'promise':y},k[q7(0x50e)](y);}}return Promise['all'](k);}['loadMesh'](b){const q9=a0cH,d=this,f=this[q9(0x703)],g=this['extensions'],i=f[q9(0x591)][b],j=i[q9(0x321)],k=[];for(let m=0x0,p=j[q9(0x576)];m<p;m++){const u=j[m]['material']===void 0x0?lu(this[q9(0xb41)]):this[q9(0x2b5)](q9(0xb87),j[m]['material']);k[q9(0x50e)](u);}return k[q9(0x50e)](d['loadGeometries'](j)),Promise['all'](k)[q9(0x75d)](function(v){const qb=q9,w=v[qb(0x791)](0x0,v['length']-0x1),x=v[v[qb(0x576)]-0x1],y=[];for(let B=0x0,F=x['length'];B<F;B++){const H=x[B],L=j[B];let N;const R=w[B];if(L[qb(0x238)]===ke['TRIANGLES']||L[qb(0x238)]===ke['TRIANGLE_STRIP']||L[qb(0x238)]===ke['TRIANGLE_FAN']||L[qb(0x238)]===void 0x0)N=i['isSkinnedMesh']===!0x0?new a0b6(H,R):new a0e(H,R),N[qb(0x333)]===!0x0&&N[qb(0x3d3)](),L['mode']===ke['TRIANGLE_STRIP']?N[qb(0x45e)]=Wo(N['geometry'],a0aO):L[qb(0x238)]===ke['TRIANGLE_FAN']&&(N[qb(0x45e)]=Wo(N[qb(0x45e)],a0aN));else{if(L[qb(0x238)]===ke['LINES'])N=new a0k(H,R);else{if(L['mode']===ke['LINE_STRIP'])N=new a0ao(H,R);else{if(L[qb(0x238)]===ke['LINE_LOOP'])N=new a0b7(H,R);else{if(L[qb(0x238)]===ke[qb(0x940)])N=new a0b8(H,R);else throw new Error(qb(0x771)+L['mode']);}}}}Object['keys'](N['geometry']['morphAttributes'])['length']>0x0&&Au(N,i),N['name']=d[qb(0x4c3)](i[qb(0x587)]||qb(0x6e0)+b),mt(N,i),L['extensions']&&Ot(g,N,L),d['assignFinalMaterial'](N),y[qb(0x50e)](N);}for(let S=0x0,T=y['length'];S<T;S++)d[qb(0x859)][qb(0x46c)](y[S],{'meshes':b,'primitives':S});if(y[qb(0x576)]===0x1)return i[qb(0x22a)]&&Ot(g,y[0x0],i),y[0x0];const z=new a0ay();i[qb(0x22a)]&&Ot(g,z,i),d['associations'][qb(0x46c)](z,{'meshes':b});for(let U=0x0,a0=y[qb(0x576)];U<a0;U++)z['add'](y[U]);return z;});}['loadCamera'](b){const qe=a0cH;let c;const d=this[qe(0x703)][qe(0x467)][b],f=d[d[qe(0x223)]];if(!f){console[qe(0x637)](qe(0x6a5));return;}return d[qe(0x223)]==='perspective'?c=new a0aL(a0A['radToDeg'](f['yfov']),f[qe(0x336)]||0x1,f[qe(0x734)]||0x1,f['zfar']||0x1e8480):d[qe(0x223)]==='orthographic'&&(c=new a0n(-f['xmag'],f[qe(0x4c4)],f[qe(0x99c)],-f[qe(0x99c)],f['znear'],f['zfar'])),d[qe(0x587)]&&(c['name']=this['createUniqueName'](d['name'])),mt(c,d),Promise['resolve'](c);}[a0cH(0x8fe)](b){const qf=a0cH,c=this['json'][qf(0x9bf)][b],d=[];for(let f=0x0,g=c[qf(0xb30)][qf(0x576)];f<g;f++)d['push'](this[qf(0x2aa)](c[qf(0xb30)][f]));return c[qf(0x3b7)]!==void 0x0?d[qf(0x50e)](this['getDependency'](qf(0x4dc),c[qf(0x3b7)])):d[qf(0x50e)](null),Promise['all'](d)[qf(0x75d)](function(i){const qj=qf,j=i[qj(0x3da)](),k=i,m=[],p=[];for(let v=0x0,w=k[qj(0x576)];v<w;v++){const x=k[v];if(x){m[qj(0x50e)](x);const y=new a0m();j!==null&&y['fromArray'](j['array'],v*0x10),p['push'](y);}else console[qj(0x637)](qj(0x88e),c[qj(0xb30)][v]);}return new a0b9(m,p);});}['loadAnimation'](i){const qk=a0cH,j=this[qk(0x703)],k=this,v=j[qk(0x7f6)][i],w=v[qk(0x587)]?v['name']:qk(0x2b7)+i,x=[],y=[],z=[],B=[],F=[];for(let H=0x0,L=v['channels']['length'];H<L;H++){const N=v['channels'][H],R=v[qk(0x338)][N['sampler']],S=N[qk(0x427)],T=S[qk(0x8b5)],U=v[qk(0x3b9)]!==void 0x0?v['parameters'][R['input']]:R[qk(0x866)],a0=v['parameters']!==void 0x0?v['parameters'][R[qk(0x836)]]:R['output'];S[qk(0x8b5)]!==void 0x0&&(x['push'](this[qk(0x2b5)]('node',T)),y[qk(0x50e)](this['getDependency'](qk(0x4dc),U)),z['push'](this['getDependency']('accessor',a0)),B['push'](R),F['push'](S));}return Promise['all']([Promise['all'](x),Promise['all'](y),Promise['all'](z),Promise[qk(0xa5a)](B),Promise['all'](F)])['then'](function(a1){const qm=qk,a2=a1[0x0],a3=a1[0x1],a4=a1[0x2],a5=a1[0x3],a6=a1[0x4],a7=[];for(let a8=0x0,a9=a2['length'];a8<a9;a8++){const ab=a2[a8],aj=a3[a8],ak=a4[a8],am=a5[a8],an=a6[a8];if(ab===void 0x0)continue;ab[qm(0x9ed)]&&ab[qm(0x9ed)]();const ap=k['_createAnimationTracks'](ab,aj,ak,am,an);if(ap){for(let aq=0x0;aq<ap['length'];aq++)a7[qm(0x50e)](ap[aq]);}}return new a0ba(w,void 0x0,a7);});}[a0cH(0x696)](b){const qp=a0cH,c=this['json'],d=this,f=c[qp(0x6a2)][b];return f['mesh']===void 0x0?null:d['getDependency'](qp(0x209),f[qp(0x209)])[qp(0x75d)](function(g){const qq=qp,h=d['_getNodeRef'](d[qq(0x191)],f['mesh'],g);return f['weights']!==void 0x0&&h[qq(0x730)](function(i){if(i['isMesh']){for(let j=0x0,k=f['weights']['length'];j<k;j++)i['morphTargetInfluences'][j]=f['weights'][j];}}),h;});}[a0cH(0x5f8)](b){const qv=a0cH,d=this['json'],f=this,g=d['nodes'][b],i=f[qv(0x2aa)](b),j=[],k=g[qv(0x330)]||[];for(let p=0x0,u=k[qv(0x576)];p<u;p++)j['push'](f[qv(0x2b5)](qv(0x8b5),k[p]));const m=g[qv(0x3c9)]===void 0x0?Promise[qv(0x83e)](null):f['getDependency'](qv(0x3c9),g[qv(0x3c9)]);return Promise['all']([i,Promise[qv(0xa5a)](j),m])[qv(0x75d)](function(v){const qw=qv,w=v[0x0],x=v[0x1],y=v[0x2];y!==null&&w[qw(0x730)](function(z){const qx=qw;z[qx(0x333)]&&z['bind'](y,gu);});for(let z=0x0,B=x['length'];z<B;z++)w[qw(0x644)](x[z]);return w;});}['_loadNodeShallow'](b){const qy=a0cH,d=this['json'],f=this['extensions'],g=this;if(this['nodeCache'][b]!==void 0x0)return this[qy(0x800)][b];const h=d[qy(0x6a2)][b],i=h['name']?g['createUniqueName'](h[qy(0x587)]):'',j=[],k=g['_invokeOne'](function(m){const qz=qy;return m['createNodeMesh']&&m[qz(0x696)](b);});return k&&j['push'](k),h['camera']!==void 0x0&&j[qy(0x50e)](g['getDependency']('camera',h[qy(0x3e2)])[qy(0x75d)](function(m){const qB=qy;return g[qB(0x510)](g[qB(0x633)],h['camera'],m);})),g['_invokeAll'](function(m){const qC=qy;return m[qC(0x395)]&&m['createNodeAttachment'](b);})[qy(0x2cd)](function(m){const qD=qy;j[qD(0x50e)](m);}),this['nodeCache'][b]=Promise['all'](j)['then'](function(m){const qE=qy;let p;if(h['isBone']===!0x0?p=new a0bb():m['length']>0x1?p=new a0ay():m[qE(0x576)]===0x1?p=m[0x0]:p=new a0d(),p!==m[0x0]){for(let v=0x0,w=m['length'];v<w;v++)p['add'](m[v]);}if(h['name']&&(p['userData']['name']=h[qE(0x587)],p['name']=i),mt(p,h),h[qE(0x22a)]&&Ot(f,p,h),h[qE(0x5bb)]!==void 0x0){const x=new a0m();x['fromArray'](h['matrix']),p[qE(0x5e0)](x);}else h[qE(0x1e8)]!==void 0x0&&p[qE(0x3e0)]['fromArray'](h['translation']),h['rotation']!==void 0x0&&p[qE(0x58f)][qE(0xae9)](h['rotation']),h['scale']!==void 0x0&&p['scale']['fromArray'](h['scale']);return g[qE(0x859)]['has'](p)||g[qE(0x859)][qE(0x46c)](p,{}),g[qE(0x859)][qE(0x20c)](p)[qE(0x6a2)]=b,p;}),this[qy(0x800)][b];}[a0cH(0x58a)](b){const qF=a0cH,d=this[qF(0x22a)],f=this[qF(0x703)]['scenes'][b],g=this,i=new a0ay();f[qF(0x587)]&&(i['name']=g['createUniqueName'](f['name'])),mt(i,f),f['extensions']&&Ot(d,i,f);const j=f['nodes']||[],k=[];for(let m=0x0,p=j['length'];m<p;m++)k['push'](g['getDependency'](qF(0x8b5),j[m]));return Promise['all'](k)['then'](function(u){const qG=qF;for(let w=0x0,x=u['length'];w<x;w++)i[qG(0x644)](u[w]);const v=y=>{const z=new Map();for(const [B,E]of g['associations'])(B instanceof a0b3||B instanceof a0be)&&z['set'](B,E);return y['traverse'](F=>{const qH=a0b,H=g[qH(0x859)][qH(0x20c)](F);H!=null&&z[qH(0x46c)](F,H);}),z;};return g[qG(0x859)]=v(i),i;});}[a0cH(0xae5)](b,i,j,k,m){const qI=a0cH,p=[],v=b[qI(0x587)]?b['name']:b[qI(0x9b1)],w=[];xt[m[qI(0xa88)]]===xt['weights']?b['traverse'](function(B){const qJ=qI;B['morphTargetInfluences']&&w['push'](B['name']?B['name']:B[qJ(0x9b1)]);}):w[qI(0x50e)](v);let x;switch(xt[m['path']]){case xt[qI(0x247)]:x=a0bg;break;case xt['rotation']:x=a0bh;break;case xt['position']:case xt['scale']:x=a0bf;break;default:switch(j[qI(0x7b0)]){case 0x1:x=a0bg;break;case 0x2:case 0x3:default:x=a0bf;break;}break;}const y=k['interpolation']!==void 0x0?cu[k['interpolation']]:a0bd,z=this[qI(0x476)](j);for(let B=0x0,E=w[qI(0x576)];B<E;B++){const F=new x(w[B]+'.'+xt[m[qI(0xa88)]],i['array'],z,y);k[qI(0x58d)]===qI(0x208)&&this['_createCubicSplineTrackInterpolant'](F),p[qI(0x50e)](F);}return p;}[a0cH(0x476)](b){const qK=a0cH;let c=b['array'];if(b['normalized']){const d=Dr(c[qK(0x7d4)]),f=new Float32Array(c['length']);for(let g=0x0,h=c['length'];g<h;g++)f[g]=c[g]*d;c=f;}return c;}[a0cH(0x1df)](b){const qM=a0cH;b['createInterpolant']=function(c){const qL=a0b,d=this instanceof a0bh?au:Cc;return new d(this[qL(0x98f)],this['values'],this[qL(0x479)]()/0x3,c);},b[qM(0x9ff)][qM(0x899)]=!0x0;}}function pu(b,i,j){const qN=a0cH,k=i['attributes'],m=new a0h();if(k['POSITION']!==void 0x0){const x=j[qN(0x703)][qN(0xb31)][k['POSITION']],y=x['min'],z=x['max'];if(y!==void 0x0&&z!==void 0x0){if(m[qN(0x46c)](new a0c(y[0x0],y[0x1],y[0x2]),new a0c(z[0x0],z[0x1],z[0x2])),x[qN(0xa50)]){const B=Dr(Ci[x['componentType']]);m[qN(0x2f8)]['multiplyScalar'](B),m[qN(0x894)][qN(0xa49)](B);}}else{console[qN(0x637)](qN(0x2ea));return;}}else return;const v=i[qN(0x5cf)];if(v!==void 0x0){const E=new a0c(),F=new a0c();for(let H=0x0,L=v[qN(0x576)];H<L;H++){const N=v[H];if(N[qN(0x399)]!==void 0x0){const R=j['json'][qN(0xb31)][N['POSITION']],S=R['min'],T=R['max'];if(S!==void 0x0&&T!==void 0x0){if(F[qN(0x9d8)](Math[qN(0x894)](Math[qN(0x2f1)](S[0x0]),Math[qN(0x2f1)](T[0x0]))),F['setY'](Math['max'](Math['abs'](S[0x1]),Math['abs'](T[0x1]))),F[qN(0x687)](Math['max'](Math[qN(0x2f1)](S[0x2]),Math[qN(0x2f1)](T[0x2]))),R[qN(0xa50)]){const U=Dr(Ci[R[qN(0x184)]]);F['multiplyScalar'](U);}E['max'](F);}else console['warn']('THREE.GLTFLoader:\x20Missing\x20min/max\x20properties\x20for\x20accessor\x20POSITION.');}}m[qN(0x485)](E);}b[qN(0x785)]=m;const w=new a0t();m['getCenter'](w['center']),w['radius']=m[qN(0x2f8)]['distanceTo'](m['max'])/0x2,b['boundingSphere']=w;}function Zo(b,d,f){const qO=a0cH,g=d['attributes'],h=[];function i(j,k){return f['getDependency']('accessor',j)['then'](function(m){b['setAttribute'](k,m);});}for(const j in g){const k=Sr[j]||j[qO(0x816)]();k in b['attributes']||h[qO(0x50e)](i(g[j],k));}if(d['indices']!==void 0x0&&!b['index']){const l=f['getDependency'](qO(0x4dc),d['indices'])[qO(0x75d)](function(m){const qP=qO;b[qP(0x31e)](m);});h['push'](l);}return a0H['workingColorSpace']!==a0E&&qO(0x2a7)in g&&console[qO(0x637)]('THREE.GLTFLoader:\x20Converting\x20vertex\x20colors\x20from\x20\x22srgb-linear\x22\x20to\x20\x22'+a0H['workingColorSpace']+qO(0x76b)),mt(b,d),pu(b,d,f),Promise['all'](h)['then'](function(){const qQ=qO;return d['targets']!==void 0x0?hu(b,d[qQ(0x5cf)],f):b;});}var Ie=Uint8Array,gi=Uint16Array,mu=Int32Array,yc=new Ie([0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x1,0x1,0x2,0x2,0x2,0x2,0x3,0x3,0x3,0x3,0x4,0x4,0x4,0x4,0x5,0x5,0x5,0x5,0x0,0x0,0x0,0x0]),wc=new Ie([0x0,0x0,0x0,0x0,0x1,0x1,0x2,0x2,0x3,0x3,0x4,0x4,0x5,0x5,0x6,0x6,0x7,0x7,0x8,0x8,0x9,0x9,0xa,0xa,0xb,0xb,0xc,0xc,0xd,0xd,0x0,0x0]),bu=new Ie([0x10,0x11,0x12,0x0,0x8,0x7,0x9,0x6,0xa,0x5,0xb,0x4,0xc,0x3,0xd,0x2,0xe,0x1,0xf]),Ic=function(b,c){for(var d=new gi(0x1f),f=0x0;f<0x1f;++f)d[f]=c+=0x1<<b[f-0x1];for(var g=new mu(d[0x1e]),f=0x1;f<0x1e;++f)for(var h=d[f];h<d[f+0x1];++h)g[h]=h-d[f]<<0x5|f;return{'b':d,'r':g};},Bc=Ic(yc,0x2),xc=Bc['b'],Eu=Bc['r'];xc[0x1c]=0x102,Eu[0x102]=0x1c;var Cu=Ic(wc,0x0),yu=Cu['b'],Mr=new gi(0x8000);for(var ee=0x0;ee<0x8000;++ee){var vt=(ee&0xaaaa)>>0x1|(ee&0x5555)<<0x1;vt=(vt&0xcccc)>>0x2|(vt&0x3333)<<0x2,vt=(vt&0xf0f0)>>0x4|(vt&0xf0f)<<0x4,Mr[ee]=((vt&0xff00)>>0x8|(vt&0xff)<<0x8)>>0x1;}var as=function(b,f,g){for(var i=b['length'],j=0x0,k=new gi(f);j<i;++j)b[j]&&++k[b[j]-0x1];var m=new gi(f);for(j=0x1;j<f;++j)m[j]=m[j-0x1]+k[j-0x1]<<0x1;var p;if(g){p=new gi(0x1<<f);var v=0xf-f;for(j=0x0;j<i;++j)if(b[j]){for(var w=j<<0x4|b[j],x=f-b[j],y=m[b[j]-0x1]++<<x,z=y|(0x1<<x)-0x1;y<=z;++y)p[Mr[y]>>v]=w;}}else{for(p=new gi(i),j=0x0;j<i;++j)b[j]&&(p[j]=Mr[m[b[j]-0x1]++]>>0xf-b[j]);}return p;},gs=new Ie(0x120);for(var ee=0x0;ee<0x90;++ee)gs[ee]=0x8;for(var ee=0x90;ee<0x100;++ee)gs[ee]=0x9;for(var ee=0x100;ee<0x118;++ee)gs[ee]=0x7;for(var ee=0x118;ee<0x120;++ee)gs[ee]=0x8;var vc=new Ie(0x20);for(var ee=0x0;ee<0x20;++ee)vc[ee]=0x5;var wu=as(gs,0x9,0x1),Iu=as(vc,0x5,0x1),er=function(b){for(var c=b[0x0],d=0x1;d<b['length'];++d)b[d]>c&&(c=b[d]);return c;},je=function(b,c,d){var f=c/0x8|0x0;return(b[f]|b[f+0x1]<<0x8)>>(c&0x7)&d;},tr=function(b,c){var d=c/0x8|0x0;return(b[d]|b[d+0x1]<<0x8|b[d+0x2]<<0x10)>>(c&0x7);},Bu=function(b){return(b+0x7)/0x8|0x0;},cs=function(b,c,d){const qR=a0cH;return(c==null||c<0x0)&&(c=0x0),(d==null||d>b['length'])&&(d=b[qR(0x576)]),new Ie(b[qR(0x7be)](c,d));},xu=['unexpected\x20EOF',a0cH(0x9f5),'invalid\x20length/literal','invalid\x20distance','stream\x20finished',a0cH(0x55a),,a0cH(0xa5d),a0cH(0x144),a0cH(0xb2a),a0cH(0x9e0),'filename\x20too\x20long',a0cH(0x8e9),a0cH(0x69f)],ye=function(b,c,d){const qS=a0cH;var f=new Error(c||xu[b]);if(f[qS(0x9c5)]=b,Error['captureStackTrace']&&Error[qS(0x1ae)](f,ye),!d)throw f;return f;},vu=function(i,a0,a1,a2){const qU=a0cH;var a3=i['length'],a4=0x0;if(!a3||a0['f']&&!a0['l'])return a1||new Ie(0x0);var a5=!a1,a6=a5||a0['i']!=0x2,a7=a0['i'];a5&&(a1=new Ie(a3*0x3));var a8=function(aZ){const qT=a0b;var b0=a1[qT(0x576)];if(aZ>b0){var b1=new Ie(Math[qT(0x894)](b0*0x2,aZ));b1[qT(0x46c)](a1),a1=b1;}},a9=a0['f']||0x0,ab=a0['p']||0x0,aj=a0['b']||0x0,ak=a0['l'],am=a0['d'],an=a0['m'],ap=a0['n'],aq=a3*0x8;do{if(!ak){a9=je(i,ab,0x1);var av=je(i,ab+0x1,0x3);if(ab+=0x3,av){if(av==0x1)ak=wu,am=Iu,an=0x9,ap=0x5;else{if(av==0x2){var aw=je(i,ab,0x1f)+0x101,ax=je(i,ab+0xa,0xf)+0x4,ay=aw+je(i,ab+0x5,0x1f)+0x1;ab+=0xe;for(var az=new Ie(ay),aB=new Ie(0x13),aC=0x0;aC<ax;++aC)aB[bu[aC]]=je(i,ab+aC*0x3,0x7);ab+=ax*0x3;for(var aD=er(aB),aE=(0x1<<aD)-0x1,aF=as(aB,aD,0x1),aC=0x0;aC<ay;){var aG=aF[je(i,ab,aE)];ab+=aG&0xf;var aH=aG>>0x4;if(aH<0x10)az[aC++]=aH;else{var aI=0x0,aJ=0x0;for(aH==0x10?(aJ=0x3+je(i,ab,0x3),ab+=0x2,aI=az[aC-0x1]):aH==0x11?(aJ=0x3+je(i,ab,0x7),ab+=0x3):aH==0x12&&(aJ=0xb+je(i,ab,0x7f),ab+=0x7);aJ--;)az[aC++]=aI;}}var aK=az[qU(0x7be)](0x0,aw),aL=az['subarray'](aw);an=er(aK),ap=er(aL),ak=as(aK,an,0x1),am=as(aL,ap,0x1);}else ye(0x1);}}else{var aH=Bu(ab)+0x4,aM=i[aH-0x4]|i[aH-0x3]<<0x8,aN=aH+aM;if(aN>a3){a7&&ye(0x0);break;}a6&&a8(aj+aM),a1['set'](i[qU(0x7be)](aH,aN),aj),a0['b']=aj+=aM,a0['p']=ab=aN*0x8,a0['f']=a9;continue;}if(ab>aq){a7&&ye(0x0);break;}}a6&&a8(aj+0x20000);for(var aO=(0x1<<an)-0x1,aP=(0x1<<ap)-0x1,aQ=ab;;aQ=ab){var aI=ak[tr(i,ab)&aO],aR=aI>>0x4;if(ab+=aI&0xf,ab>aq){a7&&ye(0x0);break;}if(aI||ye(0x2),aR<0x100)a1[aj++]=aR;else{if(aR==0x100){aQ=ab,ak=null;break;}else{var aS=aR-0xfe;if(aR>0x108){var aC=aR-0x101,aT=yc[aC];aS=je(i,ab,(0x1<<aT)-0x1)+xc[aC],ab+=aT;}var aU=am[tr(i,ab)&aP],aV=aU>>0x4;aU||ye(0x3),ab+=aU&0xf;var aL=yu[aV];if(aV>0x3){var aT=wc[aV];aL+=tr(i,ab)&(0x1<<aT)-0x1,ab+=aT;}if(ab>aq){a7&&ye(0x0);break;}a6&&a8(aj+0x20000);var aW=aj+aS;if(aj<aL){var aX=a4-aL,aY=Math[qU(0x2f8)](aL,aW);for(aX+aj<0x0&&ye(0x3);aj<aY;++aj)a1[aj]=a2[aX+aj];}for(;aj<aW;++aj)a1[aj]=a1[aj-aL];}}}a0['l']=ak,a0['p']=aQ,a0['b']=aj,a0['f']=a9,ak&&(a9=0x1,a0['m']=an,a0['d']=am,a0['n']=ap);}while(!a9);return aj!=a1['length']&&a5?cs(a1,0x0,aj):a1['subarray'](0x0,aj);},is=new Ie(0x0),fi=function(b,c){return b[c]|b[c+0x1]<<0x8;},pi=function(b,c){return(b[c]|b[c+0x1]<<0x8|b[c+0x2]<<0x10|b[c+0x3]<<0x18)>>>0x0;},ir=function(b,c){return pi(b,c)+pi(b,c+0x4)*0x100000000;},_u=(function(){const qW=a0cH;function b(c,d){const qV=a0b;typeof c=='function'&&(d=c,c={}),this['ondata']=d;var f=c&&c['dictionary']&&c['dictionary'][qV(0x7be)](-0x8000);this['s']={'i':0x0,'b':f?f['length']:0x0},this['o']=new Ie(0x8000),this['p']=new Ie(0x0),f&&this['o']['set'](f);}return b[qW(0x598)]['e']=function(c){const qX=qW;if(this['ondata']||ye(0x5),this['d']&&ye(0x4),!this['p'][qX(0x576)])this['p']=c;else{if(c['length']){var d=new Ie(this['p'][qX(0x576)]+c[qX(0x576)]);d[qX(0x46c)](this['p']),d['set'](c,this['p'][qX(0x576)]),this['p']=d;}}},b['prototype']['c']=function(c){const qY=qW;this['s']['i']=+(this['d']=c||!0x1);var d=this['s']['b'],f=vu(this['p'],this['s'],this['o']);this[qY(0x91a)](cs(f,d,this['s']['b']),this['d']),this['o']=cs(f,this['s']['b']-0x8000),this['s']['b']=this['o'][qY(0x576)],this['p']=cs(this['p'],this['s']['p']/0x8|0x0),this['s']['p']&=0x7;},b['prototype'][qW(0x50e)]=function(c,d){this['e'](c),this['c'](d);},b;}()),Lr=typeof TextDecoder<'u'&&new TextDecoder(),Tu=0x0;try{Lr['decode'](is,{'stream':!0x0}),Tu=0x1;}catch{}var Qu=function(b){const qZ=a0cH;for(var c='',d=0x0;;){var f=b[d++],g=(f>0x7f)+(f>0xdf)+(f>0xef);if(d+g>b[qZ(0x576)])return{'s':c,'r':cs(b,d-0x1)};g?g==0x3?(f=((f&0xf)<<0x12|(b[d++]&0x3f)<<0xc|(b[d++]&0x3f)<<0x6|b[d++]&0x3f)-0x10000,c+=String[qZ(0x1c8)](0xd800|f>>0xa,0xdc00|f&0x3ff)):g&0x1?c+=String[qZ(0x1c8)]((f&0x1f)<<0x6|b[d++]&0x3f):c+=String['fromCharCode']((f&0xf)<<0xc|(b[d++]&0x3f)<<0x6|b[d++]&0x3f):c+=String['fromCharCode'](f);}};function Su(b,c){const r0=a0cH;if(c){for(var d='',f=0x0;f<b[r0(0x576)];f+=0x4000)d+=String['fromCharCode'][r0(0x848)](null,b[r0(0x7be)](f,f+0x4000));return d;}else{if(Lr)return Lr[r0(0x8e1)](b);var g=Qu(b),h=g['s'],d=g['r'];return d[r0(0x576)]&&ye(0x8),h;}}var Du=function(b,c){for(;fi(b,c)!=0x1;c+=0x4+fi(b,c+0x2));return[ir(b,c+0xc),ir(b,c+0x4),ir(b,c+0x14)];},Mu=(function(){const r1=a0cH;function b(){}return b[r1(0x598)][r1(0x50e)]=function(c,d){const r2=r1;this[r2(0x91a)](null,c,d);},b[r1(0x94b)]=0x0,b;}()),Lu=(function(){const r4=a0cH;function b(){var c=this;this['i']=new _u(function(d,f){const r3=a0b;c[r3(0x91a)](null,d,f);});}return b[r4(0x598)][r4(0x50e)]=function(c,d){const r5=r4;try{this['i'][r5(0x50e)](c,d);}catch(f){this['ondata'](f,null,d);}},b['compression']=0x8,b;}()),Ru=(function(){const rj=a0cH;function b(c){const r6=a0b;this[r6(0x8d9)]=c,this['k']=[],this['o']={0x0:Mu},this['p']=is;}return b['prototype']['push']=function(i,j){const r7=a0b;var k=this;if(this[r7(0x8d9)]||ye(0x5),this['p']||ye(0x4),this['c']>0x0){var m=Math['min'](this['c'],i['length']),v=i[r7(0x7be)](0x0,m);if(this['c']-=m,this['d']?this['d'][r7(0x50e)](v,!this['c']):this['k'][0x0]['push'](v),i=i[r7(0x7be)](m),i[r7(0x576)])return this[r7(0x50e)](i,j);}else{var w=0x0,x=0x0,y=void 0x0,z=void 0x0;this['p']['length']?i[r7(0x576)]?(z=new Ie(this['p'][r7(0x576)]+i[r7(0x576)]),z['set'](this['p']),z['set'](i,this['p'][r7(0x576)])):z=this['p']:z=i;for(var B=z['length'],E=this['c'],F=E&&this['d'],H=function(){const r8=r7;var U,a0=pi(z,x);if(a0==0x4034b50){w=0x1,y=x,L['d']=null,L['c']=0x0;var a1=fi(z,x+0x6),a2=fi(z,x+0x8),a3=a1&0x800,a4=a1&0x8,a5=fi(z,x+0x1a),a6=fi(z,x+0x1c);if(B>x+0x1e+a5+a6){var a7=[];L['k'][r8(0x25d)](a7),w=0x2;var a8=pi(z,x+0x12),a9=pi(z,x+0x16),ab=Su(z[r8(0x7be)](x+0x1e,x+=0x1e+a5),!a3);a8==0xffffffff?(U=a4?[-0x2]:Du(z,x),a8=U[0x0],a9=U[0x1]):a4&&(a8=-0x1),x+=a6,L['c']=a8;var aj,ak={'name':ab,'compression':a2,'start':function(){const r9=r8;if(ak[r9(0x91a)]||ye(0x5),!a8)ak[r9(0x91a)](null,is,!0x0);else{var am=k['o'][a2];am||ak[r9(0x91a)](ye(0xe,'unknown\x20compression\x20type\x20'+a2,0x1),null,!0x1),aj=a8<0x0?new am(ab):new am(ab,a8,a9),aj[r9(0x91a)]=function(av,aw,ax){ak['ondata'](av,aw,ax);};for(var an=0x0,ap=a7;an<ap[r9(0x576)];an++){var aq=ap[an];aj['push'](aq,!0x1);}k['k'][0x0]==a7&&k['c']?k['d']=aj:aj[r9(0x50e)](is,!0x0);}},'terminate':function(){const rb=r8;aj&&aj['terminate']&&aj[rb(0x22c)]();}};a8>=0x0&&(ak['size']=a8,ak[r8(0x2ab)]=a9),L[r8(0x8d9)](ak);}return r8(0x646);}else{if(E){if(a0==0x8074b50)return y=x+=0xc+(E==-0x2&&0x8),w=0x3,L['c']=0x0,r8(0x646);if(a0==0x2014b50)return y=x-=0x4,w=0x3,L['c']=0x0,r8(0x646);}}},L=this;x<B-0x4;++x){var N=H();if(N===r7(0x646))break;}if(this['p']=is,E<0x0){var R=w?z['subarray'](0x0,y-0xc-(E==-0x2&&0x8)-(pi(z,y-0x10)==0x8074b50&&0x4)):z[r7(0x7be)](0x0,x);F?F['push'](R,!!w):this['k'][+(w==0x2)]['push'](R);}if(w&0x2)return this['push'](z[r7(0x7be)](x),j);this['p']=z['subarray'](x);}j&&(this['c']&&ye(0xd),this['p']=null);},b[rj(0x598)][rj(0x8b6)]=function(c){this['o'][c['compression']]=c;},b;}()),D=(b=>(b['DEBUG']=a0cH(0x7d1),b['INFO']=a0cH(0x404),b[a0cH(0x2db)]='warn',b[a0cH(0x8cd)]='error',b))(D||{});const Pu={'debug':'color:\x20#64748b;\x20font-style:\x20italic;','info':'color:\x20#3b82f6;\x20font-weight:\x20normal;','warn':a0cH(0x1b8),'error':a0cH(0x44b)};function ku(b){const rk=a0cH;let c=0x0;for(let d=0x0;d<b[rk(0x576)];d++)c=b['charCodeAt'](d)+((c<<0x5)-c);return'hsl('+Math[rk(0x2f1)](c%0x168)+',\x2070%,\x2050%)';}class on{constructor(b,c){const rm=a0cH;C(this,rm(0xb20)),C(this,rm(0x95b)),C(this,'minimumLevel'),C(this,rm(0x3ad)),(this[rm(0xb20)]=b,this['enabled']=c?.[rm(0x95b)]??!0x1,this['minimumLevel']=c?.['minimumLevel']??rm(0x7d1),this[rm(0x3ad)]=ku(b));}[a0cH(0x7d1)](b,c){const rp=a0cH;this['enabled']&&this['shouldLog']('debug')&&this[rp(0x60b)]('debug',b,c);}[a0cH(0x404)](b,c){const rq=a0cH;this['enabled']&&this['shouldLog'](rq(0x404))&&this[rq(0x60b)]('info',b,c);}['warn'](b,c){const rv=a0cH;this['enabled']&&this[rv(0xb7b)]('warn')&&this['log']('warn',b,c);}[a0cH(0x323)](b,c){const rw=a0cH;this['enabled']&&this[rw(0xb7b)](rw(0x323))&&this[rw(0x60b)](rw(0x323),b,c);}['log'](b,d,f){const rx=a0cH,g=new Date()[rx(0x728)](),h='color:\x20'+this[rx(0x3ad)]+';\x20font-weight:\x20bold;',i='color:\x20#94a3b8;\x20font-size:\x200.85em;',j=Pu[b],k=['%c['+this[rx(0xb20)]+rx(0x1d6)+g+rx(0x1d6)+b['toUpperCase']()+']\x20'+d,h,i,j];switch(f&&k[rx(0x50e)](f),b){case rx(0x7d1):console[rx(0x60b)]['apply'](console,k);break;case rx(0x404):console[rx(0x404)][rx(0x848)](console,k);break;case'warn':console[rx(0x637)]['apply'](console,k);break;case'error':console[rx(0x323)][rx(0x848)](console,k);break;}}['shouldLog'](b){const ry=a0cH,c=this[ry(0x671)](b),d=this[ry(0x671)](this['minimumLevel']);return c>=d;}[a0cH(0x671)](b){const rz=a0cH;switch(b){case rz(0x7d1):return 0x0;case rz(0x404):return 0x1;case rz(0x637):return 0x2;case rz(0x323):return 0x3;default:return 0x0;}}[a0cH(0xa97)](b){const rB=a0cH;this[rB(0x95b)]=b;}['setMinimumLevel'](b){this['minimumLevel']=b;}}const Gs=new on(a0cH(0xabd));class W extends Error{constructor(b,c,d){const rC=a0cH;super(b),this['errorType']=c,this[rC(0xab1)]=d,this['name']=rC(0x19d);}}function M(b,c,d){const rD=a0cH;switch(b){case D[rD(0x555)]:Gs['debug'](c,d);break;case D[rD(0x15c)]:Gs['info'](c,d);break;case D[rD(0x2db)]:Gs['warn'](c,d);break;case D[rD(0x8cd)]:Gs['error'](c,d);break;}}class $r{constructor(){const rE=a0cH;C(this,rE(0x61a)),C(this,'cacheName'),C(this,rE(0x6c5)),C(this,rE(0xb74)),C(this,'db',null),C(this,'target'),C(this,rE(0x41e)),C(this,'result',{}),C(this,rE(0x6b8)),C(this,'maxRetryCount',0x3),C(this,'abortController',null),C(this,'_fileSize',0x0);}static[a0cH(0x760)](){const rF=a0cH;try{return/iPad|iPhone|iPod/[rF(0x805)](navigator[rF(0x855)])||navigator['platform']==='MacIntel'&&navigator[rF(0x402)]>0x1;}catch{return!0x1;}}async['getStorageQuota'](){const rG=a0cH;try{if(navigator[rG(0xa69)]&&navigator[rG(0xa69)][rG(0x2e8)]){const b=await navigator['storage']['estimate'](),c=b['usage']||0x0,d=b['quota']||0x0,f=d-c;return{'usage':c,'quota':d,'available':f};}}catch(g){M(D['WARN'],'获取存储配额失败',{'error':g});}return null;}async['getCurrentCacheSize'](){return!this['db']||!this['cacheEnabled']?0x0:new Promise(b=>{const rH=a0b;try{const c=this['db'][rH(0x9bc)](this['tableName'],rH(0xb96))[rH(0x9b2)](this[rH(0x41e)])[rH(0x6e3)]();c['onsuccess']=()=>{const rI=rH,d=(c['result']||[])[rI(0x97f)]((f,g)=>f+(g['size']||0x0),0x0);M(D[rI(0x555)],'当前缓存总大小:\x20'+(d/0x400/0x400)['toFixed'](0x2)+'MB'),b(d);},c[rH(0x6ee)]=()=>{const rJ=rH;M(D['WARN'],rJ(0xb39)),b(0x0);};}catch(d){M(D[rH(0x8cd)],rH(0x453),{'error':d}),b(0x0);}});}async['clearOldCacheUntilSpaceAvailable'](b){if(!(!this['db']||!this['cacheEnabled']))return new Promise(c=>{const rK=a0b;try{const d=this['db']['transaction'](this['tableName'],rK(0xb4b))['objectStore'](this[rK(0x41e)]),f=d['getAll']();f[rK(0xa61)]=()=>{const rL=rK,g=(f['result']||[])['filter'](m=>m['name']!=='__FILE_COUNT')['sort']((m,o)=>m[rL(0x2ec)]-o['lastModified']);let i=0x0,j=0x0;const k=[];for(const m of g){if(i>=b)break;i+=m['size']||0x0,k['push'](m);}if(k[rL(0x576)]===0x0){M(D[rL(0x555)],'无需清理缓存,空间充足'),c();return;}M(D['INFO'],rL(0x3dd)+k['length']+'\x20个旧缓存文件,预计释放\x20'+(i/0x400/0x400)[rL(0x39d)](0x2)+'MB'),k[rL(0x2cd)](o=>{const rM=rL,p=d[rM(0xa16)](o['name']);p['onsuccess']=()=>{const rN=rM;j++,j===k[rN(0x576)]&&(M(D[rN(0x15c)],'成功清理\x20'+j+'\x20个旧缓存文件,释放了\x20'+(i/0x400/0x400)['toFixed'](0x2)+rN(0x549)),c());},p[rM(0x6ee)]=()=>{const rO=rM;j++,j===k[rO(0x576)]&&c();};});},f['onerror']=()=>{const rP=rK;M(D[rP(0x8cd)],rP(0x228)),c();};}catch(g){M(D[rK(0x8cd)],'清理旧缓存异常',{'error':g}),c();}});}['cancel'](){const rQ=a0cH;this[rQ(0x2ad)]&&(this['abortController']['abort'](),M(D['INFO'],rQ(0x4af))),this['closeDB']();}['closeDB'](){const rR=a0cH;this['db']&&(this['db']['close'](),this['db']=null,M(D[rR(0x555)],rR(0x916)));}static['isIndexedDBAvailable'](){const rS=a0cH;try{return typeof indexedDB>'u'?(M(D[rS(0x2db)],'IndexedDB不可用:浏览器不支持IndexedDB'),!0x1):!0x0;}catch(b){return M(D[rS(0x2db)],rS(0x6ad),{'error':b}),!0x1;}}static async['create'](b){const rT=a0cH;try{M(D[rT(0x555)],rT(0xa31),{'target':b['target']});const c=new $r();c['target']=b[rT(0x427)];const d=b[rT(0x61a)]??!0x0;if(d&&!this[rT(0x610)]()?(M(D[rT(0x2db)],'设备不支持IndexedDB,自动禁用缓存功能'),c['cacheEnabled']=!0x1):c['cacheEnabled']=d,c[rT(0x799)]=b['cacheName']??rT(0x285),c['tableName']=b['tableName']??Qa(c[rT(0x427)]),c[rT(0x6b8)]=b[rT(0x6b8)],c['maxRetryCount']=b['maxRetryCount']??0x3,c['cacheExpiry']=b['cacheExpiry']??0x18*0x3c*0x3c*0x3e8,b[rT(0xb74)]!==void 0x0?c['maxCacheSize']=b['maxCacheSize']:c['maxCacheSize']=this['isIOSDevice']()?0x14*0x400*0x400:0x32*0x400*0x400,M(D[rT(0x555)],rT(0x3ac),{'target':c['target'],'cacheEnabled':c[rT(0x61a)],'cacheExpiry':c[rT(0x6c5)],'maxCacheSize':(c[rT(0xb74)]/0x400/0x400)['toFixed'](0x0)+'MB','isIOS':this[rT(0x760)](),'indexedDBAvailable':this['isIndexedDBAvailable']()}),c['cacheEnabled']){M(D['DEBUG'],'初始化数据库');try{if(await c['initDB'](),this[rT(0x760)]()){const f=await c['getStorageQuota']();if(f&&f[rT(0x64e)]>0x0){const g=f['usage']/f['quota']*0x64;g>0x55?(M(D[rT(0x2db)],rT(0x828)+g[rT(0x39d)](0x1)+rT(0xa5e),{'usage':(f['usage']/0x400/0x400)['toFixed'](0x2)+'MB','quota':(f['quota']/0x400/0x400)['toFixed'](0x2)+'MB'}),c['cacheEnabled']=!0x1,c[rT(0x3a0)]()):g>0x46&&M(D['WARN'],'iOS\x20设备存储使用率较高\x20('+g['toFixed'](0x1)+rT(0x4f8),{'usage':(f[rT(0x50b)]/0x400/0x400)[rT(0x39d)](0x2)+'MB','quota':(f[rT(0x64e)]/0x400/0x400)[rT(0x39d)](0x2)+'MB'});}}}catch(h){M(D['WARN'],'数据库初始化失败,自动禁用缓存功能',{'error':h}),c['cacheEnabled']=!0x1,c['db']=null;}}else M(D[rT(0x15c)],rT(0x19f));return M(D['INFO'],rT(0x948),{'cacheEnabled':c[rT(0x61a)]}),c;}catch(i){throw M(D['ERROR'],'创建ZipDownloader实例失败',{'error':i instanceof Error?i['message']:String(i)}),i instanceof W?i:new W(rT(0x5da)+(i instanceof Error?i[rT(0x98d)]:String(i)),'UNKNOWN_ERROR',{'originalError':i});}}async['initDB'](){const rU=a0cH;if(!this['cacheEnabled']){M(D[rU(0x555)],rU(0x665));return;}if(typeof indexedDB>'u'){M(D[rU(0x2db)],'IndexedDB不可用,无法初始化数据库'),this[rU(0x61a)]=!0x1;return;}try{const b=await this['getCurrentDBVersion'](),c=b+0x1;return M(D[rU(0x555)],rU(0xa92)+b+',目标版本:\x20'+c),new Promise((d,f)=>{const rV=rU;try{const g=indexedDB[rV(0x75f)](this[rV(0x799)],c);g[rV(0x48f)]=i=>{const rW=rV;try{const j=i['target']['result'];M(D[rW(0x15c)],'数据库版本升级到:\x20'+j['version']);const k=Array[rW(0xb73)](j[rW(0x78c)])['filter'](m=>m!=='_metadata');if(k[rW(0x576)]>0x6){const m=k[0x0];M(D['WARN'],'缓存表数量超过限制,删除表:\x20'+m),j[rW(0xb5f)](m);}j['objectStoreNames']['contains'](this[rW(0x41e)])||(M(D[rW(0x555)],rW(0xaf2)+this[rW(0x41e)]),j['createObjectStore'](this[rW(0x41e)],{'keyPath':'name'}));}catch(p){M(D['ERROR'],rW(0x303),{'error':p}),f(new W(rW(0x92b)+(p instanceof Error?p['message']:String(p)),rW(0x4c6)));}},g[rV(0xa61)]=h=>{const rX=rV;this['db']=h['target'][rX(0x9c3)],M(D['INFO'],rX(0xa2e)),d();},g['onerror']=h=>{const rY=rV,i=h['target'][rY(0x323)];if(i&&i[rY(0x587)]==='VersionError'){M(D['WARN'],'数据库版本冲突,尝试删除旧数据库'),indexedDB[rY(0x1d1)](this[rY(0x799)]),f(new W('数据库版本冲突',rY(0x74e),{'error':i}));return;}M(D['ERROR'],'初始化IndexedDB失败',{'error':i}),f(new W(rY(0x349)+(i?.['message']||String(i)),rY(0x4c6),{'error':i}));};}catch(h){M(D[rV(0x8cd)],'数据库初始化设置失败',{'error':h}),f(new W('数据库初始化设置失败:\x20'+(h instanceof Error?h['message']:String(h)),'DATABASE_ERROR'));}});}catch(d){M(D[rU(0x8cd)],rU(0x584),{'error':d}),this['cacheEnabled']=!0x1,M(D[rU(0x2db)],'数据库初始化失败,已禁用缓存功能');}}async[a0cH(0x578)](b){const rZ=a0cH;try{if(M(D['DEBUG'],'获取文件数据:\x20'+b),this['result'][b])return M(D[rZ(0x555)],rZ(0xa94)+b),this['result'][b];if(this[rZ(0x61a)])return M(D[rZ(0x555)],'尝试从缓存获取文件:\x20'+b),await this['getFromCache'](b)??void 0x0;M(D[rZ(0x555)],rZ(0x48b)+b);return;}catch(c){M(D[rZ(0x8cd)],'获取文件数据失败:\x20'+b,{'error':c});return;}}['clearResult'](){const s0=a0cH,b=Object['keys'](this['result'])[s0(0x576)];this[s0(0x9c3)]={},M(D[s0(0x15c)],s0(0x23a)+b+s0(0x91b));}async['getCurrentDBVersion'](){const s1=a0cH;return!this[s1(0x61a)]||typeof indexedDB>'u'?0x0:new Promise(b=>{const s2=s1;try{const c=indexedDB[s2(0x75f)](this[s2(0x799)]);c['onsuccess']=d=>{const s3=s2,f=d['target']['result'],g=f[s3(0x9ca)];f[s3(0x73d)](),M(D['DEBUG'],'获取到数据库版本:\x20'+g),b(g);},c[s2(0x6ee)]=d=>{const s4=s2,f=d[s4(0x427)][s4(0x323)];M(D[s4(0x2db)],s4(0x4d6),{'error':f}),b(0x0);};}catch(d){M(D[s2(0x8cd)],s2(0xb32),{'error':d}),b(0x0);}});}async['getFromCache'](b){const s5=a0cH;return!this['db']||!this[s5(0x61a)]?(M(D['DEBUG'],s5(0x210),{'fileName':b,'dbAvailable':!!this['db'],'cacheEnabled':this[s5(0x61a)]}),null):new Promise(c=>{const s6=s5;try{M(D[s6(0x555)],'开始从缓存读取文件:\x20'+b);const d=this['db'][s6(0x9bc)](this['tableName'],'readonly')['objectStore'](this['tableName'])['get'](b);d['onsuccess']=async()=>{const s7=s6,f=d['result'];if(!f){M(D['DEBUG'],'缓存中未找到文件:\x20'+b),c(null);return;}if(Date['now']()-f['lastModified']>this['cacheExpiry']){M(D[s7(0x555)],s7(0x9e7)+b+',将被删除',{'lastModified':new Date(f['lastModified'])['toISOString'](),'expiry':new Date(f['lastModified']+this[s7(0x6c5)])[s7(0x728)]()}),this['deleteFromCache'](b)[s7(0xb17)](g=>{const s8=s7;M(D[s8(0x2db)],s8(0xaa5)+b,{'error':g});}),c(null);return;}M(D['DEBUG'],'成功从缓存读取文件:\x20'+b),c(f['data']);},d['onerror']=f=>{const s9=s6,g=f['target'][s9(0x323)];M(D['ERROR'],s9(0xa3d)+b,{'error':g}),c(null);};}catch(f){M(D['ERROR'],s6(0x3d6)+b,{'error':f}),c(null);}});}async['saveToCache'](b,d){const sb=a0cH;if(!this['cacheEnabled']){M(D[sb(0x555)],'缓存已禁用,无法保存缓存',{'fileName':b});return;}if(!this['db']){M(D['WARN'],'数据库连接未初始化,尝试重新初始化',{'fileName':b});try{if(await this[sb(0x160)](),!this['db']){M(D['WARN'],'数据库重新初始化失败,无法保存缓存',{'fileName':b});return;}}catch(i){M(D['ERROR'],sb(0xbad),{'fileName':b,'error':i});return;}}const f=d['length'],g=await this['getStorageQuota']();g&&g[sb(0xb33)]<f*0x2&&(M(D[sb(0x2db)],'可用存储空间不足\x20('+(g[sb(0xb33)]/0x400/0x400)['toFixed'](0x2)+sb(0x99d)),await this[sb(0x1e6)](),g[sb(0xb33)]<f&&await this['clearOldCacheUntilSpaceAvailable'](f));const h=await this['getCurrentCacheSize']();if(h+f>this['maxCacheSize']){const j=h+f-this['maxCacheSize'];M(D['WARN'],'缓存大小将超过限制\x20(当前:\x20'+(h/0x400/0x400)[sb(0x39d)](0x2)+sb(0x920)+(this[sb(0xb74)]/0x400/0x400)[sb(0x39d)](0x2)+sb(0xaf4)+(j/0x400/0x400)[sb(0x39d)](0x2)+'MB'),await this['clearExpiredCache']();const k=await this[sb(0x69a)]();if(k+f>this['maxCacheSize']){const m=k+f-this['maxCacheSize'];await this[sb(0xa8b)](m);}}return new Promise((p,u)=>{const sj=sb;try{if(!this['db']){M(D[sj(0x2db)],sj(0x327),{'fileName':b}),p();return;}const v=this['db']['transaction'](this['tableName'],sj(0xb4b))[sj(0x9b2)](this[sj(0x41e)]),w={'name':b,'data':d,'lastModified':Date['now'](),'size':f},x=v[sj(0x8ed)](w);x[sj(0xa61)]=()=>{p();},x['onerror']=async y=>{const sk=sj,z=y[sk(0x427)][sk(0x323)];if(M(D[sk(0x8cd)],'缓存保存失败:\x20'+b,{'error':z}),z&&z[sk(0x587)]===sk(0x497)){M(D['WARN'],'缓存空间不足,尝试清理缓存');try{await this[sk(0x1e6)](),await this[sk(0xa8b)](f),M(D['WARN'],sk(0xb9b)),u(new W(sk(0x739),'QUOTA_EXCEEDED',{'fileName':b,'error':z,'fileSize':f}));}catch(B){M(D['ERROR'],'清理缓存失败',{'error':B}),u(new W('缓存空间不足且清理失败',sk(0x962),{'fileName':b,'error':z,'cleanupError':B}));}return;}u(new W('缓存保存失败:\x20'+b,'DATABASE_ERROR',{'fileName':b,'error':z}));};}catch(y){M(D[sj(0x8cd)],sj(0x43d)+b,{'error':y}),u(new W('缓存保存异常:\x20'+b,sj(0x4c6),{'fileName':b,'error':y}));}});}async[a0cH(0x1e6)](){const sm=a0cH;if(!this['db']){M(D[sm(0x555)],sm(0x4fa));return;}return new Promise((b,c)=>{const sp=sm;try{M(D[sp(0x555)],sp(0x51f)+this['tableName']);const d=this['db'][sp(0x9bc)](this['tableName'],sp(0xb4b))[sp(0x9b2)](this['tableName']),f=d['getAll']();f[sp(0xa61)]=()=>{const sq=sp,g=f[sq(0x9c3)],i=Date['now']();let j=0x0,k=0x0;const m=g['filter'](p=>i-p['lastModified']>this[sq(0x6c5)]);if(m[sq(0x576)]===0x0){M(D[sq(0x555)],sq(0xb51)),b();return;}M(D[sq(0x15c)],'发现'+m[sq(0x576)]+'个过期缓存文件需要清理'),m['forEach'](p=>{const sv=sq,v=d[sv(0xa16)](p[sv(0x587)]);k+=p['size'],v['onsuccess']=()=>{const sw=sv;j++,M(D[sw(0x555)],sw(0x802)+p['name']),j===m['length']&&(M(D['INFO'],sw(0x2a6)+j+sw(0x608),{'freedSpace':(k/0x400/0x400)[sw(0x39d)](0x2)+'MB'}),b());},v[sv(0x6ee)]=w=>{const sx=sv,x=w[sx(0x427)][sx(0x323)];M(D['ERROR'],sx(0xaa5)+p['name'],{'error':x}),j++,j===m['length']&&b();};});},f['onerror']=g=>{const sy=sp,h=g['target'][sy(0x323)];M(D[sy(0x8cd)],sy(0x970),{'error':h}),c(new W(sy(0x970),sy(0x4c6),{'error':h}));};}catch(g){M(D[sp(0x8cd)],sp(0x2ee),{'error':g}),c(new W('清理过期缓存异常','DATABASE_ERROR',{'error':g}));}});}async['getStoreCount'](){const sD=a0cH;return this['db']?new Promise(b=>{const sz=a0b;try{const c=this['db'][sz(0x9bc)](this['tableName'],'readonly')['objectStore'](this[sz(0x41e)])['count']();c[sz(0xa61)]=()=>{const sB=sz,d=c[sB(0x9c3)];M(D[sB(0x555)],'获取到缓存文件数量:\x20'+d),b(d);},c['onerror']=d=>{const sC=sz,f=d[sC(0x427)]['error'];M(D[sC(0x8cd)],'获取缓存计数失败',{'error':f}),b(0x0);};}catch(d){M(D[sz(0x8cd)],'获取缓存数量异常',{'error':d}),b(0x0);}}):(M(D['DEBUG'],sD(0xa8d)),0x0);}async[a0cH(0x287)](b=[],d){const sE=a0cH;let f=0x0;for(;f<=this[sE(0x513)];)try{if(M(D[sE(0x15c)],'开始下载和解压'+(f>0x0?sE(0x4bf)+f+'/'+this['maxRetryCount']+')':''),{'target':this['target'],'fileCount':b['length']||'全部','cacheEnabled':this[sE(0x61a)]}),this['abortController']=new AbortController(),this['cacheEnabled']&&(M(D['DEBUG'],sE(0x3e7)),await this[sE(0x257)]())){M(D['DEBUG'],'缓存有效,尝试从缓存加载文件');const i={};let j=!0x0;if(b['length']>0x0)for(const k of b){const m=await this[sE(0x5eb)](k);if(m)i[k]=m;else{j=!0x1,M(D[sE(0x555)],sE(0x83b)+k);break;}}else{const p=await this['getCachedFileNames']();for(const u of p)if(u!==sE(0x983)){const v=await this['getFromCache'](u);v&&(i[u]=v);}j=Object[sE(0x762)](i)[sE(0x576)]>0x0;}if(j)return M(D['INFO'],sE(0x6f1)+Object['keys'](i)['length']+sE(0x7da)),this[sE(0x9c3)]=i,d?.(0x64),this['progress']?.({'message':sE(0x774),'percentage':0x64,'step':sE(0x51a)}),i;}M(D[sE(0x555)],sE(0x7a9));const g=await this['downloadZipFile']((w,x,y)=>{const sF=sE;this['progress']?.({'message':'download','percentage':w,'downloadSpeed':x,'timeRemaining':y,'step':sF(0x68d)});});return M(D[sE(0x15c)],sE(0x923)),await this['extractFromZip'](g,b,w=>{const sG=sE;this['progress']?.({'message':'unzip','percentage':w,'filesize':g[sG(0x576)],'step':sG(0x94f)});}),M(D[sE(0x15c)],'成功下载并解压,共'+Object['keys'](this[sE(0x9c3)])[sE(0x576)]+'个文件'),d?.(0x64),this[sE(0x9c3)];}catch(w){if(this['abortController']?.['signal'][sE(0x84f)])throw M(D['INFO'],'下载解压过程已被用户取消'),new W('操作已取消',sE(0x150));if(M(D['ERROR'],'下载解压过程失败'+(f>0x0?sE(0x4bf)+f+'/'+this['maxRetryCount']+')':''),{'error':w}),f++,f<=this[sE(0x513)]){const x=Math['min'](0x3e8*Math[sE(0x8c4)](0x2,f-0x1),0x2710);M(D['INFO'],'将在'+x+'ms后重试...'),await new Promise(y=>setTimeout(y,x));continue;}throw w instanceof W?w:new W('下载解压失败:\x20'+(w instanceof Error?w[sE(0x98d)]:String(w)),sE(0x150),{'originalError':w});}finally{this['abortController']=null;}throw new W(sE(0x7c6),sE(0x150));}async[a0cH(0x32a)](i){const sH=a0cH,j=Date[sH(0x371)]();let k=j,v=0x0,z=0x0,F=0x0;const H=[];try{M(D['DEBUG'],sH(0x586),{'url':this['target']});const L=await fetch(this[sH(0x427)],{'method':'GET','headers':{'Accept':'application/zip,\x20application/octet-stream'},'signal':this['abortController']?.[sH(0xa3b)],...!this['abortController']&&{'signal':AbortSignal[sH(0xa0d)](0xea60)}});if(!L['ok']){const a0='下载失败:\x20'+L['status']+'\x20'+L['statusText'];throw M(D[sH(0x8cd)],a0,{'status':L[sH(0x741)],'statusText':L['statusText']}),new W(a0,sH(0x5a0),{'status':L['status'],'statusText':L[sH(0x96f)]});}F=Number(L[sH(0x22d)]['get']('content-length'))||0x0,M(D['INFO'],sH(0x56a),{'contentLength':F?(F/0x400/0x400)['toFixed'](0x2)+'MB':'未知大小'});const N=L['body']?.[sH(0xb54)]();if(!N)throw M(D[sH(0x8cd)],'无法获取响应读取器'),new W(sH(0x659),'NETWORK_ERROR');for(;;){if(this[sH(0x2ad)]?.['signal']['aborted'])throw new W('下载已取消',sH(0x150));const {done:a1,value:a2}=await N[sH(0x274)]();if(a1)break;if(a2&&(H[sH(0x50e)](a2),z+=a2['length'],F>0x0&&i)){const a3=Date[sH(0x371)](),a4=(a3-k)/0x3e8;if(a4>0.3||z===F){const a5=parseFloat((z/F*0x64)[sH(0x39d)](0x2)),a6=z-v,a7=a4>0x0?Math[sH(0xa2a)](a6/0x400/a4):0x0,a8=F-z,a9=a7>0x0?Math[sH(0xa2a)](a8/(a7*0x400)):0x0;requestAnimationFrame(()=>{i(a5,a7,a9);}),k=a3,v=z;}}}const R=new Uint8Array(z);let S=0x0;for(const ab of H)R[sH(0x46c)](ab,S),S+=ab['length'];const T=(Date[sH(0x371)]()-j)/0x3e8,U=(z/0x400/0x400)['toFixed'](0x2);return this['_fileSize']=z,M(D['INFO'],'下载完成',{'totalSize':U+'MB','duration':T[sH(0x39d)](0x2)+'秒','averageSpeed':Math['round'](z/0x400/T)+'\x20KB/s'}),i?.(0x64,0x0,0x0),R;}catch(aj){throw aj instanceof Error&&aj[sH(0x587)]==='AbortError'?(M(D['WARN'],'下载超时或被中止'),new W(sH(0x8c2),sH(0x906))):(M(D['ERROR'],'下载ZIP文件失败',{'error':aj,'downloadedSize':(z/0x400/0x400)[sH(0x39d)](0x2)+'MB','totalSize':F?(F/0x400/0x400)['toFixed'](0x2)+'MB':'未知','progress':F?(z/F*0x64)[sH(0x39d)](0x2)+'%':'未知'}),new W(sH(0x31f)+(aj instanceof Error?aj['message']:String(aj)),'NETWORK_ERROR',{'error':aj,'downloadedSize':z,'totalSize':F}));}}async['checkCacheValidity'](){const sI=a0cH;if(!this['cacheEnabled']||!this['db'])return M(D[sI(0x555)],'缓存已禁用或数据库未初始化,缓存无效'),!0x1;try{if(!this['db']?.['objectStoreNames'][sI(0x5df)](this['tableName']))return M(D[sI(0x555)],'缓存表不存在:\x20'+this['tableName']),!0x1;const [b,c]=await Promise[sI(0xa5a)]([this[sI(0x3af)](),this['getFromCache']('__FILE_COUNT')]);M(D['DEBUG'],'缓存有效性检查',{'storeCount':b,'hasFieldCount':c!=null});const d=b>0x0&&c!==void 0x0&&c!==null&&Number(c)+0x1<=b;return d||M(D['WARN'],sI(0x9ab),{'storeCount':b,'fieldCount':c}),d;}catch(f){return M(D['ERROR'],sI(0x498),{'error':f}),!0x1;}}get['fileSize'](){return this['_fileSize'];}async[a0cH(0x9ba)](b,c=[],d){const sJ=a0cH;return this[sJ(0x4e8)]=b['length'],new Promise((i,j)=>{const sK=sJ;try{M(D['DEBUG'],'初始化解压器',{'zipSize':(b[sK(0x576)]/0x400/0x400)['toFixed'](0x2)+'MB','fileCount':c['length']||'全部'});const k=new Ru({'chunkSize':0x10000,'consume':!0x0});k[sK(0x8b6)](Lu);let m=0x0,v=0x0,w=0x0,x=0x0,y=Date['now'](),z=y,B=0x0;const E=c[sK(0x576)]===0x0;this[sK(0x9c3)]={};const F=new Set(c);k[sK(0x8d9)]=H=>{const sL=sK;if(E||F[sL(0x2ce)](H['name'])){m++,v++,M(D['DEBUG'],'开始提取文件:\x20'+H[sL(0x587)]);const L=[];let N=0x0;H[sL(0x91a)]=(U,a0,a1)=>{const sM=sL;if(this[sM(0x2ad)]?.['signal']['aborted']){M(D[sM(0x15c)],'解压过程已被取消'),j(new W('解压已取消',sM(0x150)));return;}if(U){M(D['ERROR'],sM(0x797)+H[sM(0x587)],{'error':U}),j(new W(sM(0x9fb)+H['name']+'\x20-\x20'+U['message'],'ZIP_DECOMPRESS_ERROR',{'fileName':H['name'],'error':U}));return;}if(a0){L['push'](a0),N+=a0['length'],x+=a0['length'];const a2=Date[sM(0x371)](),a3=(a2-z)/0x3e8;if(a3>0.5||a1){const a4=x-B,a5=a3>0x0?Math['round'](a4/0x400/a3):0x0,a6=b[sM(0x576)]-x,a7=a5>0x0?Math[sM(0xa2a)](a6/(a5*0x400)):0x0;if(d){const a8=v>0x0?Math[sM(0xa2a)](w/v*0x64):0x0;requestAnimationFrame(()=>{d(a8,H['name'],a5,a7);});}z=a2,B=x;}}if(a1)try{const a9=new Uint8Array(N);let ab=0x0;for(const aj of L)a9['set'](aj,ab),ab+=aj['length'];if(this['result'][H['name']]=a9,w++,m--,M(D[sM(0x555)],'文件提取完成:\x20'+H['name']+'\x20('+(N/0x400)['toFixed'](0x2)+'KB)'),this[sM(0x61a)]&&queueMicrotask(()=>{const sN=sM;this[sN(0x5ad)](H[sN(0x587)],a9)[sN(0xb17)](ak=>{const sO=sN;M(D[sO(0x2db)],sO(0x53d)+H['name'],{'error':ak});});}),m===0x0){const ak=(Date['now']()-y)/0x3e8;M(D['INFO'],'解压完成',{'fileCount':w,'duration':ak['toFixed'](0x2)+'秒','averageSpeed':Math['round'](x/0x400/ak)+sM(0x3a2)}),this[sM(0x61a)]&&v>0x0&&this[sM(0x5ad)]('__FILE_COUNT',new Uint8Array([v]))['catch'](am=>{const sP=sM;M(D['WARN'],sP(0xa29),{'error':am});}),i(this[sM(0x9c3)]);}}catch(am){M(D['ERROR'],sM(0x2d3)+H['name'],{'error':am}),j(new W('文件合并失败:\x20'+H[sM(0x587)],'FILE_ERROR',{'fileName':H['name'],'error':am}));}},H[sL(0x8ec)]();}},k['onerror']=H=>{const sQ=sK;M(D['ERROR'],'ZIP解压错误',{'error':H}),j(new W('ZIP解压失败:\x20'+H[sQ(0x98d)],'ZIP_DECOMPRESS_ERROR',{'error':H}));},k['push'](b,!0x0);}catch(H){M(D['ERROR'],sK(0x318),{'error':H}),j(new W('解压初始化失败:\x20'+(H instanceof Error?H[sK(0x98d)]:String(H)),'ZIP_DECOMPRESS_ERROR',{'error':H}));}});}async['getCachedFileNames'](){const sR=a0cH;return!this['db']||!this[sR(0x61a)]?(M(D['DEBUG'],sR(0x8ff),{'dbAvailable':!!this['db'],'cacheEnabled':this['cacheEnabled']}),[]):new Promise(b=>{const sS=sR;try{M(D['DEBUG'],sS(0x32d)+this['tableName']);const c=this['db'][sS(0x9bc)](this['tableName'],'readonly')[sS(0x9b2)](this['tableName'])[sS(0x3ee)]();c[sS(0xa61)]=()=>{const sT=sS,d=c['result'][sT(0x781)](f=>f!==sT(0x983));M(D[sT(0x555)],sT(0x202)+d[sT(0x576)]+'个文件名'),b(d);},c['onerror']=d=>{const sU=sS,f=d['target']['error'];M(D[sU(0x8cd)],'获取缓存文件名失败',{'error':f}),b([]);};}catch(d){M(D['ERROR'],'获取缓存文件名异常',{'error':d}),b([]);}});}async[a0cH(0x6cf)](b){const sV=a0cH;if(!this['db']||!this['cacheEnabled']){M(D[sV(0x555)],'缓存不可用,无法删除文件',{'fileName':b,'dbAvailable':!!this['db'],'cacheEnabled':this['cacheEnabled']});return;}return new Promise(c=>{const sW=sV;try{M(D['DEBUG'],'开始从缓存删除文件:\x20'+b);const d=this['db'][sW(0x9bc)](this[sW(0x41e)],'readwrite')[sW(0x9b2)](this[sW(0x41e)])['delete'](b);d['onsuccess']=()=>{const sX=sW;M(D[sX(0x555)],sX(0xb92)+b),c();},d['onerror']=f=>{const sY=sW,g=f[sY(0x427)][sY(0x323)];M(D[sY(0x8cd)],sY(0x6c8)+b,{'error':g}),c();};}catch(f){M(D['ERROR'],'删除缓存异常:\x20'+b,{'error':f}),c();}});}async['clearCache'](){const sZ=a0cH;if(!this[sZ(0x61a)]){M(D['DEBUG'],sZ(0x92c));return;}if(typeof indexedDB>'u'){M(D['WARN'],'IndexedDB不可用,无法清空缓存');return;}try{if(!this['db']&&(M(D[sZ(0x555)],sZ(0x1be)),await this['initDB'](),!this['db'])){M(D[sZ(0x555)],sZ(0x3fd));return;}return new Promise((b,c)=>{const t0=sZ;try{M(D['INFO'],'开始清空缓存表:\x20'+this['tableName']);const d=this['db'][t0(0x9bc)](this[t0(0x41e)],'readwrite')[t0(0x9b2)](this['tableName'])['clear']();d['onsuccess']=()=>{const t1=t0;M(D[t1(0x15c)],t1(0x995)+this['tableName']+']\x20已成功清空'),b();},d['onerror']=f=>{const t2=t0,g=f['target'][t2(0x323)];M(D['ERROR'],t2(0x751),{'error':g}),c(new W('清空缓存失败',t2(0x4c6),{'error':g,'tableName':this[t2(0x41e)]}));};}catch(f){M(D[t0(0x8cd)],'清空缓存异常',{'error':f}),c(new W(t0(0x74c),'DATABASE_ERROR',{'error':f}));}});}catch(b){throw M(D['ERROR'],'清除缓存过程出错',{'error':b}),new W(sZ(0xa38),sZ(0x4c6),{'error':b});}}}const Fu=a0cH(0x4cb),P=new on(a0cH(0x4db));class Ou{constructor(b){const t3=a0cH;C(this,'options'),C(this,'MANAGER',new a0bj()),C(this,'DRACO_LOADER'),C(this,'loadStartTime',0x0),C(this,'zipDownloader'),C(this,'errors',[]),C(this,t3(0x98f),{'totalTime':0x0,'downloadTime':0x0,'unzipTime':0x0,'LODFactor':0xf}),C(this,'GLTFLoader'),C(this,'modelInfo'),C(this,t3(0x356)),C(this,t3(0x7cf)),C(this,'edgeData'),C(this,'bounds',{'center':new a0c(),'width':0x0,'height':0x0,'depth':0x0,'diagonal':0x64}),C(this,'target'),C(this,'viewer'),C(this,t3(0xacd)),C(this,'proxyModel',[]),C(this,t3(0x308),[]),C(this,t3(0x4a2)),C(this,t3(0xaf0)),C(this,'materialCache',new Map()),C(this,'isMobile',sn()),(this[t3(0x651)]=b,this['content']=b['content'],this[t3(0xa3c)]=b['options'],P[t3(0x404)]('初始化ModelLoader'),P[t3(0x7d1)](t3(0x6bd),{'dracoUrl':this['options'][t3(0x756)][t3(0x329)],'ktx2Url':this['options'][t3(0x6c0)][t3(0x329)],'useProxy':this[t3(0xa3c)]['load']['proxy']['enabled']}),this[t3(0x616)]=new xh(this['MANAGER'])['setDecoderPath'](this['options']['draco']['url']),this[t3(0x7cf)]=new Fe(this[t3(0x15e)])[t3(0xb4f)](this['options']['ktx2'][t3(0x329)]),this[t3(0x15e)][t3(0x544)]=(c,d,f)=>{},this[t3(0x15e)][t3(0x932)]=c=>{P['warn']('加载警告',{'error':c});},this[t3(0x98b)]=new kd(this['MANAGER'])['setDRACOLoader'](this['DRACO_LOADER'])['setKTX2Loader'](this['KTX2_LOADER'])[t3(0x4f1)](Rd),P['info']('ModelLoader初始化完成'));}get[a0cH(0xb82)](){const t4=a0cH;return this[t4(0x309)]['fileSize'];}['calculateLODFarDistanceMultiplier'](){const t5=a0cH,b=this[t5(0xb82)]/0x100000;let c;return b<0xf?c=0x14:b>0x64?c=0x5:c=0x14-0xf*((b-0xf)/0x55),c;}async['load'](b,d){const t6=a0cH;P[t6(0x404)]('开始加载模型',{'target':b}),this[t6(0x4de)]=Date['now'](),this['target']=b,P[t6(0x7d1)]('初始化ZipDownloader',{'target':b,'cacheEnabled':this[t6(0xa3c)][t6(0x774)]['cache'][t6(0x95b)]});const f=await $r[t6(0x7db)]({'target':b,'cacheEnabled':this[t6(0xa3c)][t6(0x774)]['cache']['enabled'],'progress':d});await f['downloadAndExtract'](),this['times']['downloadTime']=Date[t6(0x371)]()-this[t6(0x4de)],P[t6(0x404)]('开始读取模型信息文件');const g=await f['getValue'](t6(0x4e1));g||(P['error'](t6(0x66b)),f[t6(0x3a0)](),await Sa(),location['reload']()),this['modelInfo']=JSON[t6(0x20f)](new TextDecoder()[t6(0x8e1)](g));const {version:i,layers:j,pages:k,model:{bounds:m}}=this['modelInfo'];P[t6(0x404)](t6(0xa37),{'version':i,'layersCount':j?.[t6(0x576)]||0x0,'pagesCount':k?.[t6(0x576)]||0x0,'bounds':{'width':m[t6(0x69c)],'height':m[t6(0x75a)],'depth':m[t6(0x73a)]}}),this['exportVersion']=i,this[t6(0x831)][t6(0x231)]=rc(m[t6(0x231)],this[t6(0x356)],br),P[t6(0x7d1)](br(this[t6(0x356)]||t6(0x31c),t6(0x826))?t6(0x5ef):t6(0x3a5)),d({'message':'PARSE_MODEL_INFO','percentage':0x64,'data':{'pages':k,'layers':j}}),this['zipDownloader']=f,P[t6(0x404)]('开始加载模型数据');const p=[this['loadMainModel'](u=>{const t7=t6;P['debug']('模型加载进度',{'percentage':u['toFixed'](0x2)}),d({'message':t7(0x6ba),'percentage':u['toFixed'](0x2)});})];return P['info'](t6(0x561)),p[t6(0x50e)](this[t6(0x70a)]()[t6(0xb17)](u=>(P['error'](t6(0x650),{'error':u}),!0x1))),P[t6(0x404)]('开始加载环境贴图'),p[t6(0x50e)](new Promise((v,w)=>{const t8=t6,x=new a0bk(),y=this['options']['render'][t8(0xaf0)]||{},z=y[t8(0x95b)]!==!0x1,B=y[t8(0xa88)]||t8(0xa25),F=y['files']||{},H=[''+B+(F['px']||'px.png'),''+B+(F['nx']||t8(0xba9)),''+B+(F['py']||t8(0x7fc)),''+B+(F['ny']||'ny.png'),''+B+(F['pz']||'pz.png'),''+B+(F['nz']||'nz.png')];z?this[t8(0xaf0)]=x['load'](H,()=>{const t9=t8;P[t9(0x404)](t9(0xb12)),v();},void 0x0,L=>{const tb=t8;P['warn']('环境贴图加载失败',{'error':L}),L instanceof ErrorEvent&&L[tb(0x98d)]&&P[tb(0x323)]('环境贴图加载具体错误',{'errorMessage':L[tb(0x98d)]}),v();}):(P[t8(0x404)]('环境贴图已禁用'),this[t8(0xaf0)]=null,v());})),Promise[t6(0xa5a)](p)['then'](()=>{const tj=t6;P[tj(0x404)]('开始优化模型内存使用',{'isMobile':this[tj(0x9fa)]}),this['optimizeModelMemory'](this['content']),this[tj(0x4a2)]['traverse'](u=>{const tk=tj;u['isMesh']&&u['geometry'][tk(0x204)]();}),this['loadTextAnnotations'](),this['loadDimensionAnnotations'](),this['zipDownloader'][tj(0x3a0)](),this[tj(0x98f)][tj(0x4ac)]=Date['now']()-this[tj(0x4de)],P['info'](tj(0x59a),{'totalTime':this[tj(0x98f)]['totalTime']+'ms','downloadTime':this['times']['downloadTime']+'ms','unzipTime':this[tj(0x98f)]['unzipTime']+'ms','errorCount':this['errors']['length']});});}async[a0cH(0x748)](b){const tm=a0cH;try{P['info']('从\x20URL\x20下载边线数据',{'url':b});const c=await fetch(b);if(!c['ok']){P[tm(0x637)]('边线数据下载失败',{'url':b,'status':c['status'],'statusText':c['statusText']});return;}const d=await c['arrayBuffer'](),f=new Uint8Array(d);return P[tm(0x404)](tm(0x6c6),{'url':b,'size':f['length']}),f;}catch(g){P['warn'](tm(0x2b6),{'url':b,'error':g});return;}}async[a0cH(0x70a)](){const tp=a0cH;P[tp(0x404)]('开始解析边线数据');let b;const c=this['options']['load']['edge']?.[tp(0x329)];if(c&&c[tp(0x7e5)]()&&(P[tp(0x404)]('尝试从配置的\x20URL\x20加载边线数据',{'url':c}),b=await this[tp(0x748)](c),b||P['warn']('从\x20URL\x20加载边线数据失败,尝试从\x20zip\x20文件获取')),b||(P[tp(0x7d1)](tp(0x1e5)),b=await this[tp(0x309)][tp(0x578)]('edge')),!b||b['length']===0x0)return P[tp(0x637)]('未找到边线数据或边线数据为空'),!0x1;let d,f=null;try{{const g=new Blob([Fu],{'type':'application/javascript'}),h=URL[tp(0x2de)](g);d=h,f=h;}return await new Promise((i,j)=>{const tx=tp,k=new Worker(d);let m=!0x1;const p=()=>{f&&(URL['revokeObjectURL'](f),f=null),k&&k['terminate']();},u=setTimeout(()=>{const tq=a0b;if(!m){m=!0x0,p();const v=new Error(tq(0x334));P['error'](tq(0x334)),j(v);}},0x186a0);k['onmessage']=v=>{const tv=a0b,{type:w,data:x,error:y,percentage:z,stage:B}=v[tv(0x1a4)]||{};if(w){switch(w){case tv(0x8f9):if(m)return;m=!0x0,clearTimeout(u);try{P[tv(0x404)]('边线数据解析完成'),this[tv(0x651)]['edgeData']=x;const {positions:F,visibility:H}=x;P['debug'](tv(0xb2c),{'positionsCount':F?.['length']||0x0,'visibilityCount':H?.['length']||0x0}),this['viewer'][tv(0x925)]['generateEdge'](F,H),p(),i(!0x0);}catch(L){P[tv(0x323)](tv(0x3fa),{'error':L}),p(),j(new Error('边线数据处理失败:\x20'+(L instanceof Error?L[tv(0x98d)]:String(L))));}break;case'progress':P[tv(0x7d1)](tv(0xa63),{'percentage':z,'stage':B,'processed':v[tv(0x1a4)][tv(0x407)],'total':v['data']['total']});break;case'error':if(m)return;m=!0x0,clearTimeout(u),p(),P['error']('边线解析工作线程错误',{'error':y||tv(0x7bc),'context':v[tv(0x1a4)]['context']}),j(new Error(tv(0x14c)+(y||tv(0x7bc))));break;case tv(0x27d):break;default:P['warn'](tv(0x452),{'type':w,'data':v[tv(0x1a4)]});}return;}if(v['data']&&v['data']['positions']&&v['data']['visibility']){if(m)return;m=!0x0,clearTimeout(u);try{P[tv(0x404)](tv(0x24a)),this[tv(0x651)][tv(0xa1f)]=v[tv(0x1a4)];const {positions:N,visibility:R}=v['data'];P['debug'](tv(0xb2c),{'positionsCount':N?.['length']||0x0,'visibilityCount':R?.['length']||0x0}),this[tv(0x651)][tv(0x925)]['generateEdge'](N,R),p(),i(!0x0);}catch(S){P[tv(0x323)]('边线数据处理失败',{'error':S}),p(),j(new Error('边线数据处理失败:\x20'+(S instanceof Error?S[tv(0x98d)]:String(S))));}return;}if(!w&&v['data']&&!m){m=!0x0,clearTimeout(u);try{this['viewer'][tv(0xa1f)]=v['data'];const {positions:T,visibility:U}=v[tv(0x1a4)]||{};if(T&&U)this[tv(0x651)]['styleManager'][tv(0xb09)](T,U),P[tv(0x404)](tv(0x972)),p(),i(!0x0);else throw new Error(tv(0x76c));}catch(a0){P[tv(0x323)](tv(0x3fa),{'error':a0}),p(),j(new Error(tv(0x2e7)+(a0 instanceof Error?a0[tv(0x98d)]:String(a0))));}}},k['onerror']=v=>{const tw=a0b;if(m)return;m=!0x0,clearTimeout(u),p();const w=tw(0x14c)+(v instanceof Error?v[tw(0x98d)]:String(v));P['error']('Worker\x20错误',{'error':w}),j(new Error(w));};try{k[tx(0x19e)]({'buffer':b[tx(0x67a)]},[b[tx(0x67a)]]);}catch(v){m||(m=!0x0,clearTimeout(u),p(),P['error'](tx(0x973),{'error':v}),j(new Error('发送数据到\x20Worker\x20失败:\x20'+(v instanceof Error?v['message']:String(v)))));}});}catch(i){return P['error']('创建\x20Worker\x20失败',{'error':i}),!0x1;}}[a0cH(0x7f3)](b){const ty=a0cH;P[ty(0x404)](ty(0x588));let c=0x0,d=0x0;const f=()=>{},g=[];return Object['entries'](this[ty(0x6db)]['model'][ty(0x956)])[ty(0x2cd)](([h,i])=>{const tz=ty;i[tz(0x2cd)](j=>{g['push'](new Promise(async k=>{const tB=a0b;P[tB(0x7d1)](tB(0x170),{'filename':j['filename']});let m=await this[tB(0x309)]['getValue'](j[tB(0xaa6)]);if(!m){const p=tB(0x28e)+j['filename']+'\x20not\x20found\x20in\x20dgz\x20file';this['errors']['push']({'msg':p}),P[tB(0x637)]('加载错误',{'error':p}),k();return;}try{this[tB(0x98b)][tB(0x20f)](m[tB(0x67a)],'',u=>{const tC=tB,z=u[tC(0x770)][tC(0x330)][0x0];if(z){if(h===tC(0x7a5)&&(j['instances']==null||j[tC(0x2b1)]['length']===0x0)){P['info']('处理单一小模型',{'filename':j[tC(0xaa6)]});const F=oc(z);P[tC(0x7d1)](tC(0x3ff),{'originalCenter':{'x':F['x'],'y':F['y'],'z':F['z']}});const H=this[tC(0xb82)]/(0x400*0x400);if(P['debug']('模型文件大小检查',{'filename':j[tC(0xaa6)],'fileSize':this[tC(0xb82)],'fileSizeInMB':H['toFixed'](0x2)}),H<0xf)P[tC(0x404)]('文件大小\x20<\x2015MB,直接添加原始模型',{'filename':j['filename'],'fileSizeInMB':H['toFixed'](0x2)}),z[tC(0x3e0)][tC(0x46c)](F['x'],F['y'],F['z']),z['name']=j['filename'],this[tC(0x4a2)]['add'](z);else{P[tC(0x404)]('文件大小\x20>=\x2015MB,生成线框模型并使用LOD',{'filename':j['filename'],'fileSizeInMB':H['toFixed'](0x2)});const L=nc(z),N=new a0h()['setFromObject'](z),R=new a0c();N['getSize'](R);const S=Math['max'](R['x'],R['y'],R['z']),T=this['calculateLODFarDistanceMultiplier'](),U=this[tC(0x9fa)]?0.7:0x1,a0=S*1.5*U,a1=S*T*U,a2=new a0av();a2[tC(0xa9e)](z,a0),a2[tC(0x47e)]=z?.[tC(0x330)][0x0]?.[tC(0x47e)],L[tC(0x47e)]=z?.['children'][0x0]?.[tC(0x47e)],a2[tC(0x3e0)]['set'](F['x'],F['y'],F['z']),a2[tC(0x587)]=j['filename'],this[tC(0x4a2)][tC(0x644)](a2);}}else j[tC(0x3e0)]?(P[tC(0x404)](tC(0x70c),{'filename':j['filename']}),this['handleMatrixByPosition'](z,j)):j['instances']?(P['info']('使用实例化网格处理模型',{'filename':j['filename'],'instanceCount':j['instances']['length']}),this[tC(0x517)](z,j)):(P['info'](tC(0x86e),{'filename':j[tC(0xaa6)]}),z[tC(0x587)]=j[tC(0xaa6)],this['content']['add'](z));}else P[tC(0x637)](tC(0x246),{'filename':j[tC(0xaa6)]});d++,f(),k();},u=>{const tD=tB;console[tD(0x323)](u),P[tD(0x323)](tD(0x14a),{'key':h,'filename':j[tD(0xaa6)],'error':u}),this['errors'][tD(0x50e)]({'msg':'解析错误:\x20'+j[tD(0xaa6)]+'\x20-\x20'+(u instanceof Error?u['message']:String(u))}),d++,f(),k(u);});}catch(u){P['warn'](tB(0x383),{'key':h,'filename':j['filename'],'error':u}),d++,k(u);}}));});}),P['info']('等待所有模型文件加载完成',{'totalModels':c}),Promise['all'](g);}['handleMatrixByInstance'](b,c){const tE=a0cH;P['info']('开始处理实例化矩阵',{'instanceCount':c['instances'][tE(0x576)]});const d=Za(c[tE(0x2b1)]);P['debug'](tE(0x3f7),{'groupCount':d[tE(0x576)]}),d['forEach']((f,g)=>{const tF=tE;P['debug']('处理实例化分组\x20'+(g+0x1)+'/'+d[tF(0x576)],{'instanceCount':f[tF(0x576)],'hasNegativeScale':!!f[0x0][tF(0x37f)]});const {hasNegativeScale:h,scaleSign:i,layers:j}=f[0x0];b[tF(0x730)](k=>{const tG=tF;if(!k[tG(0x2dc)])return;P[tG(0x7d1)](tG(0x603),{'meshName':k['name']}),h&&(P['debug'](tG(0x51b),{'scaleSign':i}),k=k[tG(0x8e8)](),$a(k,[i['x'],i['y'],i['z']])),P[tG(0x404)](tG(0x72c)+f[tG(0x576)]+tG(0xb26),{'meshName':k['name']});const m=new a0aw(k[tG(0x45e)],k[tG(0xb87)],f['length']);m['userData']={'instanceLayers':new Array(f[tG(0x576)]),'originalTransforms':new Array(f[tG(0x576)])},m['name']=k['name'];const p=new a0m();f['forEach']((v,w)=>{const tH=tG,{scale:x,position:y,quaternion:z}=jr(v['transform']),B=new a0c(Math['abs'](x['x']),Math['abs'](x['y']),Math['abs'](x['z']));m['userData'][tH(0x3fc)][w]={'position':new a0c()[tH(0x195)](y),'quaternion':new a0au()[tH(0x195)](z),'scale':new a0c()[tH(0x195)](B)};const F=new a0m()['compose'](y,z,B);m['setMatrixAt'](w,F),m['userData']['instanceLayers'][w]=v['layers'];}),m[tG(0x9a4)][tG(0x5f7)]=!0x0,m[tG(0x211)]=function(v,w){const tI=tG;for(let x=0x0;x<this[tI(0xa6a)];x++)if((this['userData']['instanceLayers'][x]||[])[tI(0x36a)](v)){const y=this[tI(0x47e)][tI(0x3fc)][x],z=w?y[tI(0x49b)]:new a0c(0x0,0x0,0x0);p['compose'](y[tI(0x3e0)],y[tI(0x58f)],z),this['setMatrixAt'](x,p);}this['instanceMatrix'][tI(0x5f7)]=!0x0;},m[tG(0x6ac)]=function(){const tJ=tG;for(let v=0x0;v<this[tJ(0xa6a)];v++){const w=this['userData']['originalTransforms'][v];if(!w){console[tJ(0x637)](tJ(0x478)+v+'\x20缺少原始变换数据');continue;}p['compose'](w[tJ(0x3e0)],w['quaternion'],w['scale']),this[tJ(0x53e)](v,p);}this[tJ(0x9a4)][tJ(0x5f7)]=!0x0;},P[tG(0x7d1)]('添加实例化网格到场景',{'meshName':k[tG(0x587)]}),this['content']['add'](m);});});}['handleMatrixByPosition'](b,c){const tK=a0cH;P['info']('开始处理位置矩阵',{'positionCount':c['position']['length']});const d=c[tK(0x3e0)][0x0];P['debug']('生成主模型LOD',{'position':d});const f=this[tK(0x60f)](b,new a0c(d[0x0],d[0x2],-d[0x1]));P[tK(0x7d1)]('添加主模型到场景'),this[tK(0x4a2)]['add'](f),P['debug']('处理'+(c['position'][tK(0x576)]-0x1)+'个额外位置的模型实例'),c[tK(0x3e0)]['forEach']((g,h)=>{const tL=tK;if(h>0x0){if(c['scale']){const j=c['scale'][h];b['scale'][tL(0x46c)](j[0x0],j[0x2],j[0x1]),P[tL(0x7d1)](tL(0x37d)+h,{'scale':j});}P[tL(0x7d1)](tL(0x6e9)+h+'的LOD',{'position':g});const i=this[tL(0x60f)](b,new a0c(g[0x0],g[0x2],-g[0x1]));this['content'][tL(0x644)](i),P[tL(0x7d1)](tL(0x158)+h+'到场景');}});}[a0cH(0x60f)](b,f=null){const tM=a0cH;P[tM(0x7d1)](tM(0x248),{'originalName':b[tM(0x587)]}),b=b[tM(0x8e8)]();const {userData:g,name:i}=b,j=new a0h()['setFromObject'](b),k=j['getSize'](new a0c()),m=Math['max'](k['x'],k['y'],k['z']);P['debug']('计算LOD边界盒',{'width':k['x'],'height':k['y'],'depth':k['z'],'maxSize':m});let p=new a0c();f?p=f:g[tM(0xab0)]&&(p=new a0c(g[tM(0xab0)][0x0],g[tM(0xab0)][0x2],-g[tM(0xab0)][0x1]));const v=new a0av();v[tM(0x587)]='ROOT_LOD_'+i,P['debug'](tM(0x9a6),{'lodName':v['name'],'position':{'x':p['x'],'y':p['y'],'z':p['z']}}),v[tM(0x3e0)]['set'](p['x'],p['y'],p['z']);const w=j[tM(0x8f7)](new a0c());P['debug']('创建边框模型',{'isProxy':b[tM(0x587)]==tM(0x721)});let x;b['name']=='PROXY'?(x=b,x[tM(0x587)]=''):x=Kr([k['x'],k['y'],k['z']],Cd),x['position'][tM(0x46c)](w['x'],w['y'],w['z']);const y=this[tM(0x9fa)]?this['times'][tM(0x367)]*0.5:this['times'][tM(0x367)];return P['info'](tM(0xaaa),{'highDetailDistance':m,'lowDetailDistance':m*y*0x3,'isMobile':this[tM(0x9fa)]}),v[tM(0xa9e)](b,m),v[tM(0xa9e)](x,m*y*0x3),v;}['optimizeModelMemory'](b){const tP=a0cH;if(!b)return;const c={'materialsShared':0x0,'geometriesOptimized':0x0};b['traverse'](d=>{const tN=a0b;d[tN(0x2dc)]&&(d[tN(0xb87)]&&(Array['isArray'](d['material'])?d['material']:[d[tN(0xb87)]])['forEach'](f=>{const tO=tN,g=cc(f);if(g){const h=this['materialCache'][tO(0x20c)](g);if(h&&h!==f){if(Array[tO(0x1d4)](d['material'])){const i=d['material']['indexOf'](f);i>=0x0&&(d['material'][i]=h);}else d['material']=h;c['materialsShared']++;}else h||this['materialCache'][tO(0x46c)](g,f);}}),d[tN(0x45e)]&&(ac(d['geometry']),c['geometriesOptimized']++));}),P['info'](tP(0x7ba),c);}['disposeUnusedResources'](b){const tQ=a0cH,c=b||this[tQ(0x4a2)];if(!c)return;let d=0x0;c['traverse'](f=>{const tR=tQ;f[tR(0x2dc)]&&(!f[tR(0x921)]&&f[tR(0x45e)],f[tR(0xb87)]&&(Array['isArray'](f['material'])?f[tR(0xb87)]:[f[tR(0xb87)]])['forEach'](g=>{const tS=tR;g&&!g[tS(0x47e)]?.[tS(0x8de)]&&['map',tS(0xad5),'roughnessMap',tS(0x845),'aoMap','emissiveMap',tS(0x1bd)]['forEach'](h=>{const tT=tS;g[h]&&g[h][tT(0x464)];});}));}),P[tQ(0x7d1)]('资源清理完成',{'disposedCount':d});}['getLoadInfo'](){const tU=a0cH;return{...this[tU(0x98f)],'modelVersion':this['exportVersion']};}['loadTextAnnotations'](){const tV=a0cH,b=this[tV(0x6db)]?.[tV(0x53c)];if(!b||b['length']===0x0){P['debug'](tV(0x33b));return;}P['info'](tV(0x789),{'count':b[tV(0x576)]});try{this['viewer'][tV(0x45c)][tV(0x2ef)](b),P['info']('文本标注加载完成',{'count':b[tV(0x576)]});}catch(c){P['error']('加载文本标注失败',{'error':c});}}[a0cH(0x882)](){const tW=a0cH,b=this[tW(0x6db)]?.['dimension_annotations'];if(!b||b[tW(0x576)]===0x0){P[tW(0x7d1)](tW(0x6a1));return;}P['info']('开始加载尺寸标注',{'count':b['length']});try{this[tW(0x651)][tW(0x6c2)][tW(0x6bb)](b),P[tW(0x404)](tW(0x145),{'count':b['length']});}catch(c){P[tW(0x323)](tW(0x733),{'error':c});}}async[a0cH(0x387)](b){const tX=a0cH;P[tX(0x404)]('开始加载详细模型'),b[tX(0xad9)]=!0x0,P[tX(0x7d1)]('详细模型信息',{'filename':b['userData']['filename']});const c=await this[tX(0x309)]['getValue'](b[tX(0x47e)]['filename']);if(!c){const d=tX(0x2e5)+b['userData']['filename'];return P['error'](d),Promise[tX(0x6b0)](new Error(d));}return new Promise((f,g)=>{const tY=tX;this['GLTFLoader']['parse'](c[tY(0x67a)],null,({scene:h})=>{const tZ=tY,i=h[tZ(0x330)][0x0];if(i){P['debug'](tZ(0x9b4));const j=this['generateLOD'](i,b[tZ(0x3e0)]);j['userData'][tZ(0xaa6)]=b[tZ(0x47e)][tZ(0xaa6)],j[tZ(0x47e)]['bounds']=b['userData']['bounds'],P['debug']('添加详细模型到场景,移除原代理'),this[tZ(0x4a2)]['add'](j),b[tZ(0x717)][tZ(0x1da)](b),f();}else{const k=tZ(0x1e7)+b[tZ(0x47e)]['filename'];this['errors'][tZ(0x50e)]({'msg':k}),P['warn'](k),g(new Error(k));}},h=>{const u0=tY;this['errors'][u0(0x50e)]({'msg':h instanceof Error?h['message']:String(h)}),P[u0(0x637)]('详细模型加载错误',{'error':h}),g(h);});});}}const sr={'debug':{'stats':{'enabled':!0x1},'lightHelpers':{'enabled':!0x1,'size':0x1}},'load':{'timeout':0x7530,'modelScale':0x1,'autoScale':!0x0,'autoCenter':!0x0,'cache':{'enabled':!0x0},'proxy':{'enabled':!0x0},'edge':{'url':''}},'ktx2':{'url':'/ktx2/'},'draco':{'url':'/draco/'},'style':{'type':0x0,'background':{'color':a0cH(0x59d)},'sky':{'enabled':!0x1,'turbidity':0x0,'rayleigh':0.28,'mieCoefficient':0.005,'mieDirectionalG':0.7,'elevation':0x2,'azimuth':0xb4,'inclination':0.5},'edge':{'enabled':!0x0},'fog':{'enabled':!0x1,'color':'#DBDBDE','density':0.0015},'material':{'opacity':0x1},'axes':{'display':!0x1}},'display':{'fps':{'display':!0x1}},'control':{'autoRotate':!0x1,'orbitPoint':a0cH(0x56c),'maxDistance':a0cH(0xb18),'minDistance':'default','rotateSpeed':0x3,'clickSelected':!0x0,'shortcuts':{'enable':!0x0},'joystick':{'enabled':!0x1},'speed':0.01},'camera':{'type':a0cH(0xb13),'fov':0x2d,'near':0.1,'far':0.1,'orbitBehavior':'auto','viewportAdaptation':{'enabled':!0x0,'minFOV':0x1e,'maxFOV':0x3c}},'light':{'ambientLight':{'display':!0x0,'intensity':0.3,'color':0xffffff},'hemiLight':{'display':!0x0,'intensity':0x1,'color':0xffffff},'directionalLight':{'display':!0x0,'intensity':2.88,'color':0xffffff}},'measure':{'unit':'m'},'gui':{'enabled':!0x1,'excludes':[],'ttile':'设置'},'render':{'enableTransition':!0x0,'LODFactor':0x1e,'webGLRenderer':{'logarithmicDepthBuffer':!0x1,'alpha':!0x1,'antialias':!0x0,'powerPreference':a0cH(0xa2d)},'envMap':{'enabled':!0x0,'path':'envmap/','files':{'px':'px.png','nx':'nx.png','py':a0cH(0x7fc),'ny':a0cH(0x301),'pz':'pz.png','nz':'nz.png'}},'postProcessing':{'ssao':{'enabled':!0x1,'radius':0.5,'intensity':0x1},'bloom':{'enabled':!0x1,'strength':0.5,'radius':0.4},'fxaa':{'enabled':!0x0}}},'other':{'autoSceneIndex':0x0}};class Nu{constructor(b,c,d){const u1=a0cH;this['el']=b,this['message']=c,this['percentage']=d,this[u1(0x5a1)]();}[a0cH(0x5a1)](){const u2=a0cH;this[u2(0xa83)]=document['createElement']('div'),this['progressContainer']['className']='progress-container',this[u2(0x737)]=document[u2(0x558)]('div'),this[u2(0x737)][u2(0x757)]='progress-message',this['messageElement']['innerText']=this[u2(0x98d)],this['bar']=document['createElement']('div'),this['bar']['className']=u2(0x1bb),this['messageElement']['innerText']=this['message'],this[u2(0x21c)](this['percentage']),this[u2(0xa83)][u2(0x89a)](this['messageElement']),this['progressContainer']['appendChild'](this[u2(0x818)]),this['el'][u2(0x89a)](this[u2(0xa83)]);}[a0cH(0x21c)](b){const u3=a0cH;this[u3(0x84c)]=b,this[u3(0x818)][u3(0x639)][u3(0x69c)]=this['percentage']+'%',this[u3(0x737)][u3(0x9e8)]=this['message'],this[u3(0x818)][u3(0x639)][u3(0x7d7)]=u3(0x42c);}['updateMessage'](b){const u4=a0cH;this['message']=b,this['messageElement'][u4(0x9e8)]=this['message'];}['close'](){const u5=a0cH;this['progressContainer']&&this['el']['removeChild'](this[u5(0xa83)]);}}const Ye={'lastWheelTime':0x0,'isNewScroll':!0x0,'timeoutId':null,'THRESHOLD':0x1f4};class Uu{constructor(b){const u6=a0cH;C(this,u6(0x798)),C(this,'handlers'),C(this,u6(0x3c7)),C(this,u6(0xb21)),C(this,u6(0x55c)),C(this,'dragStartPosition'),(this['element']=b,this['handlers']={},this[u6(0x3c7)]=!0x1,this[u6(0xb21)]=null,this['dragThreshold']=0x5,this['dragStartPosition']=null,this['init']());}[a0cH(0x840)](){const u7=a0cH;this[u7(0x798)]['addEventListener']('click',this['handleClick']['bind'](this)),this[u7(0x798)]['addEventListener'](u7(0x284),this['handleMouseDown']['bind'](this)),this['element']['addEventListener'](u7(0x284),this[u7(0x2b0)]['bind'](this)),document['addEventListener'](u7(0xb16),a0br(this[u7(0x482)]['bind'](this),0x96)),document[u7(0x1f6)]('mouseup',this[u7(0x481)]['bind'](this)),this[u7(0x798)][u7(0x1f6)](u7(0x214),this[u7(0x1d8)][u7(0x454)](this),{'passive':!0x0}),this['element'][u7(0x1f6)]('wheel',this['handleWheel']['bind'](this),{'passive':!0x0});}['handleTouchMove'](b){const u8=a0cH;this[u8(0x482)](b);}[a0cH(0x677)](b){const u9=a0cH,c=Date['now']();this['lastClickTime']&&c-this[u9(0xb21)]<0x12c?(this['trigger'](u9(0x219),b),this[u9(0xb21)]=null):this[u9(0xb21)]=c;}[a0cH(0x2b0)](b){const ub=a0cH;b[ub(0x1a3)]===0x0&&this['trigger']('leftMouseDown',b);}[a0cH(0x5cd)](b){const uf=a0cH;this[uf(0x3c7)]=!0x0,this[uf(0x17f)]={'x':b[uf(0xa4c)],'y':b['clientY']},this['trigger'](uf(0x846),b);}[a0cH(0x482)](b){const uj=a0cH;if(this[uj(0x4bb)]('mousemove',{'event':b}),!this['isDragging'])return;const c={'x':b[uj(0xa4c)]-this[uj(0x17f)]['x'],'y':b['clientY']-this['dragStartPosition']['y']};(Math['abs'](c['x'])>this[uj(0x55c)]||Math['abs'](c['y'])>this[uj(0x55c)])&&(this[uj(0x4bb)](uj(0xb08),{'event':b,'delta':c}),this[uj(0x17f)]={'x':b[uj(0xa4c)],'y':b[uj(0x6f9)]});}['handleMouseUp'](b){const uk=a0cH;this[uk(0x3c7)]&&(this[uk(0x3c7)]=!0x1,this['trigger'](uk(0x678))),this[uk(0x4bb)]('mouseUp',b||new MouseEvent('mouseup'));}[a0cH(0x52b)](b){const um=a0cH,c=b['deltaY'],d=Date[um(0x371)]();d-Ye['lastWheelTime']>Ye['THRESHOLD']&&(Ye['isNewScroll']=!0x0,Ye['timeoutId']&&clearTimeout(Ye['timeoutId']),Ye[um(0x908)]=setTimeout(()=>{Ye['isNewScroll']=!0x0;},Ye['THRESHOLD'])),Ye['isNewScroll']&&(this['trigger'](um(0x288),{'event':b,'delta':c}),Ye[um(0x984)]=!0x1),Ye['lastWheelTime']=d,this['trigger']('scroll',{'event':b,'delta':c});}['on'](b,c){const un=a0cH;this[un(0x80f)][b]||(this['handlers'][b]=[]),this[un(0x80f)][b][un(0x50e)](c);}['trigger'](b,c){const d=this['handlers'][b];d&&d['forEach'](f=>f(c));}}class ea{constructor(b,c,d,f,g){const up=a0cH;C(this,up(0x1d3)),C(this,up(0x59e),new Map()),C(this,up(0x23d)),(this[up(0x976)]=b,this['scene']=c,this['camera']=d,this['composer']=new kh(b),this[up(0x23d)]=new Fh(c,d),this['composer']['addPass'](this[up(0x23d)]),this[up(0x3a3)](f,g));}[a0cH(0x18d)](b,c,d=!0x0){const uq=a0cH;c['enabled']=d,this[uq(0x59e)]['set'](b,{'pass':c,'enabled':d,'name':b}),this['composer']['addPass'](c);}['createSSAO'](b={}){const ut=a0cH,{kernelRadius:c=0.5,minDistance:d=0.001,maxDistance:f=0.1}=b,g=new ot(this[ut(0x770)],this[ut(0x3e2)],this[ut(0x976)][ut(0x736)]['clientWidth'],this['renderer'][ut(0x736)]['clientHeight']);g['kernelRadius']=c,g['minDistance']=d,g[ut(0xaf6)]=f,this['addEffect']('ssao',g);}['createBloom'](b={}){const uv=a0cH,{strength:c=1.5,radius:d=0.4,threshold:f=0.85}=b,g=new jt(new a0l(this['renderer']['domElement']['clientWidth'],this[uv(0x976)][uv(0x736)]['clientHeight']),c,d,f);this[uv(0x18d)]('bloom',g);}[a0cH(0xaa8)](b,c,d){const uw=a0cH;let f=this[uw(0x59e)][uw(0x20c)](b);if(!f)switch(b){case'ssao':this['createSSAO'](d),f=this['passes'][uw(0x20c)](b);break;case uw(0x90f):this['createBloom'](d),f=this['passes'][uw(0x20c)](b);break;default:console[uw(0x637)]('Effect\x20\x22'+b+'\x22\x20does\x20not\x20exist\x20and\x20cannot\x20be\x20auto-created.');return;}f&&(f['enabled']=c!==void 0x0?c:!f[uw(0x95b)],f['pass'][uw(0x95b)]=f['enabled']);}['getSSAOPass'](){const ux=a0cH,b=this['passes']['get']('ssao');return b?.['pass']instanceof ot?b[ux(0x630)]:null;}['render'](){const uy=a0cH;this[uy(0x1d3)]['render']();}['resize'](b,c){const uz=a0cH;this[uz(0x1d3)]['setSize'](b,c),this[uz(0x59e)][uz(0x2cd)](({pass:d})=>{const uB=uz;(d instanceof ot||d instanceof jt)&&d[uB(0x1f4)](b,c);});}get['activeEffects'](){const uC=a0cH;return Array['from'](this['passes']['values']())['filter'](({enabled:b})=>b)[uC(0x941)](({name:b})=>b);}[a0cH(0xa58)](){const uD=a0cH;this['passes'][uD(0x2cd)](({pass:b})=>{const uE=uD;b[uE(0xa58)]?.(),this[uE(0x1d3)][uE(0xa5b)](b);}),this['composer'][uD(0xa58)](),this['passes']['clear']();}}const js=(b,c)=>{const d=c['x']-b['x'],f=c['y']-b['y'];return Math['sqrt'](d*d+f*f);},Gu=(b,c)=>{const uF=a0cH,d=c['x']-b['x'],f=c['y']-b['y'];return Hu(Math[uF(0x419)](f,d));},zu=(b,c,d)=>{const f={'x':0x0,'y':0x0};return d=Rr(d),f['x']=b['x']-c*Math['cos'](d),f['y']=b['y']-c*Math['sin'](d),f;},Rr=b=>b*(Math['PI']/0xb4),Hu=b=>b*(0xb4/Math['PI']),qu=b=>isNaN(b['buttons'])?b['pressure']!==0x0:b[a0cH(0x245)]!==0x0,nr=new Map(),ta=b=>{const uG=a0cH;nr[uG(0x2ce)](b)&&clearTimeout(nr['get'](b)),nr['set'](b,setTimeout(b,0x64));},Zs=(b,c,d)=>{const uH=a0cH,f=c[uH(0x704)](/[ ,]+/g);let g;for(let h=0x0;h<f['length'];h+=0x1)g=f[h],b[uH(0x1f6)]?b['addEventListener'](g,d,!0x1):b['attachEvent']&&b[uH(0x18c)](g,d);},ia=(b,c,d)=>{const uI=a0cH,f=c['split'](/[ ,]+/g);let g;for(let h=0x0;h<f[uI(0x576)];h+=0x1)g=f[h],b[uI(0x293)]?b[uI(0x293)](g,d):b[uI(0x6ff)]&&b['detachEvent'](g,d);},_c=b=>(b[a0cH(0x8b9)](),b[a0cH(0x223)][a0cH(0x1e3)](/^touch/)?b['changedTouches']:b),sa=()=>{const uJ=a0cH,b=window[uJ(0x82f)]!==void 0x0?window['pageXOffset']:(document['documentElement']||document[uJ(0x3f4)]['parentNode']||document[uJ(0x3f4)])['scrollLeft'],c=window['pageYOffset']!==void 0x0?window[uJ(0x9eb)]:(document['documentElement']||document['body']['parentNode']||document[uJ(0x3f4)])['scrollTop'];return{'x':b,'y':c};},na=(b,c)=>{const uK=a0cH;c['top']||c[uK(0x889)]||c[uK(0xaae)]||c['left']?(b['style']['top']=c[uK(0x2a9)],b['style']['right']=c['right'],b[uK(0x639)]['bottom']=c[uK(0xaae)],b[uK(0x639)]['left']=c[uK(0x4d1)]):(b['style'][uK(0x4d1)]=c['x']+'px',b['style']['top']=c['y']+'px');},Zr=(b,d,f)=>{const uL=a0cH,g=Tc(b);for(let h in g)if(g[uL(0x2d7)](h)){if(typeof d=='string')g[h]=d+'\x20'+f;else{let i='';for(let j=0x0,k=d[uL(0x576)];j<k;j+=0x1)i+=d[j]+'\x20'+f+',\x20';g[h]=i['slice'](0x0,-0x2);}}return g;},Vu=(b,c)=>{const d=Tc(b);for(let f in d)d['hasOwnProperty'](f)&&(d[f]=c);return d;},Tc=b=>{const uM=a0cH,c={};return c[b]='',['webkit',uM(0x142),'o'][uM(0x2cd)](function(d){const uN=uM;c[d+b[uN(0x926)](0x0)[uN(0x290)]()+b[uN(0x791)](0x1)]='';}),c;},rr=(b,c)=>{for(let d in c)c['hasOwnProperty'](d)&&(b[d]=c[d]);return b;},ju=(b,c)=>{const uO=a0cH,d={};for(let f in b)b['hasOwnProperty'](f)&&c['hasOwnProperty'](f)?d[f]=c[f]:b[uO(0x2d7)](f)&&(d[f]=b[f]);return d;},Pr=(b,c)=>{const uP=a0cH;if(b['length']){for(let d=0x0,f=b[uP(0x576)];d<f;d+=0x1)c(b[d]);}else c(b);},Yu=(b,c,d)=>({'x':Math[a0cH(0x2f8)](Math['max'](b['x'],c['x']-d),c['x']+d),'y':Math[a0cH(0x2f8)](Math['max'](b['y'],c['y']-d),c['y']+d)});var Ku=a0cH(0x444)in window,Wu=!!window['PointerEvent'],Ju=!!window['MSPointerEvent'],Zi={'touch':{'start':a0cH(0x8ac),'move':a0cH(0x214),'end':a0cH(0x2bc)},'mouse':{'start':a0cH(0x284),'move':'mousemove','end':'mouseup'},'pointer':{'start':'pointerdown','move':a0cH(0x4cc),'end':'pointerup,\x20pointercancel'},'MSPointer':{'start':a0cH(0xa51),'move':a0cH(0x5c9),'end':a0cH(0x2bf)}},mi,hs={};Wu?mi=Zi['pointer']:Ju?mi=Zi['MSPointer']:Ku?(mi=Zi['touch'],hs=Zi[a0cH(0x177)]):mi=Zi['mouse'];function wt(){}wt[a0cH(0x598)]['on']=function(b,c){const uQ=a0cH;var d=this,f=b[uQ(0x704)](/[ ,]+/g),g;d['_handlers_']=d[uQ(0x2a3)]||{};for(var h=0x0;h<f[uQ(0x576)];h+=0x1)g=f[h],d[uQ(0x2a3)][g]=d['_handlers_'][g]||[],d['_handlers_'][g]['push'](c);return d;},wt['prototype'][a0cH(0x2a8)]=function(b,c){const uR=a0cH;var d=this;return d[uR(0x2a3)]=d['_handlers_']||{},b===void 0x0?d['_handlers_']={}:c===void 0x0?d[uR(0x2a3)][b]=null:d[uR(0x2a3)][b]&&d['_handlers_'][b][uR(0x279)](c)>=0x0&&d[uR(0x2a3)][b][uR(0x263)](d['_handlers_'][b]['indexOf'](c),0x1),d;},wt[a0cH(0x598)][a0cH(0x4bb)]=function(b,c){const uS=a0cH;var d=this,f=b['split'](/[ ,]+/g),g;d['_handlers_']=d[uS(0x2a3)]||{};for(var h=0x0;h<f['length'];h+=0x1)g=f[h],d['_handlers_'][g]&&d['_handlers_'][g][uS(0x576)]&&d[uS(0x2a3)][g]['forEach'](function(i){const uT=uS;i[uT(0x95c)](d,{'type':g,'target':d},c);});},wt['prototype']['config']=function(b){const uU=a0cH;var c=this;c['options']=c[uU(0x227)]||{},b&&(c[uU(0xa3c)]=ju(c['options'],b));},wt[a0cH(0x598)][a0cH(0x66c)]=function(b,c){const uV=a0cH;var d=this;return d[uV(0x21b)]=d[uV(0x21b)]||{},d[uV(0x21b)][c]=function(){const uW=uV;typeof d['on'+c]==uW(0x199)?d['on'+c][uW(0x848)](d,arguments):console['warn'](uW(0x896)+c+'\x22\x20handler.');},Zs(b,mi[c],d['_domHandlers_'][c]),hs[c]&&Zs(b,hs[c],d['_domHandlers_'][c]),d;},wt['prototype']['unbindEvt']=function(b,c){const uX=a0cH;var d=this;return d['_domHandlers_']=d['_domHandlers_']||{},ia(b,mi[c],d[uX(0x21b)][c]),hs[c]&&ia(b,hs[c],d[uX(0x21b)][c]),delete d[uX(0x21b)][c],this;};function ue(b,c){const uY=a0cH;return this['identifier']=c[uY(0x80e)],this[uY(0x3e0)]=c[uY(0x3e0)],this[uY(0x322)]=c[uY(0x322)],this['collection']=b,this[uY(0x227)]={'size':0x64,'threshold':0.1,'color':'white','fadeTime':0xfa,'dataOnly':!0x1,'restJoystick':!0x0,'restOpacity':0.5,'mode':uY(0x6a9),'zone':document[uY(0x3f4)],'lockX':!0x1,'lockY':!0x1,'shape':uY(0x448)},this[uY(0x77d)](c),this['options']['mode']==='dynamic'&&(this[uY(0xa3c)][uY(0x141)]=0x0),this['id']=ue['id'],ue['id']+=0x1,this[uY(0x7df)]()[uY(0x262)](),this[uY(0x7fd)]={'el':this['ui']['el'],'on':this['on']['bind'](this),'off':this['off'][uY(0x454)](this),'show':this[uY(0x28a)][uY(0x454)](this),'hide':this['hide'][uY(0x454)](this),'add':this['addToDom']['bind'](this),'remove':this[uY(0x47f)][uY(0x454)](this),'destroy':this['destroy']['bind'](this),'setPosition':this['setPosition'][uY(0x454)](this),'resetDirection':this[uY(0x636)][uY(0x454)](this),'computeDirection':this['computeDirection'][uY(0x454)](this),'trigger':this['trigger']['bind'](this),'position':this[uY(0x3e0)],'frontPosition':this['frontPosition'],'ui':this['ui'],'identifier':this['identifier'],'id':this['id'],'options':this['options']},this['instance'];}ue['prototype']=new wt(),ue['constructor']=ue,ue['id']=0x0,ue['prototype'][a0cH(0x7df)]=function(b){const uZ=a0cH;return this['ui']={},this[uZ(0xa3c)]['dataOnly']?this:(this['ui']['el']=document[uZ(0x558)]('div'),this['ui']['back']=document[uZ(0x558)](uZ(0x4b6)),this['ui'][uZ(0xb9a)]=document['createElement']('div'),this['ui']['el'][uZ(0x757)]='nipple\x20collection_'+this['collection']['id'],this['ui'][uZ(0x83a)][uZ(0x757)]=uZ(0x83a),this['ui']['front'][uZ(0x757)]=uZ(0xb9a),this['ui']['el'][uZ(0x86c)]('id','nipple_'+this[uZ(0x4e7)]['id']+'_'+this['id']),this['ui']['el'][uZ(0x89a)](this['ui']['back']),this['ui']['el'][uZ(0x89a)](this['ui']['front']),this);},ue['prototype']['stylize']=function(){const v0=a0cH;if(this[v0(0xa3c)][v0(0x5a6)])return this;var b=this[v0(0xa3c)][v0(0xb6a)]+'ms',c=Vu('borderRadius','50%'),d=Zr('transition','opacity',b),f={};return f['el']={'position':v0(0x57c),'opacity':this['options'][v0(0x141)],'display':v0(0x310),'zIndex':0x3e7},f['back']={'position':v0(0x57c),'display':v0(0x310),'width':this[v0(0xa3c)][v0(0x18b)]+'px','height':this[v0(0xa3c)]['size']+'px','left':0x0,'marginLeft':-this[v0(0xa3c)]['size']/0x2+'px','marginTop':-this['options'][v0(0x18b)]/0x2+'px','background':this['options'][v0(0xa89)],'opacity':'.5'},f[v0(0xb9a)]={'width':this['options'][v0(0x18b)]/0x2+'px','height':this[v0(0xa3c)]['size']/0x2+'px','position':'absolute','display':v0(0x310),'left':0x0,'marginLeft':-this[v0(0xa3c)][v0(0x18b)]/0x4+'px','marginTop':-this['options'][v0(0x18b)]/0x4+'px','background':this['options'][v0(0xa89)],'opacity':'.5','transform':'translate(0px,\x200px)'},rr(f['el'],d),this[v0(0xa3c)]['shape']==='circle'&&rr(f[v0(0x83a)],c),rr(f[v0(0xb9a)],c),this[v0(0x955)](f),this;},ue[a0cH(0x598)]['applyStyles']=function(b){for(var c in this['ui'])if(this['ui']['hasOwnProperty'](c)){for(var d in b[c])this['ui'][c]['style'][d]=b[c][d];}return this;},ue['prototype'][a0cH(0x718)]=function(){const v1=a0cH;return this[v1(0xa3c)][v1(0x5a6)]||document['body'][v1(0x5df)](this['ui']['el'])?this:(this['options'][v1(0x5f0)][v1(0x89a)](this['ui']['el']),this);},ue[a0cH(0x598)][a0cH(0x47f)]=function(){const v2=a0cH;return this[v2(0xa3c)]['dataOnly']||!document['body']['contains'](this['ui']['el'])?this:(this['options'][v2(0x5f0)][v2(0x7f7)](this['ui']['el']),this);},ue['prototype'][a0cH(0xa85)]=function(){const v3=a0cH;clearTimeout(this[v3(0x596)]),clearTimeout(this['showTimeout']),clearTimeout(this[v3(0x5bf)]),this[v3(0x4bb)]('destroyed',this[v3(0x7fd)]),this['removeFromDom'](),this['off']();},ue['prototype']['show']=function(b){const v4=a0cH;var c=this;return c['options'][v4(0x5a6)]||(clearTimeout(c[v4(0x596)]),clearTimeout(c['showTimeout']),clearTimeout(c[v4(0x5bf)]),c['addToDom'](),c[v4(0x30e)](),setTimeout(function(){const v5=v4;c['ui']['el']['style'][v5(0xab5)]=0x1;},0x0),c[v4(0x688)]=setTimeout(function(){const v6=v4;c[v6(0x4bb)](v6(0x6dc),c['instance']),typeof b=='function'&&b['call'](this);},c['options'][v4(0xb6a)])),c;},ue[a0cH(0x598)]['hide']=function(b){const v7=a0cH;var c=this;if(c[v7(0xa3c)]['dataOnly'])return c;if(c['ui']['el'][v7(0x639)][v7(0xab5)]=c['options'][v7(0x141)],clearTimeout(c[v7(0x596)]),clearTimeout(c['showTimeout']),clearTimeout(c[v7(0x5bf)]),c[v7(0x596)]=setTimeout(function(){const v8=v7;var d=c['options'][v8(0x238)]==='dynamic'?v8(0x6ab):'block';c['ui']['el']['style']['display']=d,typeof b==v8(0x199)&&b[v8(0x95c)](c),c['trigger']('hidden',c['instance']);},c[v7(0xa3c)]['fadeTime']),c[v7(0xa3c)][v7(0x6e1)]){const d=c['options'][v7(0x6e1)],f={};f['x']=d===!0x0||d['x']!==!0x1?0x0:c[v7(0x7fd)][v7(0x322)]['x'],f['y']=d===!0x0||d['y']!==!0x1?0x0:c['instance']['frontPosition']['y'],c[v7(0x6d6)](b,f);}return c;},ue[a0cH(0x598)]['setPosition']=function(b,c){const v9=a0cH;var d=this;d[v9(0x322)]={'x':c['x'],'y':c['y']};var f=d[v9(0xa3c)]['fadeTime']+'ms',g={};g['front']=Zr('transition',['transform'],f);var h={'front':{}};h['front']={'transform':v9(0x194)+d[v9(0x322)]['x']+'px,'+d['frontPosition']['y']+'px)'},d[v9(0x955)](g),d['applyStyles'](h),d['restTimeout']=setTimeout(function(){const vb=v9;typeof b==vb(0x199)&&b[vb(0x95c)](d),d['restCallback']();},d[v9(0xa3c)]['fadeTime']);},ue[a0cH(0x598)]['restCallback']=function(){const vf=a0cH;var b=this,c={};c['front']=Zr(vf(0x7d7),vf(0x6ab),''),b[vf(0x955)](c),b['trigger'](vf(0x749),b[vf(0x7fd)]);},ue[a0cH(0x598)][a0cH(0x636)]=function(){const vj=a0cH;this[vj(0x3e5)]={'x':!0x1,'y':!0x1,'angle':!0x1};},ue['prototype']['computeDirection']=function(b){const vk=a0cH;var d=b['angle']['radian'],f=Math['PI']/0x4,g=Math['PI']/0x2,i,j,k;if(d>f&&d<f*0x3&&!b['lockX']?i='up':d>-f&&d<=f&&!b[vk(0x6c3)]?i='left':d>-f*0x3&&d<=-f&&!b['lockX']?i='down':b[vk(0x6c3)]||(i=vk(0x889)),b[vk(0x6c3)]||(d>-g&&d<g?j=vk(0x4d1):j='right'),b[vk(0x34d)]||(d>0x0?k='up':k='down'),b['force']>this[vk(0xa3c)]['threshold']){var m={},p;for(p in this['direction'])this[vk(0x3e5)]['hasOwnProperty'](p)&&(m[p]=this[vk(0x3e5)][p]);var u={};this[vk(0x3e5)]={'x':j,'y':k,'angle':i},b[vk(0x3e5)]=this[vk(0x3e5)];for(p in m)m[p]===this['direction'][p]&&(u[p]=!0x0);if(u['x']&&u['y']&&u[vk(0x491)])return b;(!u['x']||!u['y'])&&this['trigger'](vk(0x44a),b),u['x']||this[vk(0x4bb)](vk(0x280)+j,b),u['y']||this['trigger'](vk(0x280)+k,b),u[vk(0x491)]||this['trigger'](vk(0x353)+i,b);}else this[vk(0x636)]();return b;};function ae(b,c){const vm=a0cH;var d=this;d[vm(0x775)]=[],d[vm(0x90d)]=[],d[vm(0xaad)]=[],d['ids']=[],d[vm(0x720)]={},d[vm(0xad0)]=b,d['id']=ae['id'],ae['id']+=0x1,d['defaults']={'zone':document['body'],'multitouch':!0x1,'maxNumberOfNipples':0xa,'mode':vm(0x6a9),'position':{'top':0x0,'left':0x0},'catchDistance':0xc8,'size':0x64,'threshold':0.1,'color':vm(0x684),'fadeTime':0xfa,'dataOnly':!0x1,'restJoystick':!0x0,'restOpacity':0.5,'lockX':!0x1,'lockY':!0x1,'shape':'circle','dynamicPage':!0x1,'follow':!0x1},d[vm(0x77d)](c),(d['options'][vm(0x238)]===vm(0x8be)||d['options']['mode']==='semi')&&(d[vm(0xa3c)][vm(0x79e)]=!0x1),d['options'][vm(0x79e)]||(d[vm(0xa3c)][vm(0x13c)]=0x1);const f=getComputedStyle(d['options'][vm(0x5f0)]['parentElement']);return f&&f['display']==='flex'&&(d['parentIsFlex']=!0x0),d[vm(0x77c)](),d['prepareNipples'](),d['bindings'](),d[vm(0x378)](),d[vm(0x775)];}ae['prototype']=new wt(),ae[a0cH(0x7d4)]=ae,ae['id']=0x0,ae['prototype']['prepareNipples']=function(){const vp=a0cH;var b=this,c=b['nipples'];c['on']=b['on'][vp(0x454)](b),c[vp(0x2a8)]=b[vp(0x2a8)]['bind'](b),c['options']=b[vp(0xa3c)],c['destroy']=b[vp(0xa85)]['bind'](b),c[vp(0x180)]=b[vp(0x180)],c['id']=b['id'],c['processOnMove']=b[vp(0xa35)][vp(0x454)](b),c['processOnEnd']=b[vp(0x4f7)]['bind'](b),c['get']=function(d){if(d===void 0x0)return c[0x0];for(var f=0x0,g=c['length'];f<g;f+=0x1)if(c[f]['identifier']===d)return c[f];return!0x1;};},ae[a0cH(0x598)][a0cH(0xae0)]=function(){const vq=a0cH;var b=this;b['bindEvt'](b['options']['zone'],'start'),b[vq(0xa3c)]['zone']['style'][vq(0x862)]=vq(0x6ab),b['options']['zone'][vq(0x639)][vq(0x44f)]=vq(0x6ab);},ae['prototype'][a0cH(0x378)]=function(){const vv=a0cH;var b=this,c=b['options'];if(c[vv(0x238)]===vv(0x8be)){var d=b['createNipple'](c[vv(0x3e0)],b['manager']['getIdentifier']());d[vv(0x644)](),b[vv(0x90d)]['push'](d);}},ae['prototype'][a0cH(0x946)]=function(b,d){const vw=a0cH;var f=this,g=f[vw(0xad0)][vw(0x468)],i={},j=f[vw(0xa3c)],k={'x':f['parentIsFlex']?g['x']:g['x']+f['box']['left'],'y':f[vw(0xae3)]?g['y']:g['y']+f['box']['top']};if(b['x']&&b['y'])i={'x':b['x']-k['x'],'y':b['y']-k['y']};else{if(b[vw(0x2a9)]||b['right']||b['bottom']||b[vw(0x4d1)]){var m=document['createElement']('DIV');m[vw(0x639)][vw(0x9e9)]='hidden',m['style'][vw(0x2a9)]=b['top'],m[vw(0x639)][vw(0x889)]=b[vw(0x889)],m[vw(0x639)]['bottom']=b[vw(0xaae)],m['style']['left']=b['left'],m['style']['position']='absolute',j['zone'][vw(0x89a)](m);var p=m[vw(0x5d9)]();j[vw(0x5f0)][vw(0x7f7)](m),i=b,b={'x':p['left']+g['x'],'y':p[vw(0x2a9)]+g['y']};}}var u=new ue(f,{'color':j[vw(0xa89)],'size':j[vw(0x18b)],'threshold':j[vw(0x5c3)],'fadeTime':j['fadeTime'],'dataOnly':j[vw(0x5a6)],'restJoystick':j[vw(0x6e1)],'restOpacity':j[vw(0x141)],'mode':j[vw(0x238)],'identifier':d,'position':b,'zone':j[vw(0x5f0)],'frontPosition':{'x':0x0,'y':0x0},'shape':j[vw(0x42e)]});return j[vw(0x5a6)]||(na(u['ui']['el'],i),na(u['ui']['front'],u['frontPosition'])),f['nipples'][vw(0x50e)](u),f[vw(0x4bb)]('added\x20'+u['identifier']+vw(0x9c1),u),f['manager'][vw(0x4bb)]('added\x20'+u['identifier']+vw(0x9c1),u),f[vw(0x55d)](u),u;},ae[a0cH(0x598)][a0cH(0x77c)]=function(){const vx=a0cH;var b=this;b[vx(0x9cd)]=b[vx(0xa3c)]['zone']['getBoundingClientRect']();},ae['prototype'][a0cH(0x55d)]=function(b){const vz=a0cH;var c=this,d,f=function(g,h){const vy=a0b;d=g[vy(0x223)]+'\x20'+h['id']+':'+g['type'],c[vy(0x4bb)](d,h);};b['on']('destroyed',c[vz(0x4ec)]['bind'](c)),b['on']('shown\x20hidden\x20rested\x20dir\x20plain',f),b['on'](vz(0x664),f),b['on']('plain:up\x20plain:right\x20plain:down\x20plain:left',f);},ae[a0cH(0x598)][a0cH(0xa00)]=function(b,c,d){const vB=a0cH;var f=this,g=0x0;clearInterval(f[vB(0x720)][d]),f['pressureIntervals'][d]=setInterval(function(){const vC=vB;var h=b[vC(0x66a)]||b['pressure']||b[vC(0x6cd)]||0x0;h!==g&&(c[vC(0x4bb)](vC(0x38d),h),f['trigger']('pressure\x20'+c['identifier']+vC(0xb40),h),g=h);}['bind'](f),0x64);},ae['prototype']['onstart']=function(b){const vD=a0cH;var c=this,d=c[vD(0xa3c)],f=b;b=_c(b),c[vD(0x77c)]();var g=function(h){const vE=vD;c['actives']['length']<d['maxNumberOfNipples']?c[vE(0x8c5)](h):f['type'][vE(0x1e3)](/^touch/)&&(Object[vE(0x762)](c['manager'][vE(0x180)])['forEach'](function(i){if(Object['values'](f['touches'])['findIndex'](function(k){return k['identifier']===i;})<0x0){var j=[b[0x0]];j['identifier']=i,c['processOnEnd'](j);}}),c['actives'][vE(0x576)]<d[vE(0x13c)]&&c['processOnStart'](h));};return Pr(b,g),c[vD(0xad0)][vD(0x8cf)](),!0x1;},ae[a0cH(0x598)]['processOnStart']=function(b){const vF=a0cH;var d=this,f=d[vF(0xa3c)],g,i=d[vF(0xad0)][vF(0x3e3)](b),j=b[vF(0x66a)]||b['pressure']||b['webkitForce']||0x0,k={'x':b['pageX'],'y':b['pageY']},m=d[vF(0x647)](i,k);m['identifier']!==i&&d['manager'][vF(0x73c)](m[vF(0x80e)]),m['identifier']=i;var p=function(v){const vG=vF;v['trigger']('start',v),d[vG(0x4bb)]('start\x20'+v['id']+vG(0x643),v),v[vG(0x28a)](),j>0x0&&d['pressureFn'](b,v,v[vG(0x80e)]),d['processOnMove'](b);};if((g=d[vF(0x90d)]['indexOf'](m))>=0x0&&d['idles']['splice'](g,0x1),d[vF(0xaad)][vF(0x50e)](m),d['ids']['push'](m[vF(0x80e)]),f[vF(0x238)]!=='semi')p(m);else{var u=js(k,m[vF(0x3e0)]);if(u<=f[vF(0x6fd)])p(m);else{m['destroy'](),d[vF(0x8c5)](b);return;}}return m;},ae['prototype']['getOrCreate']=function(b,c){const vH=a0cH;var d=this,f=d[vH(0xa3c)],g;return/(semi|static)/[vH(0x805)](f['mode'])?(g=d[vH(0x90d)][0x0],g?(d[vH(0x90d)][vH(0x263)](0x0,0x1),g):f[vH(0x238)]==='semi'?d[vH(0x946)](c,b):(console['warn'](vH(0xaa2)),!0x1)):(g=d['createNipple'](c,b),g);},ae['prototype']['processOnMove']=function(i){const vI=a0cH;var j=this,k=j['options'],v=j[vI(0xad0)][vI(0x3e3)](i),x=j['nipples']['get'](v),z=j[vI(0xad0)][vI(0x468)];if(!qu(i)){this[vI(0x4f7)](i);return;}if(!x){console[vI(0x323)](vI(0xb06)+v),j['manager'][vI(0x73c)](v);return;}if(k['dynamicPage']){var B=x['el']['getBoundingClientRect']();x[vI(0x3e0)]={'x':z['x']+B[vI(0x4d1)],'y':z['y']+B['top']};}x['identifier']=v;var F=x['options']['size']/0x2,H={'x':i[vI(0xaec)],'y':i['pageY']};k['lockX']&&(H['y']=x['position']['y']),k[vI(0x6c3)]&&(H['x']=x['position']['x']);var L=js(H,x['position']),N=Gu(H,x[vI(0x3e0)]),R=Rr(N),S=L/F,T={'distance':L,'position':H},U,a0;if(x[vI(0xa3c)][vI(0x42e)]==='circle'?(U=Math['min'](L,F),a0=zu(x[vI(0x3e0)],U,N)):(a0=Yu(H,x['position'],F),U=js(a0,x['position'])),k['follow']){if(L>F){let a4=H['x']-a0['x'],a5=H['y']-a0['y'];x['position']['x']+=a4,x[vI(0x3e0)]['y']+=a5,x['el'][vI(0x639)][vI(0x2a9)]=x['position']['y']-(j['box']['top']+z['y'])+'px',x['el']['style'][vI(0x4d1)]=x['position']['x']-(j['box'][vI(0x4d1)]+z['x'])+'px',L=js(H,x[vI(0x3e0)]);}}else H=a0,L=U;var a1=H['x']-x['position']['x'],a2=H['y']-x[vI(0x3e0)]['y'];x[vI(0x322)]={'x':a1,'y':a2},k['dataOnly']||(x['ui'][vI(0xb9a)]['style'][vI(0xb0c)]=vI(0x194)+a1+'px,'+a2+'px)');var a3={'identifier':x[vI(0x80e)],'position':H,'force':S,'pressure':i[vI(0x66a)]||i[vI(0x38d)]||i['webkitForce']||0x0,'distance':L,'angle':{'radian':R,'degree':N},'vector':{'x':a1/F,'y':-a2/F},'raw':T,'instance':x,'lockX':k[vI(0x34d)],'lockY':k['lockY']};a3=x[vI(0x2d0)](a3),a3['angle']={'radian':Rr(0xb4-N),'degree':0xb4-N},x['trigger']('move',a3),j['trigger']('move\x20'+x['id']+vI(0x39a),a3);},ae['prototype'][a0cH(0x4f7)]=function(b){const vJ=a0cH;var c=this,d=c[vJ(0xa3c)],f=c[vJ(0xad0)][vJ(0x3e3)](b),g=c['nipples'][vJ(0x20c)](f),h=c[vJ(0xad0)][vJ(0x73c)](g['identifier']);g&&(d['dataOnly']||g[vJ(0x913)](function(){const vK=vJ;d[vK(0x238)]===vK(0x6a9)&&(g['trigger'](vK(0x660),g),c[vK(0x4bb)]('removed\x20'+g['id']+vK(0x9d6),g),c['manager'][vK(0x4bb)](vK(0x1eb)+g['id']+vK(0x9d6),g),g['destroy']());}),clearInterval(c['pressureIntervals'][g[vJ(0x80e)]]),g[vJ(0x636)](),g['trigger'](vJ(0x9b6),g),c['trigger'](vJ(0x89f)+g['id']+':end',g),c['ids'][vJ(0x279)](g[vJ(0x80e)])>=0x0&&c['ids'][vJ(0x263)](c[vJ(0x180)]['indexOf'](g['identifier']),0x1),c[vJ(0xaad)]['indexOf'](g)>=0x0&&c['actives']['splice'](c[vJ(0xaad)]['indexOf'](g),0x1),/(semi|static)/[vJ(0x805)](d['mode'])?c['idles']['push'](g):c['nipples'][vJ(0x279)](g)>=0x0&&c['nipples']['splice'](c[vJ(0x775)]['indexOf'](g),0x1),c[vJ(0xad0)]['unbindDocument'](),/(semi|static)/['test'](d['mode'])&&(c[vJ(0xad0)]['ids'][h['id']]=h[vJ(0x80e)]));},ae['prototype'][a0cH(0x4ec)]=function(b,c){const vL=a0cH;var d=this;d['nipples']['indexOf'](c)>=0x0&&d['nipples']['splice'](d['nipples']['indexOf'](c),0x1),d['actives'][vL(0x279)](c)>=0x0&&d[vL(0xaad)][vL(0x263)](d['actives'][vL(0x279)](c),0x1),d[vL(0x90d)]['indexOf'](c)>=0x0&&d[vL(0x90d)][vL(0x263)](d[vL(0x90d)]['indexOf'](c),0x1),d[vL(0x180)][vL(0x279)](c['identifier'])>=0x0&&d['ids']['splice'](d['ids']['indexOf'](c['identifier']),0x1),d['manager'][vL(0x73c)](c[vL(0x80e)]),d['manager'][vL(0xa19)]();},ae['prototype'][a0cH(0xa85)]=function(){const vM=a0cH;var b=this;b[vM(0x53b)](b[vM(0xa3c)][vM(0x5f0)],'start'),b[vM(0x775)][vM(0x2cd)](function(d){const vN=vM;d[vN(0xa85)]();});for(var c in b['pressureIntervals'])b[vM(0x720)][vM(0x2d7)](c)&&clearInterval(b['pressureIntervals'][c]);b[vM(0x4bb)](vM(0x62a),b['nipples']),b['manager'][vM(0xa19)](),b['off']();};function pe(b){const vO=a0cH;var c=this;c[vO(0x180)]={},c[vO(0x1f9)]=0x0,c[vO(0x52a)]=[],c['scroll']=sa(),c[vO(0x77d)](b),c['prepareCollections']();var d=function(){const vP=vO;var g;c[vP(0x52a)][vP(0x2cd)](function(h){const vQ=vP;h[vQ(0x2cd)](function(i){const vR=vQ;g=i['el']['getBoundingClientRect'](),i[vR(0x3e0)]={'x':c['scroll']['x']+g[vR(0x4d1)],'y':c['scroll']['y']+g[vR(0x2a9)]};});});};Zs(window,vO(0x3a3),function(){ta(d);});var f=function(){const vS=vO;c[vS(0x468)]=sa();};return Zs(window,'scroll',function(){ta(f);}),c[vO(0x52a)];}pe['prototype']=new wt(),pe[a0cH(0x7d4)]=pe,pe['prototype'][a0cH(0x9ac)]=function(){const vT=a0cH;var b=this;b['collections']['create']=b['create'][vT(0x454)](b),b['collections']['on']=b['on']['bind'](b),b['collections'][vT(0x2a8)]=b[vT(0x2a8)]['bind'](b),b[vT(0x52a)][vT(0xa85)]=b[vT(0xa85)]['bind'](b),b['collections'][vT(0x20c)]=function(c){const vU=vT;var d;return b['collections'][vU(0x1ea)](function(f){const vV=vU;return d=f[vV(0x20c)](c),!d;}),d;};},pe[a0cH(0x598)][a0cH(0x7db)]=function(b){const vW=a0cH;return this[vW(0xa74)](b);},pe[a0cH(0x598)][a0cH(0xa74)]=function(b){const vX=a0cH;var c=this,d=new ae(c,b);return c['bindCollection'](d),c['collections'][vX(0x50e)](d),d;},pe['prototype']['bindCollection']=function(b){const vZ=a0cH;var c=this,d,f=function(g,h){const vY=a0b;d=g[vY(0x223)]+'\x20'+h['id']+':'+g[vY(0x223)],c['trigger'](d,h);};b['on'](vZ(0x62a),c[vZ(0x4ec)]['bind'](c)),b['on'](vZ(0x893),f),b['on'](vZ(0x664),f),b['on']('plain:up\x20plain:right\x20plain:down\x20plain:left',f);},pe[a0cH(0x598)]['bindDocument']=function(){const w0=a0cH;var b=this;b['binded']||(b['bindEvt'](document,w0(0x91d))['bindEvt'](document,w0(0x9b6)),b[w0(0x3b0)]=!0x0);},pe['prototype']['unbindDocument']=function(b){const w1=a0cH;var c=this;(!Object['keys'](c[w1(0x180)])['length']||b===!0x0)&&(c['unbindEvt'](document,w1(0x91d))[w1(0x53b)](document,w1(0x9b6)),c[w1(0x3b0)]=!0x1);},pe[a0cH(0x598)][a0cH(0x3e3)]=function(b){const w2=a0cH;var c;return b?(c=b['identifier']===void 0x0?b['pointerId']:b[w2(0x80e)],c===void 0x0&&(c=this[w2(0x258)]||0x0)):c=this['index'],this[w2(0x180)][c]===void 0x0&&(this['ids'][c]=this[w2(0x1f9)],this[w2(0x1f9)]+=0x1),this[w2(0x258)]=c,this[w2(0x180)][c];},pe[a0cH(0x598)][a0cH(0x73c)]=function(b){const w3=a0cH;var c={};for(var d in this[w3(0x180)])if(this[w3(0x180)][d]===b){c['id']=d,c['identifier']=this[w3(0x180)][d],delete this[w3(0x180)][d];break;}return c;},pe['prototype']['onmove']=function(b){var c=this;return c['onAny']('move',b),!0x1;},pe['prototype'][a0cH(0x624)]=function(b){var c=this;return c['onAny']('end',b),!0x1;},pe['prototype']['oncancel']=function(b){const w4=a0cH;var c=this;return c[w4(0x8f1)](w4(0x9b6),b),!0x1;},pe[a0cH(0x598)]['onAny']=function(b,c){const w5=a0cH;var d=this,f,g=w5(0x7ef)+b[w5(0x926)](0x0)[w5(0x290)]()+b[w5(0x791)](0x1);c=_c(c);var h=function(j,k,m){const w6=w5;m['ids'][w6(0x279)](k)>=0x0&&(m[g](j),j['_found_']=!0x0);},i=function(j){const w7=w5;f=d[w7(0x3e3)](j),Pr(d['collections'],h['bind'](null,j,f)),j['_found_']||d[w7(0x73c)](f);};return Pr(c,i),!0x1;},pe['prototype']['destroy']=function(){const w8=a0cH;var b=this;b[w8(0xa19)](!0x0),b[w8(0x180)]={},b['index']=0x0,b['collections']['forEach'](function(c){c['destroy']();}),b['off']();},pe[a0cH(0x598)][a0cH(0x4ec)]=function(b,c){const w9=a0cH;var d=this;if(d['collections']['indexOf'](c)<0x0)return!0x1;d[w9(0x52a)][w9(0x263)](d['collections'][w9(0x279)](c),0x1);};const ra=new pe(),Xu={'create':function(b){const wb=a0cH;return ra[wb(0x7db)](b);},'factory':ra};class eo{constructor(b){const wf=a0cH;C(this,'manager',null),C(this,wf(0x88c),!0x1),C(this,'currentDirection',null),C(this,'currentSpeed',0x0),C(this,wf(0x77d));if(!b['zone'])throw new Error('Missing\x20required\x20option:\x20zone');this[wf(0x77d)]={'size':0x64,'color':'#DDD','speedMultiplier':0x5,'threshold':0.2,'position':{'left':'50%','top':wf(0x842)},'onMove':()=>{},'onEnd':()=>{},'onUp':()=>{},'onDown':()=>{},...b},this[wf(0x64a)]();}['initialize'](){const wj=a0cH;this[wj(0x5af)](),this[wj(0x5f6)](),this['bindEvents']();}[a0cH(0x5af)](){const wk=a0cH,b=document[wk(0x558)]('div');b[wk(0x757)]='up-down-container';const f=document['createElement']('div');f[wk(0x757)]='btn\x20btn-top',f[wk(0x4da)]=wk(0x997);const g=document['createElement'](wk(0x4b6));g['className']=wk(0x711),g[wk(0x4da)]='<span\x20class=\x22svg\x22><svg\x20style=\x22width:\x2016px\x22\x20\x20t=\x221745992141596\x22\x20class=\x22icon\x22\x20viewBox=\x220\x200\x201024\x201024\x22\x20version=\x221.1\x22\x20xmlns=\x22http://www.w3.org/2000/svg\x22\x20p-id=\x223871\x22\x20width=\x2222\x22\x20height=\x2222\x22><path\x20d=\x22M512\x20950.855L0\x2073.141h1024z\x22\x20fill=\x22#dddddd\x22\x20p-id=\x223872\x22></path></svg></span>';let i,j;const k=()=>this[wk(0x77d)]['onUp'](),m=()=>this[wk(0x77d)]['onDown'](),p=()=>{k();const z=()=>{k(),i=requestAnimationFrame(z);};i=requestAnimationFrame(z);},v=()=>{cancelAnimationFrame(i);},w=z=>{z['preventDefault'](),m();const B=()=>{m(),j=requestAnimationFrame(B);};j=requestAnimationFrame(B);},x=z=>{z['preventDefault'](),cancelAnimationFrame(j);},y={'passive':!0x1};f['addEventListener'](wk(0x284),p,y),f[wk(0x1f6)]('touchstart',p,y),f['addEventListener']('mouseup',v,y),f[wk(0x1f6)]('mouseleave',v,y),f['addEventListener']('touchend',v,y),f['addEventListener'](wk(0x977),v,y),g['addEventListener']('mousedown',w,y),g[wk(0x1f6)]('touchstart',w,y),g['addEventListener'](wk(0x705),x,y),g['addEventListener']('mouseleave',x,y),g['addEventListener']('touchend',x,y),g[wk(0x1f6)](wk(0x977),x,y),b[wk(0x89a)](f),b[wk(0x89a)](g),this[wk(0x77d)]['zone']['appendChild'](b);}['createManager'](){const wm=a0cH,b=document[wm(0x558)](wm(0x4b6));b[wm(0x757)]=wm(0x96a),this['config'][wm(0x5f0)][wm(0x89a)](b),this[wm(0xad0)]=Xu[wm(0x7db)]({'zone':b,'mode':wm(0x8be),'restOpacity':0.8,'size':this['config']['size'],'color':this['config'][wm(0xa89)],'position':this[wm(0x77d)][wm(0x3e0)],'threshold':this[wm(0x77d)]['threshold']});}['bindEvents'](){const wp=a0cH;this[wp(0xad0)]&&this[wp(0xad0)]['on']('move',(b,c)=>this[wp(0x3d4)](c))['on']('end',()=>this['handleEnd']());}['handleMove'](b){const wq=a0cH;if(!b['direction'])return;const c=b['angle']['degree'];this['currentDirection']=eo['getEightDirection'](c),this['currentSpeed']=b['force']*this['config'][wq(0x4bc)],this[wq(0x77d)][wq(0x888)](this[wq(0x9b7)],this['currentSpeed']),this['isMoving']||(this[wq(0x88c)]=!0x0,this['startAnimationLoop']());}['handleEnd'](){const wv=a0cH;this['isMoving']=!0x1,this[wv(0x146)]=0x0,this[wv(0x77d)][wv(0x24d)]();}['startAnimationLoop'](){const b=()=>{const ww=a0b;this[ww(0x88c)]&&(this['config']['onMove'](this['currentDirection'],this['currentSpeed']),requestAnimationFrame(b));};requestAnimationFrame(b);}['destroy'](){this['manager']&&(this['manager']['destroy'](),this['manager']=null),this['isMoving']=!0x1;}static['getEightDirection'](b){return b>=337.5||b<22.5?'right':b<67.5?'up_right':b<112.5?'up':b<157.5?'up_left':b<202.5?'left':b<247.5?'down_left':b<292.5?'down':'down_right';}[a0cH(0xa3e)](){const wx=a0cH;this[wx(0x77d)][wx(0x5f0)]['style']['display']===wx(0x6ab)?this[wx(0x77d)][wx(0x5f0)]['style']['display']=wx(0x310):this[wx(0x77d)]['zone'][wx(0x639)]['display']=wx(0x6ab);}[a0cH(0x913)](){const wy=a0cH;this[wy(0x77d)][wy(0x5f0)]['style'][wy(0x9e9)]='none';}['show'](){const wz=a0cH;this['config'][wz(0x5f0)][wz(0x639)]['display']=wz(0x310);}[a0cH(0x3bf)](){const wB=a0cH;this[wB(0x77d)]['zone']['style'][wB(0x9e9)];}}class $u{constructor(b=0x1){const wC=a0cH;C(this,wC(0x18b)),C(this,wC(0x29f)),C(this,'isVisible'),(this['size']=b,this[wC(0x29f)]=new a0ay(),this['group'][wC(0x587)]=wC(0x6f5),this[wC(0x249)]());}[a0cH(0x249)](){const wD=a0cH;this[wD(0xb19)](new a0c(this[wD(0x18b)],0x0,0x0),0xff6666),this[wD(0xb19)](new a0c(0x0,this['size'],0x0),0x6666ff),this[wD(0xb19)](new a0c(0x0,0x0,-this['size']),0x66bb66),this['createAxis'](new a0c(-this[wD(0x18b)],0x0,0x0),0xffaaaa,!0x0),this[wD(0xb19)](new a0c(0x0,-this[wD(0x18b)],0x0),0xccccff,!0x0),this[wD(0xb19)](new a0c(0x0,0x0,this['size']),0x99dd99,!0x0);}['createAxis'](b,d,f=!0x1){const wE=a0cH,g=[new a0c(0x0,0x0,0x0),b],h=new a0j()[wE(0x298)](g);let i;f?i=new a0bl({'color':d,'dashSize':0.1,'gapSize':0.1,'linewidth':0x1}):i=new a0i({'color':d,'linewidth':0x1});const j=new a0ao(h,i);this['group']['add'](j);}['toggle'](){const wF=a0cH;return this['isVisible']=!this[wF(0x3bf)],this[wF(0x29f)][wF(0x921)]=this['isVisible'],this[wF(0x3bf)];}['getObject'](){const wG=a0cH;return this[wG(0x29f)];}['setVisible'](b){const wH=a0cH;this[wH(0x29f)][wH(0x921)]=b;}['dispose'](){this['group']['traverse'](b=>{const wI=a0b;b instanceof a0ao&&(b[wI(0x45e)]['dispose'](),b[wI(0xb87)]['dispose']());});}}var Et;(function(b){const wJ=a0cH;b[wJ(0x706)]=wJ(0xae4),b[wJ(0x2e1)]=wJ(0x622),b[wJ(0x440)]=wJ(0x853);}(Et||(Et={})));class Zu{constructor(){this['_listeners']={};}[a0cH(0x1f6)](b,c){const wK=a0cH,d=this[wK(0x1b3)];d[b]===void 0x0&&(d[b]=[]),d[b]['indexOf'](c)===-0x1&&d[b]['push'](c);}[a0cH(0x293)](b,c){const wL=a0cH,d=this['_listeners'][b];if(d!==void 0x0){const f=d[wL(0x279)](c);f!==-0x1&&d[wL(0x263)](f,0x1);}}[a0cH(0x4a8)](b){const wM=a0cH,c=this['_listeners'][b[wM(0x223)]];if(c!==void 0x0){b['target']=this;const d=c['slice'](0x0);for(let e=0x0,f=d['length'];e<f;e++)d[e]['call'](this,b);}}}class eg extends Zu{constructor(b){const wN=a0cH;super(),this[wN(0x945)]=!0x0,this[wN(0x2a4)]=!0x1,this['_intervalId']=-0x1,this['_deltaTime']=0x0,this[wN(0x1d2)]=0x0,this['_lastTime']=0x0,this['_holdStart']=c=>{const wO=wN;if(!this['_enabled']||this['_holding'])return;this[wO(0x466)]=0x0,this['_elapsedTime']=0x0,this['_lastTime']=performance['now'](),this['dispatchEvent']({'type':Et['HOLD_START'],'deltaTime':this[wO(0x466)],'elapsedTime':this['_elapsedTime'],'originalEvent':c}),this[wO(0x2a4)]=!0x0;const d=()=>{const wP=wO;this['_intervalId']=this[wP(0x2c0)]?window[wP(0xb1f)](d,this['holdIntervalDelay']):window['requestAnimationFrame'](d);const f=performance[wP(0x371)]();this['_deltaTime']=f-this[wP(0x780)],this[wP(0x1d2)]+=this['_deltaTime'],this[wP(0x780)]=performance[wP(0x371)](),this[wP(0x4a8)]({'type':Et['HOLDING'],'deltaTime':this['_deltaTime'],'elapsedTime':this[wP(0x1d2)],'originalEvent':c});};this['_intervalId']=this['holdIntervalDelay']?window['setTimeout'](d,this['holdIntervalDelay']):window['requestAnimationFrame'](d);},this[wN(0x543)]=c=>{const wQ=wN;if(!this[wQ(0x945)]||!this[wQ(0x2a4)])return;const d=performance[wQ(0x371)]();this[wQ(0x466)]=d-this[wQ(0x780)],this['_elapsedTime']+=this[wQ(0x466)],this['_lastTime']=performance['now'](),this[wQ(0x4a8)]({'type':Et['HOLD_END'],'deltaTime':this[wQ(0x466)],'elapsedTime':this[wQ(0x1d2)],'originalEvent':c}),window['clearTimeout'](this[wQ(0x77f)]),window[wQ(0x76d)](this['_intervalId']),this['_holding']=!0x1;},this[wN(0x2c0)]=b;}get['enabled'](){return this['_enabled'];}set['enabled'](b){this['_enabled']!==b&&(this['_enabled']=b,this['_enabled']||this['_holdEnd']());}get['holding'](){const wR=a0cH;return this[wR(0x2a4)];}}class tg extends eg{constructor(b,c){const wS=a0cH;if(typeof b!='string'){console[wS(0x323)]('KeyboardKeyHold:\x20the\x20first\x20argument\x20has\x20to\x20be\x20a\x20KeyboardEvent.code\x20string.');return;}super(c),this['_holdStart']=this[wS(0xa1b)][wS(0x454)](this),this[wS(0x543)]=this['_holdEnd'][wS(0x454)](this);const d=g=>{const wT=wS;ig(g)||g['code']===b&&this[wT(0xa1b)](g);},f=g=>{const wU=wS;g[wU(0x9c5)]===b&&this[wU(0x543)](g);};document['addEventListener']('keydown',d),document['addEventListener'](wS(0xb56),f),window[wS(0x1f6)](wS(0x4a1),this[wS(0x543)]);}}function ig(b){const wV=a0cH,c=b[wV(0x427)];return c[wV(0x5fd)]==='INPUT'||c[wV(0x5fd)]==='SELECT'||c[wV(0x5fd)]==='TEXTAREA'||c[wV(0xba3)];}const sg=16.666,oa=0.05;class aa{constructor(b,c=[]){const wW=a0cH;C(this,wW(0x222)),C(this,'listeners'),C(this,'isEnabled'),C(this,wW(0x8d4)),C(this,'viewer');if(!b)throw new Error('ShortcutManager:\x20viewer不能为空');this['viewer']=b,this[wW(0x222)]=new Map(),this[wW(0x3ec)]=new Map(),this['isEnabled']=!0x0,this[wW(0x8d4)]=new on('ShortcutManager',{'minimumLevel':D['INFO']}),Array[wW(0x1d4)](c)&&c['length']>0x0&&c[wW(0x2cd)](d=>{const wX=wW;try{this[wX(0xb6c)](d);}catch(f){this['logger']['warn'](wX(0x45a),{'error':f,'config':d});}});}[a0cH(0x7c8)](b){const wY=a0cH;if(typeof b!=wY(0x199))throw new Error(wY(0xade));return c=>{const wZ=wY;if(this[wZ(0x471)]&&b)try{b(c);}catch(d){this['logger'][wZ(0x323)](wZ(0x64d),{'error':d,'event':c});}};}['getEventNameByType'](b){const x0=a0cH;switch(b){case x0(0x919):return Et['HOLDING'];case'press':return Et['HOLD_START'];case x0(0x9b6):return Et['HOLD_END'];default:return this['logger']['warn']('未知的快捷键类型,使用默认hold类型',{'type':b}),Et[x0(0x440)];}}[a0cH(0xb6c)](b){const x1=a0cH;if(!b)throw new Error('addShortcut:\x20config不能为空');if(typeof b[x1(0x782)]!='string'||!b['key'][x1(0x7e5)]())throw new Error('addShortcut:\x20key必须是非空字符串');if(typeof b[x1(0xaca)]!=x1(0x199))throw new Error('addShortcut:\x20callback必须是函数');b['interval']!==void 0x0&&(typeof b[x1(0x7ec)]!=x1(0x7ca)||b['interval']<=0x0)&&this[x1(0x8d4)][x1(0x637)](x1(0x40c),{'key':b['key'],'interval':b[x1(0x7ec)]}),b[x1(0x223)]&&!['hold',x1(0x256),'end']['includes'](b['type'])&&this['logger']['warn']('addShortcut:\x20type无效,使用默认值',{'key':b['key'],'type':b['type']});const {key:d,callback:f,interval:g=sg,type:i=x1(0x919)}=b;try{let j=this['shortcuts'][x1(0x20c)](d);j||(j=new tg(d,g),this['shortcuts']['set'](d,j));const k=this['getEventNameByType'](i),m=this[x1(0x7c8)](f);j[x1(0x1f6)](k,m);const p=this[x1(0x3ec)][x1(0x20c)](d)||[];p['push']({'type':i,'eventName':k,'wrappedCallback':m}),this[x1(0x3ec)]['set'](d,p),this[x1(0x8d4)]['debug']('添加快捷键成功',{'key':d,'type':i,'eventName':k});}catch(u){throw this['logger'][x1(0x323)](x1(0x592),{'error':u,'config':b}),u;}}[a0cH(0x43f)](b,c){const x2=a0cH;if(typeof b!=x2(0xb0b)||!b[x2(0x7e5)]()){this[x2(0x8d4)]['warn'](x2(0x36d),{'key':b});return;}if(c&&!['hold',x2(0x256),x2(0x9b6)][x2(0x36a)](c)){this[x2(0x8d4)]['warn'](x2(0x83d),{'key':b,'type':c});return;}const d=this[x2(0x222)][x2(0x20c)](b);if(!d){this['logger'][x2(0x7d1)](x2(0x1d5),{'key':b});return;}try{const f=(this[x2(0x3ec)][x2(0x20c)](b)||[])[x2(0x781)](g=>{const x3=x2;if(c===void 0x0||g[x3(0x223)]===c){try{d['removeEventListener'](g[x3(0x1a1)],g['wrappedCallback']),this['logger']['debug']('移除快捷键监听器',{'key':b,'type':g[x3(0x223)]});}catch(h){this[x3(0x8d4)]['warn'](x3(0x16d),{'error':h,'key':b,'type':g[x3(0x223)]});}return!0x1;}return!0x0;});f['length']===0x0?(this['shortcuts']['delete'](b),this[x2(0x3ec)][x2(0xa16)](b),this['logger'][x2(0x7d1)](x2(0x59c),{'key':b})):(this['listeners'][x2(0x46c)](b,f),this['logger']['debug']('部分移除快捷键监听器',{'key':b,'removedType':c,'remainingCount':f[x2(0x576)]}));}catch(g){this['logger'][x2(0x323)](x2(0x368),{'error':g,'key':b,'type':c});}}[a0cH(0x856)](b){const x4=a0cH;if(typeof b!=x4(0xad8)){this[x4(0x8d4)]['warn']('toggleShortcuts:\x20enabled必须是布尔值',{'enabled':b});return;}const c=this['isEnabled'];this['isEnabled']=b,this['logger'][x4(0x7d1)]('切换快捷键状态',{'previousState':c,'newState':b});}[a0cH(0xb2f)](){const x5=a0cH;return this[x5(0x471)];}[a0cH(0x215)](){const x6=a0cH;try{this[x6(0x222)]['forEach']((b,c)=>{const x7=x6;(this[x7(0x3ec)][x7(0x20c)](c)||[])['forEach'](d=>{const x8=x7;try{b[x8(0x293)](d['eventName'],d[x8(0xb91)]);}catch(f){this['logger'][x8(0x637)]('清除快捷键监听器失败',{'error':f,'key':c});}});}),this[x6(0x222)]['clear'](),this[x6(0x3ec)]['clear'](),this['logger'][x6(0x404)]('清除所有快捷键成功');}catch(b){this['logger'][x6(0x323)]('清除所有快捷键失败',{'error':b});}}[a0cH(0x212)](){const x9=a0cH;if(!this['viewer']){this['logger']['error']('setupDefaultControls:\x20viewer未初始化');return;}this[x9(0x651)]['controls']||this[x9(0x8d4)]['warn']('setupDefaultControls:\x20controls未初始化,部分快捷键可能无法工作');try{['KeyW','KeyA','KeyS',x9(0x50f),'KeyR',x9(0x2bd),'KeyE','KeyQ'][x9(0x2cd)](c=>{const xf=x9;try{this['addShortcut']({'key':c,'type':'press','callback':()=>{const xb=a0b;this['viewer']&&(this['viewer'][xb(0x7ff)]=!0x1);}}),this['addShortcut']({'key':c,'type':'end','callback':()=>{this['viewer']&&(this['viewer']['needUpdatePivotPoint']=!0x0);}});}catch(d){this[xf(0x8d4)]['warn'](xf(0x4a6),{'error':d,'key':c});}});const b=[{'key':'KeyW','type':'hold','callback':c=>{const xj=x9;this['viewer']?.[xj(0x7b4)]&&typeof this['viewer']['controlSpeed']=='number'&&c?.['deltaTime']&&this[xj(0x651)][xj(0x7b4)]['forward'](this[xj(0x651)][xj(0x5bc)]*c['deltaTime'],!0x1);}},{'key':'KeyS','type':'hold','callback':c=>{const xk=x9;this['viewer']?.['controls']&&typeof this[xk(0x651)]['controlSpeed']=='number'&&this[xk(0x651)]['controls']['forward'](-this[xk(0x651)][xk(0x5bc)]*c[xk(0xa9d)],!0x1);}},{'key':'KeyA','type':'hold','callback':c=>{const xm=x9;this['viewer']?.[xm(0x7b4)]&&typeof this['viewer'][xm(0x5bc)]==xm(0x7ca)&&this[xm(0x651)]['controls'][xm(0xb24)](-this['viewer'][xm(0x5bc)]*c['deltaTime'],0x0,!0x1);}},{'key':x9(0x50f),'type':x9(0x919),'callback':c=>{const xp=x9;this[xp(0x651)]?.['controls']&&typeof this['viewer'][xp(0x5bc)]=='number'&&this['viewer']['controls']['truck'](this[xp(0x651)]['controlSpeed']*c['deltaTime'],0x0,!0x1);}},{'key':'ArrowUp','type':'hold','callback':c=>{const xq=x9;this[xq(0x651)]?.[xq(0x7b4)]&&typeof this[xq(0x651)][xq(0x5bc)]==xq(0x7ca)&&this['viewer']['controls'][xq(0x5d0)](this['viewer']['controlSpeed']*c['deltaTime'],!0x1);}},{'key':'KeyR','type':'hold','callback':c=>{const xv=x9;this[xv(0x651)]?.[xv(0x7b4)]&&typeof this[xv(0x651)]['controlSpeed']==xv(0x7ca)&&this[xv(0x651)]['controls']['elevate'](this[xv(0x651)][xv(0x5bc)]*c['deltaTime'],!0x1);}},{'key':x9(0x2bd),'type':'hold','callback':c=>{const xw=x9;this[xw(0x651)]?.['controls']&&typeof this[xw(0x651)]['controlSpeed']==xw(0x7ca)&&this['viewer']['controls']['elevate'](-this[xw(0x651)][xw(0x5bc)]*c[xw(0xa9d)],!0x1);}},{'key':'ArrowDown','type':'hold','callback':c=>{const xx=x9;this[xx(0x651)]?.[xx(0x7b4)]&&typeof this[xx(0x651)]['controlSpeed']=='number'&&this['viewer']['controls'][xx(0x5d0)](-this['viewer'][xx(0x5bc)]*c[xx(0xa9d)],!0x1);}},{'key':'KeyE','type':x9(0x919),'callback':c=>{const xy=x9;this['viewer']?.[xy(0x7b4)]&&this['viewer']['setOrbitPointByCamera']&&c?.['deltaTime']&&(this[xy(0x651)][xy(0x7a4)](),this[xy(0x651)][xy(0x7b4)][xy(0xb8b)](-oa*a0A['DEG2RAD']*c['deltaTime'],0x0,!0x1));}},{'key':x9(0x645),'type':x9(0x919),'callback':c=>{const xz=x9;this['viewer']?.['controls']&&this['viewer'][xz(0x7a4)]&&c?.[xz(0xa9d)]&&(this['viewer'][xz(0x7a4)](),this['viewer']['controls']['rotate'](oa*a0A['DEG2RAD']*c[xz(0xa9d)],0x0,!0x1));}}];this['addShortcut']({'key':'Space','type':'press','callback':()=>{const xB=x9;this['viewer']?.['zoomRange']&&this['viewer'][xB(0x197)](!0x0);}}),this['addShortcut']({'key':'Digit1','type':x9(0x256),'callback':()=>{const xC=x9;this[xC(0x651)]?.[xC(0x841)]&&this['viewer'][xC(0x841)]('top');}}),this[x9(0xb6c)]({'key':'Digit2','type':x9(0x256),'callback':()=>{const xD=x9;this['viewer']?.[xD(0x841)]&&this[xD(0x651)]['cameraView'](xD(0xb9a));}}),b['forEach'](c=>{const xE=x9;try{this[xE(0xb6c)](c);}catch(d){this[xE(0x8d4)]['warn']('设置持续触发快捷键失败',{'error':d,'config':c});}}),this['logger']['info'](x9(0xa60),{'totalShortcuts':this['shortcuts']['size']});}catch(c){this[x9(0x8d4)][x9(0x323)]('设置默认控制快捷键失败',{'error':c});}}}class ng{constructor(b){const xF=a0cH;this['secretKey']=b||xF(0x23b);}[a0cH(0x2be)](b,d){const xG=a0cH;try{const f=this[xG(0x85c)](b),[g,i]=f[xG(0x704)]('|'),j=this['_simpleHash'](g+this['secretKey']);if(i!==j)return{'valid':!0x1,'message':'0'};const k=JSON[xG(0x20f)](g),m=new Date(),p=new Date(k['expiry']);return m>p?{'valid':!0x1,'message':'4','data':k}:d&&k[xG(0x2ff)]!=='*'&&d!=xG(0xb9d)&&!k['domains'][xG(0x704)](',')['some'](v=>v[xG(0x316)]('*.')?d['endsWith'](v[xG(0x791)](0x1)):d===v)?{'valid':!0x1,'message':'3','data':k}:{'valid':!0x0,'message':'2','data':k};}catch{return{'valid':!0x1,'message':'1'};}}[a0cH(0x85c)](b){return decodeURIComponent(escape(atob(b)));}['_simpleHash'](b){const xH=a0cH;let c=0x0;for(let d=0x0;d<b['length'];d++){const f=b['charCodeAt'](d);c=(c<<0x5)-c+f,c=c&c;}return c[xH(0xa82)](0x10);}}const rg=['B','kB','MB','GB','TB','PB','EB','ZB','YB'],og=['B','KiB','MiB',a0cH(0x9c9),'TiB','PiB','EiB',a0cH(0x590),'YiB'],ag=['b','kbit','Mbit',a0cH(0x3fe),'Tbit',a0cH(0x7b6),'Ebit',a0cH(0x71a),a0cH(0x7f5)],cg=['b','kibit',a0cH(0x519),'Gibit','Tibit',a0cH(0xb0d),a0cH(0x193),'Zibit',a0cH(0x824)],ca=(b,c,d)=>{const xI=a0cH;let f=b;return typeof c=='string'||Array['isArray'](c)?f=b['toLocaleString'](c,d):(c===!0x0||d!==void 0x0)&&(f=b[xI(0x5b3)](void 0x0,d)),f;};function la(b,d){const xJ=a0cH;if(!Number[xJ(0x565)](b))throw new TypeError(xJ(0x49d)+typeof b+':\x20'+b);d={'bits':!0x1,'binary':!0x1,'space':!0x0,...d};const f=d[xJ(0xa9b)]?d['binary']?cg:ag:d['binary']?og:rg,g=d['space']?'\x20':'';if(d['signed']&&b===0x0)return'\x200'+g+f[0x0];const i=b<0x0,j=i?'-':d[xJ(0x190)]?'+':'';i&&(b=-b);let k;if(d['minimumFractionDigits']!==void 0x0&&(k={'minimumFractionDigits':d['minimumFractionDigits']}),d['maximumFractionDigits']!==void 0x0&&(k={'maximumFractionDigits':d['maximumFractionDigits'],...k}),b<0x1){const v=ca(b,d[xJ(0x765)],k);return j+v+g+f[0x0];}const m=Math['min'](Math['floor'](d['binary']?Math[xJ(0x60b)](b)/Math[xJ(0x60b)](0x400):Math['log10'](b)/0x3),f['length']-0x1);b/=(d[xJ(0xa22)]?0x400:0x3e8)**m,k||(b=b[xJ(0x1b5)](0x3));const p=ca(Number(b),d[xJ(0x765)],k),u=f[m];return j+p+g+u;}class lg{constructor(){const xK=a0cH;C(this,xK(0xa43),null),C(this,xK(0x305),[]);}[a0cH(0x681)](){const xL=a0cH;this['container']||(this[xL(0xa43)]=document['createElement'](xL(0x4b6)),this['container'][xL(0x757)]=xL(0x137),this[xL(0xa43)]['style'][xL(0x879)]='\x0a\x20\x20\x20\x20\x20\x20position:\x20fixed;\x0a\x20\x20\x20\x20\x20\x20top:\x2020px;\x0a\x20\x20\x20\x20\x20\x20left:\x2050%;\x0a\x20\x20\x20\x20\x20\x20transform:\x20translateX(-50%);\x0a\x20\x20\x20\x20\x20\x20z-index:\x2010000;\x0a\x20\x20\x20\x20\x20\x20pointer-events:\x20none;\x0a\x20\x20\x20\x20',document[xL(0x3f4)]['appendChild'](this[xL(0xa43)]));}['show'](b){const xM=a0cH;if(this['initContainer'](),!this[xM(0xa43)])return;const {message:c,type:f=xM(0x404),duration:g=0xbb8,showClose:i=!0x1}=b,j=document[xM(0x558)]('div');j[xM(0x757)]=xM(0x829)+f,j[xM(0x639)]['cssText']=xM(0x406);const k={'success':{'borderLeft':xM(0xbac),'icon':'✓'},'warning':{'borderLeft':xM(0x2d9),'icon':'⚠'},'info':{'borderLeft':'4px\x20solid\x20#409eff','icon':'ℹ'},'error':{'borderLeft':'4px\x20solid\x20#f56c6c','icon':'✕'}}[f];j[xM(0x639)]['borderLeft']=k['borderLeft'];const m=document['createElement'](xM(0x96b));m['className']='bmv-message-icon',m[xM(0x904)]=k[xM(0x8ce)],m['style']['cssText']='\x0a\x20\x20\x20\x20\x20\x20margin-right:\x2010px;\x0a\x20\x20\x20\x20\x20\x20font-size:\x2018px;\x0a\x20\x20\x20\x20\x20\x20font-weight:\x20bold;\x0a\x20\x20\x20\x20\x20\x20color:\x20'+(f==='success'?'#67c23a':f===xM(0x18a)?'#e6a23c':f===xM(0x323)?xM(0x582):'#409eff')+';\x0a\x20\x20\x20\x20';const p=document[xM(0x558)]('span');if(p['className']='bmv-message-content',p[xM(0x904)]=c,p[xM(0x639)]['cssText']='\x0a\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20font-size:\x2014px;\x0a\x20\x20\x20\x20\x20\x20color:\x20#606266;\x0a\x20\x20\x20\x20\x20\x20line-height:\x201.5;\x0a\x20\x20\x20\x20',i){const u=document['createElement'](xM(0x96b));u[xM(0x757)]=xM(0x412),u['innerHTML']='×',u[xM(0x639)]['cssText']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20margin-left:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2020px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#909399;\x0a\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20transition:\x20color\x200.2s;\x0a\x20\x20\x20\x20\x20\x20',u[xM(0xa5c)]=()=>{const xN=xM;u[xN(0x639)][xN(0xa89)]=xN(0xa75);},u['onmouseleave']=()=>{const xO=xM;u[xO(0x639)][xO(0xa89)]=xO(0xb7e);},u['onclick']=()=>{const xP=xM;this[xP(0x73d)](j);},j[xM(0x89a)](u);}j['appendChild'](m),j[xM(0x89a)](p),this['container'][xM(0x89a)](j),this[xM(0x305)][xM(0x50e)](j),g>0x0&&setTimeout(()=>{this['close'](j);},g);}['close'](b){const xQ=a0cH;!this[xQ(0xa43)]||!b[xQ(0x909)]||(b['style']['animation']=xQ(0x570),b[xQ(0x639)][xQ(0xab5)]='0',b[xQ(0x639)]['transform']=xQ(0xba6),setTimeout(()=>{const xR=xQ;b[xR(0x909)]&&b[xR(0x909)][xR(0x7f7)](b);const c=this[xR(0x305)]['indexOf'](b);c>-0x1&&this[xR(0x305)][xR(0x263)](c,0x1);},0x12c));}[a0cH(0x43a)](){const xS=a0cH;this[xS(0x305)][xS(0x2cd)](b=>this['close'](b));}}const ai=new lg(),Pe={'success':(b,c)=>{const xT=a0cH;ai[xT(0x28a)]({'message':b,'type':'success','duration':c});},'warning':(b,c)=>{const xU=a0cH;ai[xU(0x28a)]({'message':b,'type':xU(0x18a),'duration':c});},'info':(b,c)=>{const xV=a0cH;ai[xV(0x28a)]({'message':b,'type':'info','duration':c});},'error':(b,c)=>{const xW=a0cH;ai['show']({'message':b,'type':xW(0x323),'duration':c});},'show':b=>{const xX=a0cH;ai[xX(0x28a)](b);},'closeAll':()=>{const xY=a0cH;ai[xY(0x43a)]();}};if(!document['getElementById']('bmv-message-styles')){const a=document[a0cH(0x558)]('style');a['id']=a0cH(0x6f3),a[a0cH(0x904)]='\x0a\x20\x20\x20\x20@keyframes\x20bmv-message-fade-in\x20{\x0a\x20\x20\x20\x20\x20\x20from\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20transform:\x20translateY(-20px);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20to\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20transform:\x20translateY(0);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20@keyframes\x20bmv-message-fade-out\x20{\x0a\x20\x20\x20\x20\x20\x20from\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20transform:\x20translateY(0);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20to\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20transform:\x20translateY(-20px);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a\x20\x20',document[a0cH(0x710)]['appendChild'](a);}const ci=0xa,zs=0xf,ha=0xf,Aa=0x28,hg=0xc8;class Se extends a0bm{constructor(b){const xZ=a0cH;super(),C(this,'_isRunning',!0x1),C(this,'_isActive',!0x1),C(this,'_viewer'),C(this,'_options',{'unit':'m'}),C(this,'_isMouseDown',!0x1),C(this,'_mouseDownTarget',null),C(this,'_isDragging',!0x1),C(this,'_startY',0x0),C(this,'_startX',0x0),C(this,xZ(0x7a1)),C(this,'_tooltip',''),C(this,'tooltipElement',null),C(this,'_helperTip',''),C(this,'helperTipElement',null),C(this,xZ(0x264)),C(this,xZ(0x19c)),C(this,'message'),(this[xZ(0x38f)]=b,this[xZ(0x1fc)]=this[xZ(0x1fc)]['bind'](this),this[xZ(0x7b8)]=this[xZ(0x7b8)]['bind'](this),this[xZ(0x85d)]=this['onMouseUpRaw']['bind'](this),this[xZ(0x34a)]=this[xZ(0x34a)]['bind'](this),this[xZ(0x5b5)]=this['onTouchMoveRaw']['bind'](this),this['onTouchEndRaw']=this['onTouchEndRaw']['bind'](this),this['onTouchCancelRaw']=this[xZ(0xb57)]['bind'](this),this['initTooltipElement'](),this[xZ(0x1b9)](),this[xZ(0x264)]=new ne({'color':0xff0000,'depthTest':!0x1,'linewidth':2.5,'opacity':0.55,'resolution':new a0l(window[xZ(0xbae)],window['innerHeight'])}),this['planeMaterial']=new a0g({'color':0x377ee8,'depthTest':!0x1,'side':a0at,'transparent':!0x0,'opacity':0.4}),this[xZ(0x98d)]=Pe);}['isMobileDevice'](){const y0=a0cH;return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i[y0(0x805)](navigator['userAgent'])||y0(0x444)in window;}[a0cH(0x2e2)](){const y1=a0cH;this['tooltipElement']=document[y1(0x558)]('div'),this[y1(0x6af)][y1(0x757)]='tool-tooltip';const b=this[y1(0x5e5)]();Object['assign'](this['tooltipElement'][y1(0x639)],{'position':y1(0x57c),'pointerEvents':y1(0x6ab),'padding':b?'8px\x2014px':'6px\x2012px','backgroundColor':'rgba(0,\x200,\x200,\x200.85)','color':y1(0x684),'borderRadius':'8px','fontSize':b?y1(0x792):'13px','fontWeight':y1(0x957),'zIndex':'1000','display':'none','boxShadow':'0\x204px\x2012px\x20rgba(0,\x200,\x200,\x200.3),\x200\x200\x200\x201px\x20rgba(255,\x20255,\x20255,\x200.1)','backdropFilter':'blur(10px)','transition':y1(0x21a),'whiteSpace':y1(0x37b),'userSelect':'none','WebkitUserSelect':'none','touchAction':'none'}),this['viewer']['el'][y1(0x89a)](this[y1(0x6af)]);}['initHelperTipElement'](){const y2=a0cH;this[y2(0x9df)]=document[y2(0x558)]('div'),this['helperTipElement'][y2(0x757)]=y2(0x153);const b=this[y2(0x5e5)]();Object['assign'](this[y2(0x9df)]['style'],{'position':'absolute','pointerEvents':y2(0x6ab),'padding':b?y2(0x640):'4px\x208px','backgroundColor':y2(0x3b8),'color':y2(0x6df),'borderRadius':'4px','fontSize':b?'12px':'11px','fontWeight':y2(0x346),'zIndex':'999','display':'none','boxShadow':y2(0x5ea),'backdropFilter':y2(0x1c7),'whiteSpace':y2(0x37b),'userSelect':'none','WebkitUserSelect':'none','touchAction':y2(0x6ab)}),this[y2(0x651)]['el']['appendChild'](this[y2(0x9df)]);}set['tooltip'](b){const y3=a0cH;this[y3(0x50a)]=b,this[y3(0x6af)]&&(this[y3(0x6af)][y3(0x904)]=b,b?(this['tooltipElement'][y3(0x639)]['display']=y3(0x310),this['tooltipElement'][y3(0x639)]['opacity']='0',requestAnimationFrame(()=>{const y4=y3;this[y4(0x6af)]&&(this['tooltipElement'][y4(0x639)][y4(0xab5)]='1',this[y4(0x6af)][y4(0x639)]['transform']='translateY(0)');})):(this['tooltipElement']['style'][y3(0xab5)]='0',this[y3(0x6af)][y3(0x639)][y3(0xb0c)]='translateY(-5px)',setTimeout(()=>{const y5=y3;this['tooltipElement']&&!this[y5(0x50a)]&&(this[y5(0x6af)]['style'][y5(0x9e9)]='none');},hg)));}get['tooltip'](){return this['_tooltip'];}set[a0cH(0x98e)](b){const y6=a0cH;this['_helperTip']=b,this[y6(0x9df)]&&(this[y6(0x9df)]['textContent']=b,b?(this[y6(0x9df)]['style'][y6(0x9e9)]='block',this['helperTipElement']['style'][y6(0xab5)]='0',requestAnimationFrame(()=>{const y7=y6;this[y7(0x9df)]&&(this[y7(0x9df)]['style'][y7(0xab5)]=y7(0x838),this[y7(0x9df)][y7(0x639)][y7(0xb0c)]=y7(0x54e));})):(this[y6(0x9df)]['style'][y6(0xab5)]='0',this['helperTipElement'][y6(0x639)][y6(0xb0c)]=y6(0xaf3),this['helperTipElement']&&!this[y6(0x40b)]&&(this['helperTipElement'][y6(0x639)]['display']=y6(0x6ab))));}get[a0cH(0x98e)](){return this['_helperTip'];}get[a0cH(0x433)](){return this['_isRunning'];}get[a0cH(0x24e)](){const y8=a0cH;return this[y8(0x2af)];}get[a0cH(0xa3c)](){return this['_options'];}get['unit'](){return this['_options']['unit'];}get['viewer'](){return this['_viewer'];}get['camera'](){const y9=a0cH;return this['_viewer'][y9(0x3e2)];}get['scene'](){return this['_viewer']['scene'];}get['renderer'](){const yb=a0cH;return this['_viewer']?.[yb(0x976)];}get['controls'](){const yf=a0cH;return this[yf(0x38f)]?.[yf(0x7b4)];}['isShiftPressed'](b){return b?b['shiftKey']:window['event']?.['shiftKey']||!0x1;}['startTool'](){const yj=a0cH;return this['_isRunning']?(console['warn']('[Tool]\x20工具已在运行中,拒绝重复启动'),!0x1):(this[yj(0x3ce)]=!0x0,this['tooltip']=yj(0x5c7),this['dispatchEvent']({'type':yj(0x8ec),'tool':this}),!0x0);}[a0cH(0x37e)](){const yk=a0cH;this[yk(0x3ce)]&&(this['_isRunning']=!0x1,this['dispatchEvent']({'type':'stop','tool':this}),this[yk(0x531)]='');}['hideTooltip'](){const ym=a0cH;this['tooltipElement']&&(this['tooltipElement']['style']['display']=ym(0x6ab));}[a0cH(0xab3)](){const yp=a0cH;this[yp(0x9df)]&&(this[yp(0x9df)]['style'][yp(0x9e9)]=yp(0x6ab));}[a0cH(0x1fc)](b){const yq=a0cH;if(!this[yq(0x2af)]||this['_isRunning'])return;const c=this['viewer']?.[yq(0x72f)]?.[yq(0x5d9)](),d=new a0l();c&&(d['x']=b[yq(0xa4c)]-c[yq(0x4d1)],d['y']=b[yq(0x6f9)]-c['top']),this[yq(0x169)]=b[yq(0xa4c)],this[yq(0x304)]=b[yq(0x6f9)],this['_isDragging']=!0x1;const f={'tool':this,'unit':this['unit'],'canvasRect':c,'screen':{'point':d}};this[yq(0x56d)]=!0x0,this['_mouseDownTarget']=b['target'],this['onMouseDown'](b,f);}['onMouseDown'](b,c){}[a0cH(0x7b8)](b){const yv=a0cH,d=b[yv(0x427)],f=this['viewer']?.['canvas'];if(!f||d!==f&&!f['contains'](d)){this[yv(0x1b0)](),this['hideHelperTip']();return;}const g=this[yv(0x651)]?.[yv(0x72f)]?.['getBoundingClientRect'](),h=new a0l();g&&(h['x']=b[yv(0xa4c)]-g['left'],h['y']=b['clientY']-g[yv(0x2a9)]),(Math[yv(0x2f1)](b[yv(0xa4c)]-this['_startX'])>ci||Math['abs'](b['clientY']-this['_startY'])>ci)&&(this[yv(0x458)]=!0x0,b[yv(0x3c7)]=!0x0),this['updateTooltipPosition'](b['clientX'],b[yv(0x6f9)]),this['updateHelperTipPosition'](b[yv(0xa4c)],b[yv(0x6f9)]);const i={'tool':this,'unit':this['unit'],'canvasRect':g,'screen':{'point':h}};this[yv(0x809)](b,i);}['updateTooltipPosition'](b,d){const yw=a0cH;if(!this[yw(0x6af)]||!this[yw(0x50a)])return;this['tooltipElement']['style']['display']='block',this[yw(0x6af)][yw(0x639)][yw(0xab5)]='1',this[yw(0x6af)][yw(0x639)]['transform']=yw(0x17b);const f=this['tooltipElement']['getBoundingClientRect'](),g=window[yw(0xbae)],h=window[yw(0x9d3)];let i=b+zs,j=d+ha;i+f['width']>g&&(i=b-f[yw(0x69c)]-zs),j+f['height']>h&&(j=d-f['height']-ha),this[yw(0x6af)][yw(0x639)]['left']=i+'px',this['tooltipElement'][yw(0x639)][yw(0x2a9)]=j+'px';}[a0cH(0x255)](b,d){const yx=a0cH;if(!this[yx(0x9df)]||!this[yx(0x40b)])return;this[yx(0x9df)][yx(0x639)]['display']='block',this['helperTipElement'][yx(0x639)][yx(0xab5)]=yx(0x838),this[yx(0x9df)]['style']['transform']=yx(0x54e);const f=this['helperTipElement'][yx(0x5d9)](),g=window['innerWidth'],h=window[yx(0x9d3)];let i=b+zs,j=d+Aa;i+f['width']>g&&(i=b-f[yx(0x69c)]-zs),j+f['height']>h&&(j=d-f[yx(0x75a)]-Aa),this[yx(0x9df)][yx(0x639)][yx(0x4d1)]=i+'px',this[yx(0x9df)][yx(0x639)]['top']=j+'px';}['onMouseMove'](b,c){}['onMouseUpRaw'](b,d){const yy=a0cH,f=this[yy(0x651)]?.['canvas']?.['getBoundingClientRect'](),g=new a0l();f&&(g['x']=b['clientX']-f['left'],g['y']=b['clientY']-f[yy(0x2a9)]);const h=d?.[yy(0x70d)]||[],i={'tool':this,'unit':this[yy(0x46a)],'hits':h,'canvasRect':f,'screen':{'point':g}};this['onMouseUp'](b,i),this[yy(0x56d)]&&this['_mouseDownTarget']===b[yy(0x427)]&&b['button']===0x0&&!this['_isDragging']&&Math[yy(0x2f1)](b['clientX']-this['_startX'])<=ci&&Math[yy(0x2f1)](b['clientY']-this['_startY'])<=ci&&this['onClick'](b,i),this[yy(0x56d)]=!0x1,this['_mouseDownTarget']=null,this[yy(0x458)]=!0x1;}[a0cH(0x910)](b,c){}[a0cH(0x766)](b,c){}[a0cH(0x34a)](b){const yz=a0cH,d=this[yz(0x651)]?.[yz(0x72f)]?.[yz(0x5d9)](),f=new a0l();let g=0x0,h=0x0;if(d&&b['touches']['length']>0x0){const j=b[yz(0x275)][0x0];g=j[yz(0xa4c)],h=j['clientY'],f['x']=g-d[yz(0x4d1)],f['y']=h-d[yz(0x2a9)];}if(b['touches'][yz(0x576)]>0x0){const k=b[yz(0x275)][0x0];this['_startX']=k['clientX'],this[yz(0x304)]=k[yz(0x6f9)],this[yz(0x458)]=!0x1;}this['updateTooltipPosition'](g,h),this['updateHelperTipPosition'](g,h);const i={'tool':this,'unit':this[yz(0x46a)],'canvasRect':d,'screen':{'point':f}};this['onTouchStart'](b,i);}[a0cH(0x8ee)](b,c){}['onTouchMoveRaw'](b){const yB=a0cH,d=this['viewer']?.['canvas']?.['getBoundingClientRect'](),f=new a0l();let g=0x0,i=0x0;if(d&&b['touches'][yB(0x576)]>0x0){const k=b['touches'][0x0];g=k['clientX'],i=k['clientY'],f['x']=g-d[yB(0x4d1)],f['y']=i-d[yB(0x2a9)];const m=this[yB(0x5e5)]()?0x5:ci;(Math['abs'](g-this[yB(0x169)])>m||Math['abs'](i-this[yB(0x304)])>m)&&(this[yB(0x458)]=!0x0);}this['updateTooltipPosition'](g,i),this[yB(0x255)](g,i);const j={'tool':this,'unit':this['unit'],'canvasRect':d,'screen':{'point':f}};this[yB(0x3ed)](b,j);}[a0cH(0x3ed)](b,c){}['onTouchEndRaw'](b){const yC=a0cH,d=this[yC(0x651)]?.['canvas']?.[yC(0x5d9)](),f=new a0l();if(d&&b[yC(0x505)]['length']>0x0){const h=b[yC(0x505)][0x0];f['x']=h[yC(0xa4c)]-d[yC(0x4d1)],f['y']=h[yC(0x6f9)]-d['top'];}const g={'tool':this,'unit':this[yC(0x46a)],'canvasRect':d,'screen':{'point':f}};if(!this[yC(0x458)]&&b[yC(0x505)][yC(0x576)]>0x0){const i=b[yC(0x505)][0x0],j=this['isMobileDevice']()?0x5:ci;Math['abs'](i['clientX']-this[yC(0x169)])<=j&&Math['abs'](i[yC(0x6f9)]-this[yC(0x304)])<=j;}this[yC(0x458)]=!0x1,this[yC(0x169)]=0x0,this[yC(0x304)]=0x0,this[yC(0x13b)](b,g);}[a0cH(0x13b)](b,c){}['onTouchCancelRaw'](b){const yD=a0cH,c=this[yD(0x651)]?.['canvas']?.[yD(0x5d9)](),d={'tool':this,'unit':this['unit'],'canvasRect':c};this[yD(0x64f)](b,d);}[a0cH(0x64f)](b,c){}['showLoading'](){const yE=a0cH;if(document[yE(0x8fa)]('tool-loading-overlay'))return;const b=document[yE(0x558)](yE(0x4b6));b['id']='tool-loading-overlay',b[yE(0x639)]['cssText']='\x0a\x20\x20\x20\x20\x20\x20position:\x20fixed;\x0a\x20\x20\x20\x20\x20\x20top:\x200;\x0a\x20\x20\x20\x20\x20\x20left:\x200;\x0a\x20\x20\x20\x20\x20\x20right:\x200;\x0a\x20\x20\x20\x20\x20\x20bottom:\x200;\x0a\x20\x20\x20\x20\x20\x20background:\x20rgba(0,\x200,\x200,\x200.5);\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20z-index:\x2010001;\x0a\x20\x20\x20\x20\x20\x20cursor:\x20wait;\x0a\x20\x20\x20\x20';const c=document[yE(0x558)](yE(0x4b6));c['style'][yE(0x879)]='\x0a\x20\x20\x20\x20\x20\x20background:\x20#1e1e1e;\x0a\x20\x20\x20\x20\x20\x20color:\x20#e0e0e0;\x0a\x20\x20\x20\x20\x20\x20padding:\x2020px\x2040px;\x0a\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20gap:\x2010px;\x0a\x20\x20\x20\x20\x20\x20box-shadow:\x200\x204px\x2012px\x20rgba(0,\x200,\x200,\x200.3);\x0a\x20\x20\x20\x20';const d=document[yE(0x558)]('div');if(d['style'][yE(0x879)]='\x0a\x20\x20\x20\x20\x20\x20width:\x2040px;\x0a\x20\x20\x20\x20\x20\x20height:\x2040px;\x0a\x20\x20\x20\x20\x20\x20border:\x204px\x20solid\x20#377ee8;\x0a\x20\x20\x20\x20\x20\x20border-top:\x204px\x20solid\x20transparent;\x0a\x20\x20\x20\x20\x20\x20border-radius:\x2050%;\x0a\x20\x20\x20\x20\x20\x20animation:\x20tool-spin\x201s\x20linear\x20infinite;\x0a\x20\x20\x20\x20',!document[yE(0x8fa)]('tool-loading-style')){const g=document[yE(0x558)](yE(0x639));g['id']=yE(0xa9c),g[yE(0x904)]='\x0a\x20\x20\x20\x20\x20\x20\x20\x20@keyframes\x20tool-spin\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x200%\x20{\x20transform:\x20rotate(0deg);\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20100%\x20{\x20transform:\x20rotate(360deg);\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20',document[yE(0x710)]['appendChild'](g);}const f=document['createElement']('div');f[yE(0x904)]='加载中...',f['style'][yE(0x879)]='\x0a\x20\x20\x20\x20\x20\x20font-size:\x2014px;\x0a\x20\x20\x20\x20\x20\x20font-weight:\x20500;\x0a\x20\x20\x20\x20',c['appendChild'](d),c[yE(0x89a)](f),b['appendChild'](c),document['body']['appendChild'](b);}[a0cH(0x14b)](){const yF=a0cH,b=document['getElementById']('tool-loading-overlay');b&&document[yF(0x3f4)]['removeChild'](b);}[a0cH(0x446)](){const yG=a0cH;if(!this[yG(0x38f)]||!this['_viewer'][yG(0x7b4)])return{'success':!0x1,'message':'viewer未初始化'};const {x:b,y:d,z:f}=this['_viewer'][yG(0x7b4)]['getPosition'](),{x:g,y:h,z:i}=this[yG(0x38f)]['controls']['getTarget'](),j=[b,-f,d,g,-i,h]['map'](k=>parseFloat((k*39.3701)['toFixed'](0x3)));return j['push'](0x0),j[yG(0x50e)](0x0),j[yG(0x50e)](0x1),j['push'](this['_viewer'][yG(0x3e2)]?.[yG(0x389)]?0x1:0x0),j['push'](this[yG(0x38f)][yG(0x3e2)]?.['fov']||0x0),{'success':!0x0,'data':j[yG(0x84a)](':')};}async['restoreView'](b){const yH=a0cH;if(!this[yH(0x38f)]||!this[yH(0x38f)][yH(0x7b4)])return{'success':!0x1,'message':yH(0xaa1)};try{const c=b[yH(0x704)](':');return c[yH(0x576)]<0x6?{'success':!0x1,'message':yH(0x374)}:(await this[yH(0x38f)]['controls'][yH(0x2da)](0x0,0x0,0x0),this[yH(0x38f)]['controls']['setLookAt'](parseFloat(c[0x0])*0.0254,parseFloat(c[0x2])*0.0254,-parseFloat(c[0x1])*0.0254,parseFloat(c[0x3])*0.0254,parseFloat(c[0x5])*0.0254,-parseFloat(c[0x4])*0.0254,!0x0),{'success':!0x0});}catch(d){return console['error']('恢复视角失败:',d),{'success':!0x1,'message':'恢复视角失败'};}}['registerEventListeners'](){const yI=a0cH,b=this[yI(0x38f)]?.[yI(0x72f)];b&&(b[yI(0x1f6)](yI(0x284),this[yI(0x1fc)]),window['addEventListener']('mousemove',this[yI(0x7b8)]),this['viewer'][yI(0x1f6)]('mouseup',this['onMouseUpRaw']),b[yI(0x1f6)]('touchstart',this[yI(0x34a)],{'passive':!0x1}),b[yI(0x1f6)](yI(0x214),this['onTouchMoveRaw'],{'passive':!0x1}),b[yI(0x1f6)](yI(0xa01),this['onTouchEndRaw']),b['addEventListener'](yI(0x977),this['onTouchCancelRaw']));}[a0cH(0x7e3)](){const yJ=a0cH,b=this[yJ(0x38f)]?.['canvas'];b&&(b['removeEventListener'](yJ(0x284),this['onMouseDownRaw']),window['removeEventListener']('mousemove',this['onMouseMoveRaw']),this[yJ(0x651)]['removeEventListener'](yJ(0x705),this['onMouseUpRaw']),b['removeEventListener']('touchstart',this['onTouchStartRaw']),b[yJ(0x293)]('touchmove',this['onTouchMoveRaw']),b[yJ(0x293)]('touchend',this['onTouchEndRaw']),b[yJ(0x293)](yJ(0x977),this[yJ(0xb57)]));}[a0cH(0x959)](){const yK=a0cH;this[yK(0x777)](this['tooltipElement']),this[yK(0x6af)]=null,this[yK(0x777)](this[yK(0x9df)]),this['helperTipElement']=null;}[a0cH(0x777)](b){const yL=a0cH;b&&b['parentNode']&&b[yL(0x909)][yL(0x7f7)](b);}['activate'](b){const yM=a0cH;this['_isRunning']||this['_isActive']||(this[yM(0x2af)]=!0x0,this['_options']={...this[yM(0x7b7)],...b},this['registerEventListeners'](),this[yM(0x651)]['shortcutManager']['addShortcut']({'key':'Escape','type':yM(0x256),'callback':()=>{this['deactivate']();}}),this[yM(0x25f)](),this['cursor']&&this[yM(0x651)]['canvas'][yM(0xa47)][yM(0x644)](this['cursor']),this[yM(0x4a8)]({'type':yM(0xaaf),'tool':this}));}[a0cH(0x595)](){const yN=a0cH;this[yN(0x2af)]&&(this[yN(0x2af)]=!0x1,this['unregisterEventListeners'](),this['viewer'][yN(0x4eb)]['removeShortcut'](yN(0x4b4)),this['cursor']&&this[yN(0x651)][yN(0x72f)]['classList'][yN(0x1da)](this['cursor']),this['tooltipElement']&&(this['tooltipElement']['style'][yN(0x9e9)]=yN(0x6ab)),this['helperTipElement']&&(this[yN(0x9df)][yN(0x639)]['display']='none'),this['tooltip']='',this[yN(0x98e)]='',this['stopTool'](),this[yN(0x473)](),this['dispatchEvent']({'type':'deactivate','tool':this}));}['toggle'](b){const yO=a0cH;this[yO(0x2af)]?this['deactivate']():this['activate'](b);}[a0cH(0xa58)](){const yP=a0cH;this[yP(0x595)](),this[yP(0x959)]();}['on'](b,c){return this['addEventListener'](b,c),this;}['off'](b,c){const yQ=a0cH;return this[yQ(0x293)](b,c),this;}[a0cH(0x2f0)](b,c){const yR=a0cH;return this[yR(0x4a8)]({'type':b,'tool':this,...c}),this;}}class Ag extends Se{constructor(b){const yS=a0cH;super(b),C(this,'lists',[]),C(this,yS(0x835),[]),C(this,yS(0xb3d),!0x0),C(this,yS(0x9bd)),C(this,'sectionBoxHelper',null),C(this,'sectionBoxMesh',null),C(this,'sectionBoxGroup'),C(this,'isSectionBoxActive',!0x1),C(this,yS(0x654)),C(this,'isDragging',!0x1),C(this,yS(0x5d8),null),C(this,'slidersContainer',null),C(this,yS(0xba1),0x0),C(this,'planeSelect',null),C(this,yS(0x5d2),0x6),C(this,yS(0xa7d),0.012),C(this,'HIGHLIGHT_SCALE_FACTOR',0.25),C(this,'PLANE_CONSTANT_OFFSET',0.01),C(this,'PLANE_DUPLICATE_THRESHOLD',0.000001),C(this,yS(0xab8),0.9),C(this,'DEFAULT_PLANE_OPACITY',0.5),C(this,'CSS_CLASS_CLIP',yS(0x2e9)),(this['cursor']=this[yS(0x6d3)],this[yS(0x976)][yS(0x574)]=!0x0);}['onActivate'](){const yT=a0cH,b=new a0as(0x1,0x1);this['highlightPlane']=new a0e(b,this[yT(0x19c)]),this['highlightPlane']['visible']=!0x1,this['scene']['add'](this['highlightPlane']),this[yT(0x531)]=yT(0x312),this[yT(0x39e)]();}[a0cH(0x473)](){const yU=a0cH;this[yU(0x654)]&&this['scene'][yU(0x1da)](this[yU(0x654)]),this['removeUIPanel'](),this[yU(0x531)]='';}[a0cH(0x809)](b,c){const yV=a0cH;b[yV(0x3c7)]!==void 0x0&&(this[yV(0x3c7)]=b['isDragging']),this[yV(0x651)][yV(0x8d8)][yV(0x5f4)](this['viewer'][yV(0x177)],this[yV(0x651)][yV(0x3e2)]);const d=this[yV(0x651)][yV(0x8d8)]['intersectObjects'](Array[yV(0xb73)](this[yV(0x651)][yV(0x6c7)]));d['length']>0x0&&d[0x0]['face']?this['updateHighlightPlane'](d[0x0]):this[yV(0x654)]['visible']=!0x1;}[a0cH(0xba7)](b,c){const yW=a0cH;this[yW(0x3c7)]=!0x1;}['onMouseUp'](b,c){const yX=a0cH,{hits:d}=c;this[yX(0x654)][yX(0x921)]&&!this[yX(0x3c7)]&&d&&d[yX(0x576)]>0x0&&(this['createClippingPlaneFromHit'](d[0x0]),this['updateAllMaterials'](),this[yX(0xba1)]=this['clippingPlanes'][yX(0x576)]-0x1,this[yX(0x39e)]());}[a0cH(0xbb0)](b){const yY=a0cH;if(!b[yY(0xa73)])return;this['highlightPlane'][yY(0x921)]=!0x0;const c=b['face'][yY(0x186)]['clone']()[yY(0xa49)](this[yY(0xa7d)]);this['highlightPlane'][yY(0x3e0)][yY(0x195)](b['point']['clone']()['add'](c));const d=b['point']['clone']()[yY(0x644)](b[yY(0xa73)]['normal']);this['highlightPlane']['lookAt'](d);const f=this[yY(0x651)][yY(0x3e2)][yY(0x3e0)]['distanceTo'](b['point'])*this['HIGHLIGHT_SCALE_FACTOR'];this[yY(0x654)][yY(0x49b)][yY(0x46c)](f,f,0x1);}['createClippingPlaneFromHit'](b){const yZ=a0cH;if(!b['face']||!b['point'])return;const c=b[yZ(0xa73)][yZ(0x186)][yZ(0x8e8)]();if(b[yZ(0x8c0)]&&b[yZ(0x8c0)][yZ(0xa7c)]){const u=new a0ax()[yZ(0xafd)](b['object'][yZ(0xa7c)]);c['applyNormalMatrix'](u)[yZ(0x456)]();}const f=this['viewer']['boxCenter']||new a0c(0x0,0x0,0x0),i=b[yZ(0x21d)]['clone']()['sub'](f);c['dot'](i);const j=this['viewer']['camera']['position'][yZ(0x8e8)]()[yZ(0x480)](b['point']);j['normalize']();const k=c[yZ(0x24b)](j)>0x0?c['clone']()['negate']():c[yZ(0x8e8)](),m=k[yZ(0x8e8)]()['negate']()['multiplyScalar'](this['PLANE_CONSTANT_OFFSET']),p=b[yZ(0x21d)]['clone']()[yZ(0x644)](m),t=new a0aq();t[yZ(0x428)](k,p),this['addClippingPlaneByPlane'](t);}['activateSectionBox'](){const z0=a0cH;if(this[z0(0x37a)]){this[z0(0x9cf)]();return;}}['setConstantByPlaneRange'](b='x',d=0x0){const z1=a0cH;if(!this['sectionBox']){console['warn'](z1(0x385));return;}const f=this[z1(0x95d)](b);if(!f){console['warn']('[ModelClipperTool]\x20找不到对应的裁剪平面:\x20'+b);return;}const {min:g,max:h}=this['getAxisRange'](b),i=h-g,j=g+d*i;f[z1(0x3d5)]=j,this[z1(0x60c)]();}['getPlaneByType'](b){const c={'x':0x0,'-x':0x1,'y':0x2,'-y':0x3,'z':0x4,'-z':0x5}[b];return this['clippingPlanes'][c]||null;}[a0cH(0x4c8)](b){const z2=a0cH;switch(b){case'x':case'-x':return{'min':this[z2(0x9bd)][z2(0x2f8)]['x'],'max':this[z2(0x9bd)]['max']['x']};case'y':case'-y':return{'min':this['sectionBox']['min']['y'],'max':this[z2(0x9bd)][z2(0x894)]['y']};case'z':case'-z':return{'min':this['sectionBox']['min']['z'],'max':this[z2(0x9bd)][z2(0x894)]['z']};default:throw new Error('Unknown\x20plane\x20type:\x20'+b);}}['deactivateSectionBox'](){const z3=a0cH;this['isSectionBoxActive']&&(this[z3(0x6e4)]&&(this['scene']['remove'](this['sectionBoxGroup']),this['sectionBoxGroup']=null),this[z3(0x835)]=[],this['resetList'](),this[z3(0x366)](),this['sectionBox']=null,this[z3(0xbaf)]=null,this['sectionBoxMesh']=null,this['isSectionBoxActive']=!0x1);}['addClippingPlane'](b,c){const z4=a0cH;if(this['clippingPlanes']['length']>=this['MAX_CLIPPING_PLANES']){this[z4(0x98d)]['warning']('已达到最大剖切平面数量:\x20'+this[z4(0x5d2)]+',无法添加更多剖切面',0xbb8);return;}const d=new a0aq();return d['setFromNormalAndCoplanarPoint'](b,c),this['clippingPlanes'][z4(0x50e)](d),this['resetList'](),d;}[a0cH(0x187)](b){const z5=a0cH;if(this['clippingPlanes']['some'](c=>c[z5(0x186)][z5(0x61c)](b[z5(0x186)])&&Math['abs'](c['constant']-b['constant'])<this[z5(0x29c)]))return console['warn'](z5(0xa06)),b;if(this[z5(0x835)][z5(0x576)]>=this['MAX_CLIPPING_PLANES']){this[z5(0x98d)]['warning'](z5(0xb84)+this[z5(0x5d2)]+z5(0x504),0xbb8);return;}return this['clippingPlanes'][z5(0x50e)](b),this[z5(0x663)](),b;}[a0cH(0x663)](){const z6=a0cH;this[z6(0xa6f)]=[],this[z6(0x835)][z6(0x2cd)](b=>{const z7=z6;try{const {min:c,max:d}=ic(this['viewer'][z7(0x785)],b);this[z7(0xa6f)][z7(0x50e)]({'plane':b,'min':c,'max':d});}catch(f){console['error'](z7(0xa6c),f,b);}});}[a0cH(0x56f)](b){const z8=a0cH;b['clippingPlanes']=this['clippingPlanes'],b[z8(0x8a5)]=!0x0,b['clipIntersection']=!0x1;}['resetSectionPlanes'](b){const z9=a0cH;this[z9(0x835)]=[],b[z9(0x2cd)](c=>{const zb=z9;try{const {point:d,normal:f}=Wa(c);this[zb(0x30d)](f,d);}catch(g){console[zb(0x323)](zb(0x34e),g,c);}}),this[z9(0x663)](),this['updateAllMaterials']();}['updateAllMaterials'](){const zf=a0cH;this[zf(0x352)](),this['updateEdgeMeshMaterials'](),this[zf(0x835)][zf(0x576)]>0x0&&this['viewer'][zf(0x370)][zf(0xaa8)]('ssao',!0x1,this['viewer']['options']['style'][zf(0x6fe)]);}[a0cH(0x352)](){const zj=a0cH;this['viewer']['content'][zj(0x730)](b=>{const zk=zj;(b['isMesh']||b[zk(0xb87)])&&(Array[zk(0x1d4)](b[zk(0xb87)])?b['material'][zk(0x2cd)](c=>this['updateMaterialForClipping'](c)):this['updateMaterialForClipping'](b['material']));});}['updateEdgeMeshMaterials'](){const zm=a0cH;if(!this[zm(0x651)]['edgeMesh'])return;const {material:b}=this[zm(0x651)]['edgeMesh'];if(!(!b||!b[zm(0x4b8)])){if(this['clippingPlanes']['length']>0x0){this[zm(0x651)]['renderer'][zm(0x574)]=!0x0;for(let c=0x0;c<this[zm(0x835)][zm(0x576)];c++){const d=this[zm(0x835)][c];b['uniforms']['cps'][zm(0x372)][c]=new a0y(d['normal']['x'],d['normal']['y'],d['normal']['z'],d['constant']);}for(let f=this[zm(0x835)][zm(0x576)];f<this[zm(0x5d2)];f++)b[zm(0x4b8)][zm(0x1e1)]['value'][f]=new a0y(0x0,0x0,0x0,0x0);}else b[zm(0x4b8)]['cps'][zm(0x372)]=Array[zm(0xb73)]({'length':this[zm(0x5d2)]},()=>new a0y(0x0,0x0,0x0,0x0));}}['removeByIndex'](b){const zp=a0cH;if(b<0x0||b>=this['clippingPlanes'][zp(0x576)]){console['warn'](zp(0xb85)+b+',\x20当前平面数量:\x20'+this['clippingPlanes']['length']);return;}this['lists'][zp(0x263)](b,0x1),this[zp(0x835)]['splice'](b,0x1),this[zp(0x663)](),this['updateAllMaterials'](),this['updateUIPanel']();}['setPlanePositionByIndex'](b,d){const zq=a0cH;if(b<0x0||b>=this['clippingPlanes']['length']){console['warn'](zq(0xb85)+b+',\x20当前平面数量:\x20'+this['clippingPlanes']['length']);return;}if(b>=this['lists'][zq(0x576)]){console['warn']('[ModelClipperTool]\x20列表索引超出范围:\x20'+b+',\x20列表长度:\x20'+this[zq(0xa6f)]['length']);return;}const f=this['lists'][b],{min:g,max:h}=f,i=h-g,j=g+d*i;f['plane']['constant']=j,this['updateAllMaterials']();}['getPlanePositionByIndex'](b){const zv=a0cH;if(b<0x0||b>=this[zv(0xa6f)][zv(0x576)])return 0x0;const d=this['lists'][b],{min:f,max:g,plane:h}=d,i=g-f;if(i===0x0)return 0x0;const j=(h[zv(0x3d5)]-f)/ i;return Math[zv(0x894)](0x0,Math['min'](0x1,j));}['clear'](){const zw=a0cH;this['lists']=[],this[zw(0x835)]=[],this['resetList'](),this['updateAllMaterials'](),this['updateUIPanel']();}[a0cH(0x60c)](){const zx=a0cH;if(!this[zx(0x6e4)]){console['warn'](zx(0x2d6));return;}if(this[zx(0x6e4)][zx(0x330)][zx(0x576)]>0x0&&this[zx(0x6e4)]['clear'](),!this[zx(0x9bd)]){console['warn']('[ModelClipperTool]\x20sectionBox\x20未初始化');return;}const b=this['sectionBox']['getSize'](new a0c());this['sectionBox'][zx(0x8f7)](new a0c()),this[zx(0x835)][zx(0x2cd)](c=>{const zy=zx,{width:d,height:f}=this['calculatePlaneDimensions'](c,b),g=Xa(c,d,f);this[zy(0x6e4)][zy(0x644)](g);});}['calculatePlaneDimensions'](b,c){const zz=a0cH,d=this['NORMAL_ALIGNMENT_THRESHOLD'];return Math['abs'](b[zz(0x186)]['x'])>d?{'width':c['z'],'height':c['y']}:Math[zz(0x2f1)](b[zz(0x186)]['y'])>d?{'width':c['x'],'height':c['z']}:{'width':c['x'],'height':c['y']};}['setGlobalClippingEnabled'](b){const zB=a0cH;this['globalClippingEnabled']=b,a0x['clipping']=a0w[zB(0x19b)]([a0x[zB(0xa7b)],a0x[zB(0x93a)],a0x['envmap'],a0x[zB(0x901)],a0x[zB(0x65c)],a0x[zB(0x41d)],{'clippingPlanes':{'value':b?this['clippingPlanes']:null},'clipIntersection':{'value':!0x1}}]);}['createVisualPlanesFromBoundingBox'](b,d=this['DEFAULT_PLANE_OPACITY']){const zD=a0cH,f=Ja(b),g=new a0ay(),h=b['getSize'](new a0c()),i=b['getCenter'](new a0c()),j=(k,t,v,w,x,y)=>{const zC=a0b,z=new a0as(w,x),B=new a0g({'color':t,'side':a0at,'transparent':!0x0,'opacity':d}),F=new a0e(z,B);F[zC(0x587)]=v;const H=k[zC(0x186)];return F[zC(0x58f)][zC(0x31d)](new a0c(0x0,0x0,0x1),H),F['position'][zC(0x195)](i['clone']()[zC(0x644)](y)),F;};return g['add'](j(f['left'],new a0G(0xff0000),zD(0x4d1),h['y'],h['z'],new a0c(-h['x']/0x2,0x0,0x0))),g['add'](j(f['right'],new a0G(0xff0000),zD(0x889),h['y'],h['z'],new a0c(h['x']/0x2,0x0,0x0))),g['add'](j(f['bottom'],new a0G(0xff00),'bottom',h['x'],h['z'],new a0c(0x0,-h['y']/0x2,0x0))),g['add'](j(f['top'],new a0G(0xff00),zD(0x2a9),h['x'],h['z'],new a0c(0x0,h['y']/0x2,0x0))),g['add'](j(f['front'],new a0G(0xff),zD(0xb9a),h['x'],h['y'],new a0c(0x0,0x0,h['z']/0x2))),g[zD(0x644)](j(f[zD(0x83a)],new a0G(0xff),'back',h['x'],h['y'],new a0c(0x0,0x0,-h['z']/0x2))),g;}[a0cH(0x20e)](){const zE=a0cH;if(this[zE(0x5d8)])return;this['uiPanel']=document[zE(0x558)](zE(0x4b6)),this[zE(0x5d8)]['className']='clipper-tool-panel';const b=document['createElement'](zE(0x4b6));b[zE(0x757)]=zE(0x683),this['planeSelect']=document['createElement'](zE(0x220)),this['planeSelect']['className']='plane-select',this['planeSelect'][zE(0x1f6)]('change',()=>{const zF=zE,g=parseInt(this[zF(0x84b)]['value']);this[zF(0xba1)]=g,this[zF(0x39e)]();}),b[zE(0x89a)](this[zE(0x84b)]),this['uiPanel']['appendChild'](b),this[zE(0x532)]=document[zE(0x558)]('div'),this[zE(0x532)][zE(0x757)]=zE(0x4dd),this['uiPanel'][zE(0x89a)](this['slidersContainer']);const c=document['createElement']('div');c[zE(0x757)]='button-container';const d=document['createElement'](zE(0x1a3));d['textContent']=zE(0x3ae),d[zE(0x757)]=zE(0x4d2),d['addEventListener'](zE(0x499),()=>{const zG=zE;this['clear'](),this[zG(0x39e)]();});const f=document['createElement'](zE(0x1a3));f['textContent']='退出',f[zE(0x1f6)](zE(0x499),()=>{this['deactivate']();}),c[zE(0x89a)](d),c[zE(0x89a)](f),this[zE(0x5d8)][zE(0x89a)](c),this['viewer']['el']['appendChild'](this[zE(0x5d8)]);}['updateUIPanel'](){const zH=a0cH;if(this[zH(0x20e)](),!this[zH(0x532)]||!this['planeSelect'])return;if(this[zH(0x84b)]['innerHTML']='',this[zH(0x835)][zH(0x576)]===0x0){this[zH(0x84b)]['style'][zH(0x9e9)]=zH(0x6ab),this[zH(0x532)][zH(0x4da)]='';const B=document[zH(0x558)](zH(0x4b6));B['className']=zH(0x577),B['textContent']='点击模型表面创建剖切平面',this['slidersContainer']['appendChild'](B);return;}this['planeSelect']['style'][zH(0x9e9)]='block',this[zH(0x835)][zH(0x2cd)]((E,F)=>{const zI=zH,H=document[zI(0x558)]('option');H[zI(0x372)]=F[zI(0xa82)](),H['textContent']='剖切面\x20#'+(F+0x1),this['planeSelect'][zI(0x89a)](H);}),this[zH(0xba1)]>=this['clippingPlanes']['length']&&(this[zH(0xba1)]=this['clippingPlanes']['length']-0x1),this[zH(0xba1)]<0x0&&(this[zH(0xba1)]=0x0),this[zH(0x84b)]['value']=this['selectedPlaneIndex']['toString'](),this['slidersContainer'][zH(0x4da)]='';const b=this['selectedPlaneIndex'],i=this[zH(0x3d8)](b),j=Math['round'](i*0x64),k=document[zH(0x558)]('div');k['className']='plane-control';const m=document[zH(0x558)](zH(0x4b6));m['className']=zH(0x57b);const p=document[zH(0x558)](zH(0x96b));p['className']=zH(0x2b8),p[zH(0x904)]='剖切面\x20#'+(b+0x1);const t=document['createElement']('span');t[zH(0x757)]=zH(0x54a),t[zH(0x904)]=j+'%',m[zH(0x89a)](p),m[zH(0x89a)](t),k[zH(0x89a)](m);const v=document['createElement']('div');v['className']='slider-wrapper';const w=document[zH(0x558)](zH(0x866));w['type']=zH(0x2e6),w[zH(0x86c)](zH(0x2f8),'0'),w['setAttribute']('max','1'),w['setAttribute'](zH(0x3d7),'0.01'),w['value']=i[zH(0xa82)](),w['addEventListener']('input',F=>{const zJ=zH,H=F[zJ(0x427)],L=parseFloat(H[zJ(0x372)]);this['setPlanePositionByIndex'](b,L);const N=Math['round'](L*0x64);t[zJ(0x904)]=N+'%';}),v[zH(0x89a)](w),k['appendChild'](v);const x=document['createElement'](zH(0x4b6));x[zH(0x757)]='plane-control-actions';const y=document['createElement'](zH(0x1a3));y[zH(0x904)]='重置',y['addEventListener'](zH(0x499),()=>{const zK=zH;this[zK(0xa6d)](b,0.5),w['value']='0.5',t[zK(0x904)]='50%';});const z=document[zH(0x558)](zH(0x1a3));z['textContent']='删除',z[zH(0x757)]=zH(0x4d2),z['addEventListener'](zH(0x499),()=>{const zL=zH;this['removeByIndex'](b),this[zL(0x835)]['length']>0x0&&this[zL(0xba1)]>=this[zL(0x835)]['length']&&(this['selectedPlaneIndex']=this[zL(0x835)][zL(0x576)]-0x1),this[zL(0x39e)]();}),x[zH(0x89a)](y),x[zH(0x89a)](z),k['appendChild'](x),this['slidersContainer']['appendChild'](k);}['removeUIPanel'](){const zM=a0cH;this['uiPanel']&&this['uiPanel'][zM(0x92e)]&&this['uiPanel'][zM(0x92e)]['removeChild'](this[zM(0x5d8)]),this[zM(0x5d8)]=null,this['slidersContainer']=null,this['planeSelect']=null,this[zM(0xba1)]=0x0;}['onDispose'](){const zN=a0cH;this[zN(0x8bd)]();}}class dg extends Se{constructor(b){const zO=a0cH;super(b),C(this,'uiPanel',null),C(this,zO(0x65e),null),C(this,zO(0x90c),null),C(this,'exitButton',null),this[zO(0x7a1)]=zO(0xa1a);}['createUIPanel'](){const zP=a0cH;if(this['uiPanel'])return;this['uiPanel']=document[zP(0x558)]('div'),this['uiPanel']['className']='explosion-tool-panel';const b=document['createElement']('div');b[zP(0x757)]='slider-container';const c=document[zP(0x558)]('label');c[zP(0x904)]='强度:';const d=document[zP(0x558)](zP(0x4b6));d[zP(0x757)]=zP(0x885),this['intensitySlider']=document['createElement'](zP(0x866)),this['intensitySlider'][zP(0x223)]=zP(0x2e6),this['intensitySlider']['setAttribute'](zP(0x2f8),'0'),this[zP(0x65e)][zP(0x1f6)](zP(0x866),f=>{const zQ=zP,g=f['target'],i=parseFloat(g['value']),j=parseFloat(g[zQ(0x894)]),k=Math[zQ(0x894)](0x0,Math['min'](i,j));this[zQ(0xa44)](k);}),d[zP(0x89a)](this['intensitySlider']),b['appendChild'](c),b[zP(0x89a)](d),this['resetButton']=document[zP(0x558)]('button'),this['resetButton'][zP(0x904)]='复位',this[zP(0x90c)][zP(0x1f6)](zP(0x499),()=>{const zR=zP;this[zR(0x7f4)]();}),this['exitButton']=document[zP(0x558)]('button'),this['exitButton'][zP(0x904)]='退出',this[zP(0x229)]['addEventListener'](zP(0x499),()=>{const zS=zP;this[zS(0x595)]();}),b[zP(0x89a)](this[zP(0x90c)]),b[zP(0x89a)](this[zP(0x229)]),this[zP(0x5d8)]['appendChild'](b),this['viewer']['el']['appendChild'](this['uiPanel']);}['updateSliderConfig'](){const zT=a0cH;if(!this['intensitySlider']||!this['viewer']['explosion'])return;const b=this[zT(0x651)]['explosion']['getMaxIntensity'](),c=this[zT(0x651)][zT(0x3cf)][zT(0x685)](),d=this['viewer'][zT(0x3cf)][zT(0x1dc)]();this['intensitySlider'][zT(0x86c)](zT(0x2f8),'0'),this['intensitySlider'][zT(0x86c)]('max',b[zT(0xa82)]());const f=Math['min'](c,b/0x64);this['intensitySlider']['setAttribute']('step',f[zT(0xa82)]()),this[zT(0x65e)][zT(0x2f8)]='0',this['intensitySlider'][zT(0x894)]=b[zT(0xa82)](),this[zT(0x65e)][zT(0x3d7)]=f[zT(0xa82)]();const g=Math[zT(0x894)](0x0,Math['min'](d,b));this['intensitySlider'][zT(0x372)]=g[zT(0xa82)]();}['removeUIPanel'](){const zU=a0cH;this[zU(0x5d8)]&&this[zU(0x5d8)]['parentElement']&&this[zU(0x5d8)]['parentElement']['removeChild'](this['uiPanel']),this[zU(0x5d8)]=null,this[zU(0x65e)]=null,this[zU(0x90c)]=null,this['exitButton']=null;}[a0cH(0x959)](){const zV=a0cH;this[zV(0x8bd)]();}['onActivate'](){const zW=a0cH;if(!this[zW(0x651)]['explosion']){if(!this['viewer']['boxCenter']||!this[zW(0x651)][zW(0x36f)]){this['message']['error']('模型未加载,无法使用爆炸视图工具',0xbb8),this['deactivate']();return;}i;try{this['viewer'][zW(0x3a1)]();}catch(b){console[zW(0x323)]('[ExplosionTool]\x20初始化爆炸控制器失败:',b),this[zW(0x98d)]['error']('初始化爆炸控制器失败',0xbb8),this['deactivate']();return;}}this['createUIPanel'](),setTimeout(()=>{const zX=zW;this[zX(0x9a5)](),this['viewer']['explosion']&&this['setPreset'](zX(0x3ea));},0x0);}['onDeactivate'](){const zY=a0cH;this['viewer'][zY(0x3cf)]&&this['viewer'][zY(0x3cf)]['resetExplosion'](),this['removeUIPanel'](),this[zY(0x531)]='';}[a0cH(0xa44)](b){const zZ=a0cH;if(!this[zZ(0x651)][zZ(0x3cf)]){this[zZ(0x98d)]['warning'](zZ(0x7c9),0x7d0);return;}this[zZ(0x651)]['explosion'][zZ(0x759)](b);}[a0cH(0x7f4)](){const A0=a0cH;if(!this[A0(0x651)][A0(0x3cf)]){this[A0(0x98d)]['warning']('爆炸控制器未初始化',0x7d0);return;}if(this['viewer'][A0(0x3cf)]['resetExplosion'](),this['intensitySlider']){const b=this[A0(0x651)][A0(0x3cf)]['getCurrentIntensity']();this[A0(0x65e)][A0(0x372)]=b[A0(0xa82)]();}}[a0cH(0x36e)](b){const A1=a0cH;if(this[A1(0x651)][A1(0x3cf)]&&(this[A1(0x651)][A1(0x3cf)][A1(0x36e)](b),this[A1(0x65e)])){const c=this['viewer'][A1(0x3cf)]['getCurrentIntensity']();this[A1(0x65e)]['value']=c[A1(0xa82)]();}}[a0cH(0x6aa)](){const A2=a0cH;return this[A2(0x651)][A2(0x3cf)]?this['viewer'][A2(0x3cf)]['getMaxIntensity']():0x0;}[a0cH(0x685)](){const A3=a0cH;return this[A3(0x651)]['explosion']?this['viewer']['explosion'][A3(0x685)]():0.1;}[a0cH(0x1dc)](){const A4=a0cH;return this[A4(0x651)][A4(0x3cf)]?this['viewer']['explosion']['getCurrentIntensity']():0x0;}}const or=0xaaaaaa,ar=0x1,cr=0.8,ug=0x808080;class gg extends Se{constructor(b){const A5=a0cH;super(b),C(this,'annotations',[]),C(this,'anchorPoint',null),C(this,'guideLine',null),C(this,A5(0x7fb),null),C(this,'inputContainer',null),C(this,A5(0x53a),null),C(this,A5(0xa02),!0x1),C(this,'selectedIndex',null),(this[A5(0x7a1)]=A5(0x9d9),this[A5(0x651)][A5(0x4eb)][A5(0xb6c)]({'key':A5(0x764),'type':A5(0x256),'callback':()=>{const A6=A5;this[A6(0x182)]!=null&&this[A6(0xb4c)](this['selectedIndex']);}}));}['onActivate'](){const A7=a0cH;this[A7(0x531)]=A7(0x676),this[A7(0x98d)][A7(0x404)](A7(0x147),0xbb8);}[a0cH(0x473)](){this['clearDraw'](),this['hideInput']();}[a0cH(0x969)](){const A8=a0cH;this[A8(0x770)]&&(this[A8(0x7ad)]&&(this['scene'][A8(0x1da)](this['guideLine']),this[A8(0x7ad)]=null),this['snapPoint']&&(this[A8(0x770)][A8(0x1da)](this['snapPoint']),this['snapPoint']=null),this['anchorPoint']=null,this['isInputMode']=!0x1,this['helperTip']='');}['snapToFaceEdgeOrCorner'](b){const A9=a0cH;if(!(b?.[A9(0xa73)]&&b['object']))return!0x1;const c=b['object'];if(!(c instanceof a0e)||!c[A9(0x45e)])return!0x1;const {face:f,point:i}=b,j=c[A9(0x45e)]['attributes']['position'],k=[f['a'],f['b'],f['c']][A9(0x941)](x=>{const Ab=A9,y=new a0c();return y['fromBufferAttribute'](j,x),c[Ab(0x13f)](y),y;}),m=[[k[0x0],k[0x1]],[k[0x1],k[0x2]],[k[0x2],k[0x0]]];this[A9(0x3e2)]&&this[A9(0x3e2)][A9(0x6e5)]();const p=this['viewer']['getWidth'](i)*0x7,t=this[A9(0x651)]['getWidth'](i)*0x5;let v=0x1/0x0,w=null;return k[A9(0x2cd)](x=>{const Af=A9,y=i['distanceTo'](x);y<=p&&y<v&&(v=y,w=x[Af(0x8e8)]());}),w||m['forEach'](([x,y])=>{const Aj=A9,z=this['getClosestPointOnLineSegment'](i,x,y),B=i[Aj(0x5ac)](z);B<=t&&B<v&&(v=B,w=z[Aj(0x8e8)]());}),w?(b['point']=w,!0x0):!0x1;}['getClosestPointOnLineSegment'](b,d,f){const Ak=a0cH,g=new a0c()['subVectors'](f,d),i=new a0c()['subVectors'](b,d),j=g['length'](),k=g['normalize']();let m=i[Ak(0x24b)](k);return m=Math[Ak(0x894)](0x0,Math[Ak(0x2f8)](m,j)),new a0c()[Ak(0x195)](d)[Ak(0x644)](k['multiplyScalar'](m));}[a0cH(0x809)](b,c){const Am=a0cH;if(!(!this['isActive']||!this[Am(0x651)]['camera'])&&!this['isInputMode']){if(this[Am(0x2fc)])this['tooltip']='再次点击确定文本位置';else{this['tooltip']='点击模型上的点开始标注';return;}if(this[Am(0x2fc)]){this['viewer'][Am(0x8d8)]['setFromCamera'](this[Am(0x651)][Am(0x177)],this[Am(0x651)][Am(0x3e2)]);const d=this[Am(0x651)]['camera'][Am(0x156)](new a0c())[Am(0x456)](),f=new a0aq(d,-this[Am(0x2fc)][Am(0x24b)](d)),g=new a0c();this['viewer'][Am(0x8d8)][Am(0x9c8)][Am(0x459)](f,g)&&(this[Am(0x770)]&&this[Am(0x7ad)]&&(this[Am(0x770)]['remove'](this[Am(0x7ad)]),this['guideLine']=null),this[Am(0x7d0)](g));}}}[a0cH(0x766)](b,f){const An=a0cH;if(this[An(0xa02)])return;const {hits:g}=f;if(this['anchorPoint']){if(!this['anchorPoint']||!this['viewer']['camera'])return;this[An(0x651)][An(0x8d8)]['setFromCamera'](this[An(0x651)][An(0x177)],this['viewer']['camera']);const h=this['viewer'][An(0x3e2)]['getWorldDirection'](new a0c())[An(0x456)](),i=new a0aq(h,-this[An(0x2fc)]['dot'](h)),j=new a0c();if(this['viewer']['raycaster']['ray'][An(0x459)](i,j)){const k=new a0c()[An(0x1fd)](j,this['anchorPoint'])['length'](),m=new a0c(0x0,0x1,0x0)['multiplyScalar'](Math[An(0x894)](this[An(0x651)]['getWidth'](this['anchorPoint'])*0x2,k*0.2)),p=new a0c()[An(0x195)](j)[An(0x644)](m);p['y']<=this[An(0x2fc)]['y']&&(p['y']=this[An(0x2fc)]['y']+this['viewer'][An(0x2ac)](this['anchorPoint'])*0x5),this['showInput'](p);}}else{if(!g||g['length']===0x0)return;this['snapToFaceEdgeOrCorner'](g[0x0]),this[An(0x2fc)]=g[0x0][An(0x21d)]['clone'](),this['tooltip']='再次点击确定文本位置';}}['drawGuideLine'](b){const Ap=a0cH;if(!this[Ap(0x2fc)]||!this['scene'])return;const c=new Ae();c['setPositions']([this['anchorPoint']['x'],this[Ap(0x2fc)]['y'],this[Ap(0x2fc)]['z'],b['x'],b['y'],b['z']]);const d=new ne({'color':or,'depthTest':!0x1,'linewidth':ar,'opacity':cr,'resolution':new a0l(window[Ap(0xbae)],window[Ap(0x9d3)])});this[Ap(0x7ad)]=new de(c,d),this['scene'][Ap(0x644)](this['guideLine']);}[a0cH(0xa72)](b){const Aq=a0cH;if(!this[Aq(0x2fc)]||!this[Aq(0x770)])return;this['isInputMode']=!0x0,this[Aq(0x1d9)](),this[Aq(0x1a5)]=document[Aq(0x558)]('div'),this['inputContainer'][Aq(0x639)][Aq(0x879)]='\x0a\x20\x20\x20\x20\x20\x20position:\x20fixed;\x0a\x20\x20\x20\x20\x20\x20background:\x20white;\x0a\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20#377ee8;\x0a\x20\x20\x20\x20\x20\x20border-radius:\x204px;\x0a\x20\x20\x20\x20\x20\x20padding:\x202px;\x0a\x20\x20\x20\x20\x20\x20box-shadow:\x200\x202px\x208px\x20rgba(0,\x200,\x200,\x200.15);\x0a\x20\x20\x20\x20\x20\x20z-index:\x2010000;\x0a\x20\x20\x20\x20\x20\x20min-width:\x20200px;\x0a\x20\x20\x20\x20',this['inputElement']=document[Aq(0x558)](Aq(0x866)),this['inputElement']['type']=Aq(0x82c),this['inputElement']['placeholder']=Aq(0xae6),this['inputElement']['style']['cssText']='\x0a\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20\x20\x20outline:\x20none;\x0a\x20\x20\x20\x20\x20\x20font-size:\x2014px;\x0a\x20\x20\x20\x20\x20\x20padding:\x204px;\x0a\x20\x20\x20\x20',this[Aq(0x1a5)][Aq(0x89a)](this[Aq(0x53a)]),document[Aq(0x3f4)][Aq(0x89a)](this['inputContainer']);const c=this['worldToScreen'](b);this['inputContainer'][Aq(0x639)][Aq(0x4d1)]=c['x']+'px',this[Aq(0x1a5)]['style'][Aq(0x2a9)]=c['y']-0xa+'px',setTimeout(()=>{const Av=Aq;this['inputElement']?.[Av(0x607)]();},0x64),this[Aq(0x53a)][Aq(0x1f6)](Aq(0x559),d=>{const Aw=Aq;d[Aw(0x782)]==='Enter'?(d[Aw(0x8b9)](),this['completeAnnotation'](b)):d[Aw(0x782)]==='Escape'&&(d[Aw(0x8b9)](),this['cancelAnnotation']());}),this[Aq(0x53a)][Aq(0x1f6)]('blur',()=>{setTimeout(()=>{const Ax=a0b;this[Ax(0xa02)]&&this['completeAnnotation'](b);},0xc8);});}['hideInput'](){const Ay=a0cH;this[Ay(0x1a5)]&&(document['body'][Ay(0x7f7)](this['inputContainer']),this['inputContainer']=null,this[Ay(0x53a)]=null);}['completeAnnotation'](b){const Az=a0cH;if(!this['anchorPoint']||!this[Az(0x53a)]||!this['scene'])return;const c=this[Az(0x53a)][Az(0x372)][Az(0x7e5)]();if(!c){this['cancelAnnotation']();return;}const d=this['drawLine'](this[Az(0x2fc)],b),f=J({'className':'bmv-su-annotation-label','html':c+Az(0x365),'click':({event:i})=>{const AB=Az;i['stopPropagation']();const j=i[AB(0x427)],k=this[AB(0xa84)][AB(0x7bb)](m=>m[AB(0xb15)]===f);j&&(j[AB(0x5fd)]===AB(0x6b3)||j['classList']['contains'](AB(0x166))||j['closest'](AB(0x218)))?k!==-0x1&&this['removeByIndex'](k):k!==-0x1&&this['selectAnnotation'](k);}});setTimeout(()=>{const AC=Az,h=f['element'];if(h){const i=h['querySelector'](AC(0x218));i&&(i['style'][AC(0x172)]=AC(0xb42),i[AC(0x639)]['cursor']='pointer');}},0x0);const g=b[Az(0x8e8)]();g['y']+=0.1,f[Az(0x3e0)][Az(0x195)](g),this['scene']['add'](f),this['annotations']['push']({'anchorPoint':this['anchorPoint'][Az(0x8e8)](),'textPoint':b['clone'](),'line':d,'label':f,'text':c}),this[Az(0x969)](),this[Az(0x1d9)](),this['tooltip']='点击模型上的点开始标注';}['cancelAnnotation'](){const AD=a0cH;this[AD(0x969)](),this['hideInput'](),this[AD(0x531)]='点击模型上的点开始标注';}[a0cH(0x79f)](b,d,f=or){const AE=a0cH;if(!this[AE(0x770)])throw new Error(AE(0x500));const g=new Ae();g['setPositions']([b['x'],b['y'],b['z'],d['x'],d['y'],d['z']]);const h=new ne({'color':f,'depthTest':!0x0,'linewidth':ar,'opacity':cr,'resolution':new a0l(window['innerWidth'],window['innerHeight'])}),i=new de(g,h);return i['userData'][AE(0x159)]=!0x0,i['userData']['markupIndex']=this[AE(0xa84)]['length'],i['userData']['isMainLine']=!0x0,this[AE(0x770)]['add'](i),i;}[a0cH(0x94a)](b){const AF=a0cH;if(!(b<0x0||b>=this[AF(0xa84)]['length'])){if(this[AF(0x182)]===b){this['highlightAnnotation'](b,!0x1),this[AF(0x182)]=null;return;}this['selectedIndex']!==null&&this[AF(0x42d)](this[AF(0x182)],!0x1),this['selectedIndex']=b,this[AF(0x42d)](b,!0x0);}}[a0cH(0x42d)](b,c){const AG=a0cH;if(b<0x0||b>=this[AG(0xa84)][AG(0x576)])return;const {line:d}=this[AG(0xa84)][b],f=d[AG(0xb87)];c?(f[AG(0xa89)]['setHex'](0xff00),f['linewidth']=0x4,f[AG(0xab5)]=0x1):(f['color'][AG(0x786)](or),f[AG(0x488)]=ar,f['opacity']=cr);}[a0cH(0xb4c)](b){const AH=a0cH;if(b<0x0||b>=this[AH(0xa84)][AH(0x576)]||!this['scene'])return;const c=this['annotations'][b];this[AH(0x770)]['remove'](c['line']),this[AH(0x770)]['remove'](c[AH(0xb15)]),this['annotations'][AH(0x263)](b,0x1),this[AH(0x182)]===b?this[AH(0x182)]=null:this[AH(0x182)]!==null&&this['selectedIndex']>b&&this['selectedIndex']--,this[AH(0xa84)]['forEach']((d,f)=>{const AI=AH;d[AI(0x876)][AI(0x47e)]&&(d['line']['userData'][AI(0x2ae)]=f);});}[a0cH(0x1c2)](){const AJ=a0cH;this[AJ(0xa84)]['length']>0x0&&this['removeByIndex'](this['annotations']['length']-0x1);}[a0cH(0x302)](){return this['annotations'];}['clear'](){const AK=a0cH;if(!this['scene'])return;const b=this['scene'];this[AK(0xa84)]['forEach'](c=>{const AL=AK;b['remove'](c['line']),b[AL(0x1da)](c[AL(0xb15)]);}),this[AK(0xa84)]=[],this[AK(0x182)]=null,this['clearDraw'](),this[AK(0x1d9)]();}[a0cH(0x978)](b){const AM=a0cH;if(!this['camera']||!this['renderer'])return new a0l(0x0,0x0);const c=b[AM(0x8e8)]();c['project'](this['camera']);const d=this[AM(0x976)]['domElement'][AM(0x5d9)](),f=(c['x']*0.5+0.5)*d[AM(0x69c)],g=(-c['y']*0.5+0.5)*d['height'];return new a0l(f,g);}['isPointInViewport'](b,d=0x0){const AN=a0cH;if(!this[AN(0x3e2)]||!this['renderer'])return!0x1;const f=b['clone']();if(f[AN(0x57f)](this['camera']),f['z']>0x1)return!0x1;const g=this['renderer']['domElement']['getBoundingClientRect'](),h=(f['x']*0.5+0.5)*g['width'],i=(-f['y']*0.5+0.5)*g['height'];return h>=d&&h<=g[AN(0x69c)]-d&&i>=d&&i<=g['height']-d;}['isAnnotationInViewport'](b,c=0x14){return this['isPointInViewport'](b['textPoint'],c);}['updateMarkupsVisibility'](b=0x14){const AO=a0cH;this[AO(0x770)]&&this['annotations'][AO(0x2cd)](c=>{const AP=AO,d=this[AP(0x203)](c,b);c[AP(0x876)][AP(0x921)]=d,c[AP(0xb15)]['visible']=d;});}['loadAnnotationsFromData'](b){const AQ=a0cH;!b||b[AQ(0x576)]===0x0||!this['scene']||b[AQ(0x2cd)](d=>{const AR=AQ;try{const f=new a0c(d[AR(0x21d)][0x0],d[AR(0x21d)][0x1],d['point'][0x2]),g=new a0c(d['point'][0x0]+d[AR(0xb38)][0x0],d['point'][0x1]+d[AR(0xb38)][0x1],d['point'][0x2]+d['vector'][0x2]),h=this[AR(0x79f)](f,g,ug),i=J({'className':'bmv-su-annotation-label','html':d['text']});setTimeout(()=>{const AS=AR,k=i[AS(0x798)];if(k){k['style'][AS(0x172)]='none';const m=k[AS(0xa70)](AS(0x449));m&&(m[AS(0x639)]['pointerEvents']='none');}},0x0);const j=g['clone']();j['y']+=0.1,i['position'][AR(0x195)](j),this[AR(0x770)]&&this[AR(0x770)]['add'](i),this['annotations'][AR(0x50e)]({'anchorPoint':f[AR(0x8e8)](),'textPoint':g['clone'](),'line':h,'label':i,'text':d['text'],'isFromModel':!0x0});}catch(k){console['error']('加载标注失败:',k);}});}[a0cH(0xa52)](b){const AT=a0cH;this['scene']&&this['annotations'][AT(0x2cd)](c=>{const AU=AT;c['line'][AU(0x921)]=b,c[AU(0xb15)]['visible']=b;});}}const fg=0x377ee8;class pg extends Se{constructor(b){const AV=a0cH;super(b),C(this,'annotations',[]),C(this,AV(0x2fc),null),C(this,'inputContainer',null),C(this,AV(0x53a),null),C(this,'voiceButton',null),C(this,'imageButton',null),C(this,AV(0x7cc),null),C(this,'imagePreviewContainer',null),C(this,'isInputMode',!0x1),C(this,'recognition',null),C(this,AV(0x68a),null),C(this,'currentImageUrls',[]),C(this,AV(0x2cc),0x438),C(this,'MAX_IMAGES',0x5),C(this,'tempAnchorMarker',null),(this[AV(0x7a1)]=AV(0x9d9),this[AV(0xa90)]());}['initSpeechRecognition'](){const AW=a0cH;if(AW(0x2c1)in window||AW(0xb46)in window){const b=window['SpeechRecognition']||window['webkitSpeechRecognition'];this['recognition']=new b(),this['recognition'][AW(0xb7a)]=!0x1,this[AW(0x80c)][AW(0x4fe)]=!0x1,this['recognition']['lang']=AW(0x4f4),this[AW(0x80c)]['onresult']=c=>{const AX=AW,d=c['results'][0x0][0x0][AX(0xb80)];this['inputElement']&&(this['inputElement']['value']=d);},this[AW(0x80c)][AW(0x6ee)]=c=>{const AY=AW;console['error'](AY(0x328),c[AY(0x323)]),Pe['error'](AY(0x1ec));},this[AW(0x80c)][AW(0x624)]=()=>{const AZ=AW;this[AZ(0xb3a)]&&(this[AZ(0xb3a)]['style'][AZ(0xa53)]='');};}}[a0cH(0x25f)](){const B0=a0cH;this[B0(0x531)]=B0(0xb79),this['message']['info']('批注工具已激活\x20-\x20点击模型上的点开始批注',0xbb8);}['setBeforeAddCallback'](b){this['beforeAddCallback']=b;}[a0cH(0x473)](){const B1=a0cH;this[B1(0x729)](),this['hideLoading']();}[a0cH(0x766)](b,c){const B2=a0cH;if(this['isInputMode'])return;const {hits:d}=c;if(!d||d['length']===0x0){Pe['info'](B2(0x761));return;}const f=d[0x0];this[B2(0x2fc)]=f['point']['clone'](),this['createTempAnchorMarker']();const g=this['worldToScreen'](this[B2(0x2fc)]);this[B2(0xa72)](g);}['showInput'](b){const B3=a0cH;if(!this['anchorPoint'])return;this[B3(0x729)](),this[B3(0xa02)]=!0x0,this[B3(0x531)]=B3(0x890),this['inputContainer']=document['createElement']('div'),this['inputContainer'][B3(0x639)][B3(0x879)]='\x0a\x20\x20\x20\x20\x20\x20position:\x20fixed;\x0a\x20\x20\x20\x20\x20\x20z-index:\x2010000;\x0a\x20\x20\x20\x20\x20\x20background:\x20rgba(0,\x200,\x200,\x200.5);\x0a\x20\x20\x20\x20\x20\x20backdrop-filter:\x20blur(8px);\x0a\x20\x20\x20\x20\x20\x20border-radius:\x206px;\x0a\x20\x20\x20\x20\x20\x20padding:\x208px\x2012px;\x0a\x20\x20\x20\x20\x20\x20color:\x20#fff;\x0a\x20\x20\x20\x20\x20\x20font-family:\x20-apple-system,\x20BlinkMacSystemFont,\x20\x22Segoe\x20UI\x22,\x20Roboto,\x20sans-serif;\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20gap:\x208px;\x0a\x20\x20\x20\x20\x20\x20box-shadow:\x200\x202px\x2012px\x20rgba(0,\x200,\x200,\x200.3);\x0a\x20\x20\x20\x20\x20\x20min-width:\x20280px;\x0a\x20\x20\x20\x20\x20\x20max-width:\x20450px;\x0a\x20\x20\x20\x20',this[B3(0x53a)]=document[B3(0x558)](B3(0x8e4)),this[B3(0x53a)][B3(0x8a7)]=0x4,this[B3(0x53a)]['placeholder']='输入批注文字...\x0a支持复制粘贴图片\x20\x0a截图\x20ctrl+v',this[B3(0x53a)]['className']='bmv-annotation-input',this[B3(0x53a)]['addEventListener'](B3(0x269),E=>{this['handlePaste'](E);});const i=document[B3(0x558)](B3(0x4b6));i[B3(0x639)][B3(0x879)]='\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20gap:\x208px;\x0a\x20\x20\x20\x20\x20\x20justify-content:\x20space-between;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20';const j=document['createElement'](B3(0x4b6));j[B3(0x639)][B3(0x879)]=B3(0x2f9);const k=document[B3(0x558)]('div');k['style'][B3(0x879)]='\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20gap:\x208px;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20',this[B3(0xb3a)]=document[B3(0x558)](B3(0x1a3)),this[B3(0xb3a)]['innerHTML']='🎤',this[B3(0xb3a)][B3(0x8df)]='语音输入',this['voiceButton']['style'][B3(0x879)]=B3(0x33e),this[B3(0xb3a)]['addEventListener'](B3(0x794),()=>{const B4=B3;this['voiceButton'][B4(0x639)][B4(0xa53)]=B4(0x8e3);}),this[B3(0xb3a)]['addEventListener'](B3(0x784),()=>{const B5=B3;this['voiceButton']['style']['backgroundColor']=B5(0x753);}),this[B3(0xb3a)]['addEventListener'](B3(0x499),E=>{const B6=B3;E[B6(0x8b9)](),this['startVoiceRecognition']();}),this[B3(0x1b6)]=document['createElement']('button'),this[B3(0x1b6)][B3(0x4da)]=B3(0x161),this['imageButton'][B3(0x8df)]=B3(0x369),this['imageButton']['style']['cssText']='\x0a\x20\x20\x20\x20\x20\x20padding:\x204px\x2010px;\x0a\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20rgba(255,\x20255,\x20255,\x200.2);\x0a\x20\x20\x20\x20\x20\x20background:\x20rgba(255,\x20255,\x20255,\x200.1);\x0a\x20\x20\x20\x20\x20\x20color:\x20#fff;\x0a\x20\x20\x20\x20\x20\x20border-radius:\x203px;\x0a\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20transition:\x20all\x200.2s;\x0a\x20\x20\x20\x20\x20\x20font-family:\x20inherit;\x0a\x20\x20\x20\x20',this['imageButton'][B3(0x1f6)]('mouseover',()=>{const B7=B3;this[B7(0x1b6)]['style']['backgroundColor']='rgba(255,\x20255,\x20255,\x200.2)';}),this['imageButton'][B3(0x1f6)]('mouseout',()=>{const B8=B3;this['imageButton'][B8(0x639)]['backgroundColor']=B8(0x753);}),this[B3(0x7cc)]=document[B3(0x558)](B3(0x866)),this['fileInput']['type']='file',this[B3(0x7cc)]['accept']='image/*',this['fileInput'][B3(0x31b)]=!0x0,this[B3(0x7cc)][B3(0x639)]['display']='none',this[B3(0x7cc)]['addEventListener']('change',E=>{const B9=B3;this[B9(0x3c8)](E);}),this[B3(0x1b6)][B3(0x1f6)](B3(0x499),E=>{const Bb=B3;E['preventDefault'](),this[Bb(0x7cc)]?.[Bb(0x499)]();});const m=document['createElement']('button');m['innerHTML']='确定',m[B3(0x8df)]='完成批注',m[B3(0x639)][B3(0x879)]='\x0a\x20\x20\x20\x20\x20\x20padding:\x204px\x2010px;\x0a\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20rgba(30,\x20136,\x20229,\x200.4);\x0a\x20\x20\x20\x20\x20\x20background:\x20rgba(30,\x20136,\x20229,\x200.2);\x0a\x20\x20\x20\x20\x20\x20color:\x20#fff;\x0a\x20\x20\x20\x20\x20\x20border-radius:\x203px;\x0a\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20transition:\x20all\x200.2s;\x0a\x20\x20\x20\x20\x20\x20font-family:\x20inherit;\x0a\x20\x20\x20\x20\x20\x20font-weight:\x20500;\x0a\x20\x20\x20\x20',m['addEventListener']('mouseover',()=>{const Bf=B3;m['style'][Bf(0xa53)]=Bf(0xa14);}),m['addEventListener']('mouseout',()=>{const Bj=B3;m['style'][Bj(0xa53)]='rgba(30,\x20136,\x20229,\x200.2)';}),m['addEventListener']('click',E=>{E['preventDefault'](),this['completeAnnotation']();});const p=document[B3(0x558)](B3(0x1a3));p['innerHTML']='关闭',p[B3(0x8df)]='取消批注',p[B3(0x639)][B3(0x879)]=B3(0x33e),p['addEventListener']('mouseover',()=>{const Bk=B3;p[Bk(0x639)][Bk(0xa53)]=Bk(0x8e3);}),p['addEventListener']('mouseout',()=>{const Bm=B3;p[Bm(0x639)]['backgroundColor']=Bm(0x753);}),p['addEventListener']('click',E=>{E['preventDefault'](),this['cancelAnnotation']();}),j['appendChild'](this['voiceButton']),j[B3(0x89a)](this[B3(0x1b6)]),k['appendChild'](p),k[B3(0x89a)](m),i['appendChild'](j),i[B3(0x89a)](k),this[B3(0x1a5)]['appendChild'](this[B3(0x53a)]),this['imagePreviewContainer']=document['createElement'](B3(0x4b6)),this['imagePreviewContainer']['style'][B3(0x879)]=B3(0x8ad);const t=document['createElement'](B3(0x4b6));t[B3(0x639)][B3(0x879)]=B3(0x396),this[B3(0x914)][B3(0x89a)](t),this['inputContainer']['appendChild'](this[B3(0x914)]),this['inputContainer']['appendChild'](i),this[B3(0x1a5)][B3(0x89a)](this[B3(0x7cc)]),document[B3(0x3f4)]['appendChild'](this[B3(0x1a5)]);const v=window['innerWidth'],w=window[B3(0x9d3)],x=Math[B3(0x894)](0x12c,this[B3(0x1a5)]['offsetWidth']),y=Math[B3(0x894)](0x64,this[B3(0x1a5)][B3(0x735)]);let z=b['x'],B=b['y']-y-0xa;z+x>v&&(z=v-x-0xa),z<0xa&&(z=0xa),B<0xa&&(B=b['y']+0xa),B+y>w&&(B=w-y-0xa),this['inputContainer'][B3(0x639)][B3(0x4d1)]=z+'px',this[B3(0x1a5)][B3(0x639)]['top']=B+'px',setTimeout(()=>{this['inputElement']?.['focus']();},0x64),this['inputElement'][B3(0x1f6)]('keydown',E=>{const Bp=B3;E[Bp(0x782)]==='Enter'&&!E['shiftKey']?(E['preventDefault'](),this['completeAnnotation']()):E[Bp(0x782)]===Bp(0x4b4)&&(E[Bp(0x8b9)](),this[Bp(0x92f)]());});}['clearInput'](){const Bq=a0cH;this[Bq(0x1a5)]&&(document[Bq(0x3f4)][Bq(0x7f7)](this['inputContainer']),this[Bq(0x1a5)]=null,this[Bq(0x53a)]=null,this[Bq(0xb3a)]=null,this['imageButton']=null,this['fileInput']=null,this['imagePreviewContainer']=null,this['isInputMode']=!0x1);}['startVoiceRecognition'](){const Bv=a0cH;if(!this[Bv(0x80c)]){Pe[Bv(0x323)]('您的浏览器不支持语音识别');return;}try{this['recognition']['start'](),this[Bv(0xb3a)]&&(this[Bv(0xb3a)][Bv(0x639)]['backgroundColor']='#e6f7ff');}catch(b){console['error']('启动语音识别失败:',b),Pe[Bv(0x323)](Bv(0x722));}}['handleImageUpload'](b){const Bw=a0cH,c=b[Bw(0x427)];if(!c['files']||c['files']['length']===0x0)return;const d=this[Bw(0x4a4)]-this['currentImageUrls'][Bw(0x576)];if(c[Bw(0x917)][Bw(0x576)]>d){Pe[Bw(0x323)]('最多只能上传\x20'+this['MAX_IMAGES']+Bw(0x379)+d+'\x20张');return;}const f=Array['from'](c[Bw(0x917)]);this['processImageFiles'](f);}[a0cH(0x873)](b){const Bx=a0cH,d=b['clipboardData'];if(!d)return;const f=d['items'];if(!f)return;const g=[];for(let h=0x0;h<f[Bx(0x576)];h++){const i=f[h];if(i['type']['indexOf']('image')===0x0){const j=i[Bx(0x261)]();j&&g['push'](j);}}g['length']>0x0&&(b['preventDefault'](),this['processImageFiles'](g));}[a0cH(0x307)](b){const By=a0cH,c=this[By(0x4a4)]-this['currentImageUrls']['length'];if(b['length']>c){Pe['error']('最多只能上传\x20'+this['MAX_IMAGES']+'\x20张图片,还可以上传\x20'+c+'\x20张');return;}let d=0x0,f=0x0;b[By(0x2cd)](g=>{const Bz=By;if(this['currentImageUrls'][Bz(0x576)]>=this['MAX_IMAGES'])return;const h=new FileReader();h['onload']=i=>{const BB=Bz,j=i['target']?.['result'];this[BB(0xaf5)](j,this['MAX_IMAGE_SIZE'])['then'](k=>{const BC=BB;this['currentImageUrls'][BC(0x50e)](k),f++,d++,d===b['length']&&(this['updateImagePreview'](),Pe[BC(0x404)]('成功添加\x20'+f+BC(0x408)));})['catch'](k=>{const BD=BB;console['error'](BD(0x686),k),d++,d===b['length']&&(this[BD(0xa17)](),Pe['info']('成功添加\x20'+f+'\x20张图片'));});},h['onerror']=()=>{const BE=Bz;console[BE(0x323)](BE(0x405)),d++,d===b[BE(0x576)]&&(this['updateImagePreview'](),Pe[BE(0x404)]('成功添加\x20'+f+BE(0x408)));},h['readAsDataURL'](g);});}[a0cH(0xaf5)](b,c){return new Promise((d,f)=>{const BF=a0b,g=document[BF(0x558)](BF(0x72f)),h=g['getContext']('2d'),i=new Image();i['onload']=()=>{const BG=BF;let {width:j,height:k}=i;if(j>k?j>c&&(k*=c/j,j=c):k>c&&(j*=c/k,k=c),g['width']=j,g[BG(0x75a)]=k,h){h['drawImage'](i,0x0,0x0,j,k);const m=g['toDataURL']('image/jpeg',0.8);d(m);}else f(new Error(BG(0x34c)));},i[BF(0x6ee)]=()=>{const BH=BF;f(new Error(BH(0x975)));},i['src']=b;});}[a0cH(0xa17)](){const BI=a0cH;if(!this['imagePreviewContainer'])return;if(this[BI(0x914)][BI(0x4da)]='',this['currentImageUrls']['length']===0x0){this['imagePreviewContainer']['style']['display']=BI(0x6ab);return;}const b=document['createElement']('div');b['style'][BI(0x879)]=BI(0x396),this['currentImageUrls']['forEach']((d,f)=>{const BJ=BI,g=document['createElement'](BJ(0x4b6));g['style']['cssText']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20position:\x20relative;\x0a\x20\x20\x20\x20\x20\x20\x20\x20width:\x2080px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20height:\x2080px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x203px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20overflow:\x20hidden;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20rgba(255,\x20255,\x20255,\x200.1);\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20rgba(255,\x20255,\x20255,\x200.2);\x0a\x20\x20\x20\x20\x20\x20';const h=document[BJ(0x558)]('img');h['src']=d,h['style'][BJ(0x879)]=BJ(0x787);const i=document[BJ(0x558)](BJ(0x1a3));i[BJ(0x4da)]='✕',i[BJ(0x8df)]='删除图片',i['style']['cssText']=BJ(0x8b4),i['addEventListener']('mouseover',()=>{const BK=BJ;i[BK(0x639)][BK(0xa53)]=BK(0x18f);}),i['addEventListener']('mouseout',()=>{i['style']['backgroundColor']='rgba(244,\x2067,\x2054,\x200.2)';}),i['addEventListener'](BJ(0x499),k=>{k['preventDefault'](),this['removeImage'](f);});const j=document['createElement'](BJ(0x4b6));j['textContent']=''+(f+0x1),j[BJ(0x639)]['cssText']=BJ(0x2d8),g[BJ(0x89a)](h),g[BJ(0x89a)](i),g[BJ(0x89a)](j),b['appendChild'](g);}),this['imagePreviewContainer'][BI(0x89a)](b),this[BI(0x914)]['style'][BI(0x9e9)]='block';}['removeImage'](b){const BL=a0cH;b>=0x0&&b<this[BL(0xb37)]['length']&&(this[BL(0xb37)][BL(0x263)](b,0x1),this[BL(0xa17)](),Pe[BL(0x404)]('图片已删除'));}['clearImages'](){const BM=a0cH;this[BM(0xb37)]=[],this['updateImagePreview']();}['showAnnotationImageGallery'](i,j){const BN=a0cH,k=document[BN(0x558)]('div');k[BN(0x639)][BN(0x879)]=BN(0x1bc);const t=document['createElement'](BN(0x4b6));t['style']['cssText']='\x0a\x20\x20\x20\x20\x20\x20max-width:\x2090%;\x0a\x20\x20\x20\x20\x20\x20max-height:\x2090%;\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20gap:\x2016px;\x0a\x20\x20\x20\x20\x20\x20cursor:\x20default;\x0a\x20\x20\x20\x20\x20\x20min-width:\x20600px;\x0a\x20\x20\x20\x20';const v=document['createElement'](BN(0x4b6));v[BN(0x639)][BN(0x879)]='\x0a\x20\x20\x20\x20\x20\x20position:\x20relative;\x0a\x20\x20\x20\x20\x20\x20max-width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20max-height:\x2070vh;\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20gap:\x2010px;\x0a\x20\x20\x20\x20';const w=document[BN(0x558)]('button');w[BN(0x4da)]='‹',w['title']='上一张',w[BN(0x639)]['cssText']=BN(0xa91),w[BN(0x1f6)](BN(0x794),()=>{w['style']['backgroundColor']='rgba(255,\x20255,\x20255,\x200.3)';}),w['addEventListener']('mouseout',()=>{const BO=BN;w[BO(0x639)]['backgroundColor']=BO(0x8e3);});const x=document[BN(0x558)](BN(0x1a3));x['innerHTML']='›',x['title']=BN(0x164),x['style'][BN(0x879)]='\x0a\x20\x20\x20\x20\x20\x20background:\x20rgba(255,\x20255,\x20255,\x200.2);\x0a\x20\x20\x20\x20\x20\x20color:\x20white;\x0a\x20\x20\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20font-size:\x2030px;\x0a\x20\x20\x20\x20\x20\x20width:\x2040px;\x0a\x20\x20\x20\x20\x20\x20height:\x2040px;\x0a\x20\x20\x20\x20\x20\x20border-radius:\x2050%;\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20transition:\x20background-color\x200.2s;\x0a\x20\x20\x20\x20\x20\x20flex-shrink:\x200;\x0a\x20\x20\x20\x20',x['addEventListener'](BN(0x794),()=>{x['style']['backgroundColor']='rgba(255,\x20255,\x20255,\x200.3)';}),x[BN(0x1f6)]('mouseout',()=>{const BP=BN;x[BP(0x639)]['backgroundColor']='rgba(255,\x20255,\x20255,\x200.2)';});const y=document['createElement']('div');y[BN(0x639)]['cssText']='\x0a\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20max-width:\x2080%;\x0a\x20\x20\x20\x20\x20\x20max-height:\x20100%;\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20position:\x20relative;\x0a\x20\x20\x20\x20';const z=document['createElement']('img');z[BN(0x9f3)]=i[0x0],z[BN(0x639)]['cssText']='\x0a\x20\x20\x20\x20\x20\x20max-width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20max-height:\x2070vh;\x0a\x20\x20\x20\x20\x20\x20object-fit:\x20contain;\x0a\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20box-shadow:\x200\x204px\x2020px\x20rgba(0,\x200,\x200,\x200.5);\x0a\x20\x20\x20\x20';const B=document['createElement']('div');B['textContent']='1\x20/\x20'+i[BN(0x576)],B[BN(0x639)]['cssText']=BN(0x9cb),y['appendChild'](z),y['appendChild'](B);const F=document[BN(0x558)](BN(0x4b6));F['style'][BN(0x879)]='\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20gap:\x208px;\x0a\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20flex-wrap:\x20wrap;\x0a\x20\x20\x20\x20\x20\x20max-height:\x20100px;\x0a\x20\x20\x20\x20\x20\x20overflow-x:\x20auto;\x0a\x20\x20\x20\x20\x20\x20padding:\x208px;\x0a\x20\x20\x20\x20',i['forEach']((U,a0)=>{const BQ=BN,a1=document['createElement']('div');a1['style'][BQ(0x879)]=BQ(0x834)+(a0===0x0?BQ(0xb0f):'transparent')+BQ(0x416);const a2=document['createElement'](BQ(0x614));a2['src']=U,a2[BQ(0x639)][BQ(0x879)]='\x0a\x20\x20\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20height:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20object-fit:\x20cover;\x0a\x20\x20\x20\x20\x20\x20',a1['addEventListener'](BQ(0x499),()=>{const BR=BQ;z[BR(0x9f3)]=U,B[BR(0x904)]=a0+0x1+'\x20/\x20'+i['length'],F['querySelectorAll']('div')[BR(0x2cd)]((a3,a4)=>{a3['style']['borderColor']=a4===a0?'#377ee8':'transparent';});}),a1[BQ(0x89a)](a2),F['appendChild'](a1);});const H=document[BN(0x558)](BN(0x4b6));H['textContent']=j,H[BN(0x639)][BN(0x879)]='\x0a\x20\x20\x20\x20\x20\x20color:\x20#fff;\x0a\x20\x20\x20\x20\x20\x20font-size:\x2016px;\x0a\x20\x20\x20\x20\x20\x20text-align:\x20center;\x0a\x20\x20\x20\x20\x20\x20padding:\x208px;\x0a\x20\x20\x20\x20\x20\x20background:\x20rgba(255,\x20255,\x20255,\x200.1);\x0a\x20\x20\x20\x20\x20\x20border-radius:\x204px;\x0a\x20\x20\x20\x20\x20\x20max-width:\x2080%;\x0a\x20\x20\x20\x20\x20\x20align-self:\x20center;\x0a\x20\x20\x20\x20';const L=document[BN(0x558)]('button');L[BN(0x4da)]='✕',L[BN(0x8df)]='关闭',L[BN(0x639)][BN(0x879)]=BN(0x163),L[BN(0x1f6)](BN(0x794),()=>{const BS=BN;L[BS(0x639)]['backgroundColor']=BS(0xa07);}),L['addEventListener']('mouseout',()=>{const BT=BN;L['style']['backgroundColor']=BT(0x6d0);}),L[BN(0x1f6)](BN(0x499),U=>{const BU=BN;U['stopPropagation'](),document[BU(0x3f4)]['removeChild'](k);});let N=0x0;const R=U=>{const BV=BN;U>=0x0&&U<i['length']&&(N=U,z['src']=i[U],B[BV(0x904)]=U+0x1+BV(0x54c)+i[BV(0x576)],F['querySelectorAll']('div')[BV(0x2cd)]((a0,a1)=>{const BW=BV;a0[BW(0x639)][BW(0x2c8)]=a1===U?BW(0xb0f):'transparent';}));};w['addEventListener']('click',()=>{const BX=BN;R((N-0x1+i['length'])%i[BX(0x576)]);}),x[BN(0x1f6)](BN(0x499),()=>{R((N+0x1)%i['length']);});const S=U=>{const BY=BN;U[BY(0x782)]==='ArrowLeft'?R((N-0x1+i[BY(0x576)])%i['length']):U[BY(0x782)]===BY(0xa57)&&R((N+0x1)%i[BY(0x576)]);};document[BN(0x1f6)](BN(0x559),S),v['appendChild'](w),v['appendChild'](y),v[BN(0x89a)](x),t['appendChild'](v),t[BN(0x89a)](F),t[BN(0x89a)](H),t['appendChild'](L),k[BN(0x89a)](t),k[BN(0x1f6)](BN(0x499),U=>{const BZ=BN;U[BZ(0x427)]===k&&(document['body']['removeChild'](k),document[BZ(0x293)](BZ(0x559),S));});const T=U=>{const C0=BN;U['key']===C0(0x4b4)&&(document[C0(0x293)]('keydown',T),document[C0(0x293)](C0(0x559),S),document['body']['contains'](k)&&document[C0(0x3f4)]['removeChild'](k));};document[BN(0x1f6)](BN(0x559),T),document['body'][BN(0x89a)](k);}async['completeAnnotation'](){const C1=a0cH;if(!this[C1(0x2fc)]||!this['inputElement']){this['cancelAnnotation']();return;}const b=this[C1(0x53a)][C1(0x372)]['trim']();if(!b){this[C1(0x92f)]();return;}if(this['beforeAddCallback'])try{this[C1(0x33a)]();const s=await this['beforeAddCallback']({'text':b,'anchorPoint':this[C1(0x2fc)]['clone'](),'imageUrls':this[C1(0xb37)][C1(0x576)]>0x0?this[C1(0xb37)]:void 0x0});if(this[C1(0x14b)](),!s){this[C1(0x92f)]();return;}}catch(t){console[C1(0x323)]('批注添加回调失败:',t),Pe[C1(0x323)]('批注添加失败,请重试'),this['hideLoading'](),this['cancelAnnotation']();return;}const f=new a0c(0x0,0x1,0x0)[C1(0xa49)](this[C1(0x651)]['getWidth'](this['anchorPoint'])*0x5),g=this[C1(0x2fc)]['clone']()[C1(0x644)](f),i=this['getCurrentView'](),j=i['success']?i[C1(0x1a4)]:void 0x0,k=this['drawLine'](this['anchorPoint'],g);let m=b;this['currentImageUrls'][C1(0x576)]>0x0&&(m='\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22bmv-annotation-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22bmv-annotation-text\x22>'+b+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22bmv-annotation-image-indicator\x22>🖼️×'+this[C1(0xb37)]['length']+C1(0x35a));const p=J({'className':'bmv-annotation-label','html':m,'click':({event:v})=>{const C2=C1;v['stopPropagation']();const w=p[C2(0x47e)]?.[C2(0x30f)],x=p[C2(0x47e)]?.[C2(0x82c)]||b;w&&w['length']>0x0&&this['showAnnotationImageGallery'](w,x),j&&this['restoreView'](j)['then'](y=>{const C3=C2;y[C3(0x8f9)]||console[C3(0x323)](C3(0x41f),y[C3(0x98d)]);});}});p[C1(0x47e)]={'imageUrls':this['currentImageUrls']['length']>0x0?[...this[C1(0xb37)]]:void 0x0,'text':b},p[C1(0x798)]&&p['element'][C1(0x1f6)](C1(0x489),v=>{const C4=C1;v[C4(0x8b9)]();},{'passive':!0x1}),p['position']['copy'](g),this['scene']?.['add'](p),this['annotations'][C1(0x50e)]({'anchorPoint':this['anchorPoint']['clone'](),'textPoint':g[C1(0x8e8)](),'line':k,'label':p,'text':b,'imageUrls':this[C1(0xb37)][C1(0x576)]>0x0?[...this[C1(0xb37)]]:void 0x0,'viewCoordinates':j}),this['clearInput'](),this['anchorPoint']=null,this['currentImageUrls']=[],this[C1(0x531)]=C1(0xb79),this['removeTempAnchorMarker']();}[a0cH(0x92f)](){const C5=a0cH;this['clearInput'](),this[C5(0x2fc)]=null,this['currentImageUrls']=[],this['tooltip']=C5(0xb79),this['removeTempAnchorMarker']();}['createTempAnchorMarker'](){const C6=a0cH;if(!this['anchorPoint']||!this[C6(0x770)])return;this[C6(0x542)]();const b=J({'className':'bmv-annotation-anchor-marker','html':'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20height:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#ff4757;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x202px\x20solid\x20white;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2050%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20transform:\x20translate(-50%,\x20-50%);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20box-shadow:\x200\x200\x2010px\x20rgba(255,\x2071,\x2087,\x200.8);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20animation:\x20pulse\x202s\x20infinite;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<style>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@keyframes\x20pulse\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x200%\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20transform:\x20translate(-50%,\x20-50%)\x20scale(1);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x2050%\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20transform:\x20translate(-50%,\x20-50%)\x20scale(1.5);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x200.7;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20100%\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20transform:\x20translate(-50%,\x20-50%)\x20scale(1);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20</style>\x0a\x20\x20\x20\x20\x20\x20'});b['position'][C6(0x195)](this['anchorPoint']),this['scene'][C6(0x644)](b),this[C6(0xa2c)]=b;}[a0cH(0x542)](){this['tempAnchorMarker']&&this['scene']&&(this['scene']['remove'](this['tempAnchorMarker']),this['tempAnchorMarker']=null);}['drawLine'](b,c){const C7=a0cH;if(!this[C7(0x770)])throw new Error(C7(0x500));const d=new Ae();d[C7(0x58e)]([b['x'],b['y'],b['z'],c['x'],c['y'],c['z']]);const f=new ne({'color':fg,'depthTest':!0x0,'linewidth':0x3,'opacity':0x1,'resolution':new a0l(window['innerWidth'],window['innerHeight']),'transparent':!0x0}),g=new de(d,f);return g['userData']['isAnnotationLine']=!0x0,g[C7(0x47e)]['annotationIndex']=this['annotations'][C7(0x576)],this[C7(0x770)]['add'](g),g;}[a0cH(0x978)](b){const C8=a0cH;if(!this['camera']||!this[C8(0x976)])return new a0l(0x0,0x0);const c=b['clone']();c[C8(0x57f)](this['camera']);const d=this[C8(0x976)]['domElement']['getBoundingClientRect'](),f=(c['x']*0.5+0.5)*d['width'],g=(-c['y']*0.5+0.5)*d['height'];return new a0l(f,g);}['clear'](){const C9=a0cH;this['scene']&&(this['annotations']['forEach'](b=>{this['scene']?.['remove'](b['line']),this['scene']?.['remove'](b['label']);}),this[C9(0xa84)]=[],this[C9(0x729)]());}[a0cH(0x1c2)](){const Cb=a0cH;if(this[Cb(0xa84)][Cb(0x576)]>0x0){const b=this['annotations'][Cb(0x3da)]();b&&(this['scene']?.['remove'](b['line']),this['scene']?.[Cb(0x1da)](b['label']));}}[a0cH(0xa52)](b){const Cf=a0cH;this[Cf(0x770)]&&this['annotations'][Cf(0x2cd)](c=>{const Cj=Cf;c['line'][Cj(0x921)]=b,c[Cj(0xb15)][Cj(0x921)]=b;});}['getAnnotations'](){const Ck=a0cH;return this[Ck(0xa84)];}async[a0cH(0x52d)](b){const Cm=a0cH;if(b<0x0||b>=this[Cm(0xa84)]['length'])return{'success':!0x1,'message':Cm(0xafc)};const c=this['annotations'][b];return c[Cm(0x8a2)]?await this['restoreView'](c['viewCoordinates']):{'success':!0x1,'message':'该批注没有视角信息'};}async['restoreViewByAnnotation'](b){const Cn=a0cH;return b[Cn(0x8a2)]?this[Cn(0x992)](b[Cn(0x8a2)]):{'success':!0x1,'message':Cn(0xa80)};}['restoreAnnotations'](b){const Cp=a0cH;if(!Array[Cp(0x1d4)](b))return{'success':!0x1,'message':'批注数据格式错误','restoredCount':0x0};try{this['clearAnnotations']();let d=0x0;for(const f of b){if(!f[Cp(0x82c)]||!f['anchorPoint']||!f['textPoint'])continue;const g=new a0c(f[Cp(0x2fc)]['x'],f['anchorPoint']['y'],f['anchorPoint']['z']),i=new a0c(f[Cp(0x4c1)]['x'],f['textPoint']['y'],f['textPoint']['z']),j=this[Cp(0x79f)](g,i);let k=f['text'];f[Cp(0x30f)]&&f[Cp(0x30f)]['length']>0x0&&(k=Cp(0x254)+f['text']+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22bmv-annotation-image-indicator\x22>🖼️×'+f[Cp(0x30f)][Cp(0x576)]+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20');const m=J({'className':Cp(0xaea),'html':k,'click':({event:p})=>{const Cq=Cp;p[Cq(0xb4a)]();const t=m[Cq(0x47e)]?.['imageUrls'],v=m['userData']?.[Cq(0x82c)]||f[Cq(0x82c)];t&&t[Cq(0x576)]>0x0&&this['showAnnotationImageGallery'](t,v),f[Cq(0x8a2)]&&this['restoreView'](f['viewCoordinates'])[Cq(0x75d)](w=>{const Cv=Cq;w['success']||console[Cv(0x323)]('恢复视角失败:',w['message']);});}});m['userData']={'imageUrls':f[Cp(0x30f)]&&f[Cp(0x30f)][Cp(0x576)]>0x0?[...f['imageUrls']]:void 0x0,'text':f[Cp(0x82c)]},m[Cp(0x798)]&&m[Cp(0x798)]['addEventListener'](Cp(0x489),p=>{const Cw=Cp;p[Cw(0x8b9)]();},{'passive':!0x1}),m[Cp(0x3e0)][Cp(0x195)](i),this['scene']?.['add'](m),this[Cp(0xa84)]['push']({'anchorPoint':g[Cp(0x8e8)](),'textPoint':i[Cp(0x8e8)](),'line':j,'label':m,'text':f[Cp(0x82c)],'imageUrls':f[Cp(0x30f)]&&f[Cp(0x30f)]['length']>0x0?[...f['imageUrls']]:void 0x0,'viewCoordinates':f['viewCoordinates']}),d++;}return{'success':!0x0,'message':'成功恢复\x20'+d+'\x20条批注','restoredCount':d};}catch(p){return console[Cp(0x323)](Cp(0xaa4),p),{'success':!0x1,'message':'恢复批注过程中发生错误','restoredCount':0x0};}}[a0cH(0x9b3)](){const Cx=a0cH;for(const b of this['annotations'])this['scene']?.['remove'](b[Cx(0x876)]),this[Cx(0x770)]?.['remove'](b[Cx(0xb15)]);this['annotations']=[];}}const Hs=0x808080,mg=0x2,bg=0.8;class Eg extends Se{constructor(b){const Cy=a0cH;super(b),C(this,'dimensions',[]),C(this,Cy(0x921),!0x0);}[a0cH(0x25f)](){}['onDeactivate'](){}['drawLine'](b,d,f=Hs){const Cz=a0cH;if(!this['scene'])throw new Error('Scene\x20is\x20not\x20available');const g=new Ae();g['setPositions']([b['x'],b['y'],b['z'],d['x'],d['y'],d['z']]);const h=new ne({'color':f,'depthTest':!0x0,'linewidth':mg,'opacity':bg,'resolution':new a0l(window[Cz(0xbae)],window['innerHeight'])}),i=new de(g,h);return i['userData']['isDimensionLine']=!0x0,this['scene'][Cz(0x644)](i),i;}[a0cH(0x6bb)](b){const CB=a0cH;!b||b[CB(0x576)]===0x0||!this['scene']||b['forEach'](i=>{const CC=CB;try{const j=new a0c(i[CC(0x8ec)][0x0],i['start'][0x1],i[CC(0x8ec)][0x2]),k=new a0c(i['end'][0x0],i['end'][0x1],i[CC(0x9b6)][0x2]),t=new a0c(j['x']+i[CC(0x707)][0x0],j['y']+i[CC(0x707)][0x1],j['z']+i['offset_vector'][0x2]),z=new a0c()['subVectors'](k,j),F=z['length']();if(F<0.0001){console['warn'](CC(0x8f8));return;}const H=z[CC(0x8e8)]()['normalize'](),L=new a0c()['subVectors'](t,j),N=L['clone']()['dot'](H),R=L['clone']()[CC(0x480)](H['clone']()[CC(0xa49)](N));let U;if(R['length']()>0.0001)U=R[CC(0x456)]();else{const ab=new a0c(0x0,0x1,0x0),aj=new a0c()[CC(0x74a)](H,ab);if(aj['length']()>0.0001)U=aj[CC(0x456)]();else{const ak=new a0c(0x1,0x0,0x0);U=new a0c()[CC(0x74a)](H,ak)[CC(0x456)]();}}let a0;if(i[CC(0xb62)]!==void 0x0&&i['offset_distance']!==null){const am=typeof i['offset_distance']==CC(0xb0b)?parseFloat(i[CC(0xb62)]):i[CC(0xb62)];if(!isNaN(am)&&am>0x0)a0=am;else{const an=Math[CC(0x2f1)](R[CC(0x576)]()),ap=F*0.2;a0=Math[CC(0x894)](an,ap);}}else{const aq=Math['abs'](R[CC(0x576)]()),av=F*0.2;a0=Math[CC(0x894)](aq,av);}const a1=j['clone']()[CC(0x644)](U['clone']()[CC(0xa49)](a0)),a2=k[CC(0x8e8)]()[CC(0x644)](U['clone']()['multiplyScalar'](a0)),a3=this[CC(0x79f)](j,a1,Hs),a4=this[CC(0x79f)](k,a2,Hs),a5=this['drawLine'](a1,a2,Hs),a6=J({'className':'dimension-endpoint'});a6['position'][CC(0x195)](a1),this['scene']&&this[CC(0x770)]['add'](a6),setTimeout(()=>{const CD=CC,aw=a6['element'];aw&&(aw['style'][CD(0x172)]=CD(0x6ab));},0x0);const a7=J({'className':'dimension-endpoint'});a7['position']['copy'](a2),this[CC(0x770)]&&this[CC(0x770)]['add'](a7),setTimeout(()=>{const CE=CC,aw=a7[CE(0x798)];aw&&(aw[CE(0x639)]['pointerEvents']='none');},0x0);const a8=new a0c()['addVectors'](a1,a2)['multiplyScalar'](0.5),a9=J({'className':CC(0x551),'html':i[CC(0x82c)]});a9[CC(0x3e0)]['copy'](a8),this['scene']&&this[CC(0x770)]['add'](a9),setTimeout(()=>{const CF=CC,aw=a9['element'];if(aw){aw['style']['pointerEvents']='none';const ax=aw[CF(0xa70)](CF(0x449));ax&&(ax['style'][CF(0x172)]='none');}},0x0),this['dimensions']['push']({'startPoint':j[CC(0x8e8)](),'endPoint':k[CC(0x8e8)](),'textPoint':a8['clone'](),'dimensionLine':a5,'startExtensionLine':a3,'endExtensionLine':a4,'startEndpointMarker':a6,'endEndpointMarker':a7,'label':a9,'text':i[CC(0x82c)]});}catch(aw){console[CC(0x323)]('加载尺寸标注失败:',aw,i);}});}[a0cH(0xa52)](b){const CG=a0cH;this[CG(0x921)]=b,this['dimensions'][CG(0x2cd)](c=>{const CH=CG;c['dimensionLine']['visible']=b,c['startExtensionLine']['visible']=b,c['endExtensionLine'][CH(0x921)]=b,c['startEndpointMarker'][CH(0x921)]=b,c[CH(0x1e0)][CH(0x921)]=b,c['label'][CH(0x921)]=b;});}['getVisible'](){return this['visible'];}[a0cH(0x2d5)](){const CI=a0cH;return this[CI(0xa52)](!this['visible']),this['visible'];}['clear'](){const CJ=a0cH;if(!this['scene'])return;const b=this[CJ(0x770)];this['dimensions'][CJ(0x2cd)](c=>{const CK=CJ;b[CK(0x1da)](c['dimensionLine']),b[CK(0x1da)](c['startExtensionLine']),b[CK(0x1da)](c['endExtensionLine']),b['remove'](c['startEndpointMarker']),b[CK(0x1da)](c['endEndpointMarker']),b[CK(0x1da)](c['label']);}),this['dimensions']=[],this[CJ(0x921)]=!0x0;}}const Qt=class Qt extends a0bm{constructor(b){const CL=a0cH;super(),C(this,CL(0x9e2),[]),C(this,CL(0x2c5),null),this['viewer']=b;}[a0cH(0x46c)](b){const CM=a0cH;this[CM(0x9e2)]=b;}['addPage'](b){const CN=a0cH;this[CN(0x9e2)]['push'](b);}[a0cH(0x86a)](b){const CO=a0cH;this[CO(0x9e2)]['push'](...b);}async['activateSceneByName'](b,c=!0x1){const CP=a0cH,d=this['pages'][CP(0x7bf)](f=>f[CP(0x587)]===b);return d?(await this[CP(0xa67)](d,c),!0x0):(console[CP(0x637)]('Scene\x20\x22'+b+CP(0xa8f)),!0x1);}[a0cH(0x81f)](){const CQ=a0cH;return this['currentPage']?.[CQ(0x587)]||null;}[a0cH(0x1ed)](){const CR=a0cH;return this[CR(0x9e2)][CR(0x941)](b=>b['name']);}async[a0cH(0x339)](b){const CS=a0cH,{camera:c}=b;c['perspective']?(this[CS(0x651)]['styleManager'][CS(0x1de)](),this['viewer'][CS(0x226)]('perspective'),this[CS(0x651)]['camera']['fov']!==c[CS(0x5fe)]&&(this[CS(0x651)][CS(0x3e2)][CS(0x5fe)]=c['fov']),this[CS(0x651)]['camera'][CS(0x1cf)]()):(this['viewer'][CS(0x226)]('orthographic'),this['viewer'][CS(0x5cb)](c[CS(0x75a)]));const d=di(c[CS(0x3e0)]),f=di(c[CS(0x427)]);await this['viewer']['controls'][CS(0x3db)](d['x'],d['y'],d['z'],f['x'],f['y'],f['z'],!0x1);}async['toPage'](b,f=!0x1){const CT=a0cH;this['dispatchEvent']({'type':Qt[CT(0x682)][CT(0xa0b)],'page':b});try{const {camera:g,hidden_layers_index:i=[],section_planes:j=[],display_section:k}=b,m=this[CT(0x651)],p=m[CT(0x4bd)],t=k===!0x0?j:[];p['resetSectionPlanes'](t),m['layerManager'][CT(0x1ce)](i),m['updateMeshVisibleByLayer'](),m[CT(0x7b4)][CT(0x95b)]=!0x1,this['_configureCamera'](g),this[CT(0x4a8)]({'type':Qt['EVENTS'][CT(0x413)],'stage':CT(0x4e2),'page':b}),await m['controls']['reset']();const v=di(g['position']),w=di(g['target']);await m[CT(0x7b4)][CT(0x3db)](v['x'],v['y'],v['z'],w['x'],w['y'],w['z'],!0x1),this['dispatchEvent']({'type':Qt['EVENTS']['PAGE_CHANGE_PROGRESS'],'stage':CT(0x4e9),'page':b}),this[CT(0x857)](),t[CT(0x576)]>0x0&&m['effectManager'][CT(0xaa8)]('ssao',!0x1,m['options'][CT(0x639)]['ssao']),this[CT(0x2c5)]=b;}catch(x){console[CT(0x323)]('Error\x20changing\x20scene\x20page:',x),this[CT(0x4a8)]({'type':Qt['EVENTS']['PAGE_CHANGE_ERROR'],'page':b,'error':x});}finally{this['viewer']['controls']['enabled']=!0x0,this[CT(0x4a8)]({'type':Qt['EVENTS'][CT(0x8b8)],'page':this['currentPage'],'success':!0x0});}}['_configureCamera'](b){const CU=a0cH,c=this[CU(0x651)];b[CU(0xb13)]?(c[CU(0x226)](CU(0xb13)),c['camera'][CU(0x5fe)]!==b['fov']&&(c[CU(0x3e2)][CU(0x5fe)]=b[CU(0x5fe)])):(c[CU(0x226)](CU(0x827)),c['updateOrthographicCamera'](b[CU(0x75a)]));}['_updateOrbitBehavior'](){const CV=a0cH;Promise[CV(0x83e)]()['then'](()=>{const CW=CV,b=this[CW(0x651)];b[CW(0xa3c)]['camera'][CW(0x168)]===CW(0x2f3)&&b['setOrbitBehavior']('fixed');});}};C(Qt,a0cH(0x682),{'PAGE_CHANGE_START':a0cH(0x4fc),'PAGE_CHANGE_PROGRESS':'pageChangeProgress','PAGE_CHANGE_COMPLETE':a0cH(0x700),'PAGE_CHANGE_ERROR':a0cH(0xa12)});let kr=Qt;class Cg{constructor(b){C(this,'layers',[]),this['viewer']=b;}[a0cH(0x46c)](b){this['layers']=b;}['hideByIndices'](b){const CX=a0cH;this['layers'][CX(0x2cd)]((c,d)=>{const CY=CX;c[CY(0x921)]=!b[CY(0x36a)](d);});}['getHiddenIndices'](){const CZ=a0cH;return this[CZ(0x821)]['reduce']((b,c,d)=>(c[CZ(0x921)]===!0x1&&b[CZ(0x50e)](d),b),[]);}[a0cH(0x97c)](){const D0=a0cH,b=[],c=new Map();return this['layers'][D0(0x2cd)]((f,g)=>{const D1=D0;let i=[];f[D1(0x620)]===null||f['folder']===void 0x0?i=[]:typeof f['folder']==D1(0xb0b)?i=[f['folder']]:Array[D1(0x1d4)](f['folder'])&&(i=f['folder']);const j={'type':D1(0x9a3),'name':f['display_name']||f[D1(0x587)]||'未命名图层','layer':f,'layerIndex':g,'id':f['id'],'path':f['path'],'display_name':f['display_name'],'folder':f[D1(0x620)],'visible':f[D1(0x921)],'color':f[D1(0xa89)]};if(i[D1(0x576)]===0x0){b['push'](j);return;}let k='',m=b;for(let p=0x0;p<i[D1(0x576)];p++){const v=i[p],w=k;k=w?w+'/'+v:v;let x=c[D1(0x20c)](k);x||(x={'type':D1(0x620),'name':v,'children':[]},c['set'](k,x),m['push'](x)),p===i[D1(0x576)]-0x1?x['children']['push'](j):m=x[D1(0x330)];}}),b;}[a0cH(0x40e)](b){const D2=a0cH,c=b[D2(0x704)]('-')[D2(0x781)](h=>h['length']>0x0);if(c['length']<0x1||c[D2(0x576)]>0x2)return console[D2(0x637)](D2(0x7ed)+b+'\x22'),[];const d=[];if(this['layers']['forEach']((i,j)=>{const D3=D2;if(!i[D3(0xa88)]||!Array['isArray'](i['path']))return;const k=i['path'];if(k['length']<c[D3(0x576)])return;let m=!0x0;for(let p=0x0;p<c['length'];p++)if(k[p]?.['toLowerCase']()!==c[p]?.['toLowerCase']()){m=!0x1;break;}m&&d['push']({'layer':i,'index':j,'path':k});}),d['length']===0x0)return[];const f=[],g=new Map();return d['forEach'](({layer:i,index:j,path:k})=>{const D4=D2,m=k[D4(0x791)](c[D4(0x576)]),v={'type':D4(0x9a3),'name':i['display_name']||i['name']||'未命名图层','layer':i,'layerIndex':j,'id':i['id'],'path':i[D4(0xa88)],'display_name':i['display_name'],'folder':i[D4(0x620)],'visible':i['visible'],'color':i['color']};if(m[D4(0x576)]===0x0){f['push'](v);return;}let w='',x=f;for(let y=0x0;y<m['length'];y++){const z=m[y],B=w;w=B?B+'/'+z:z;let E=g[D4(0x20c)](w);E||(E={'type':D4(0x620),'name':z,'children':[]},g[D4(0x46c)](w,E),x[D4(0x50e)](E)),y===m[D4(0x576)]-0x1?E[D4(0x330)]['push'](v):x=E[D4(0x330)];}}),f;}}const yg=0.1,wg=0.5,Ig=0.05,Bg=0.5,xg=0x3;class vg{constructor(b,c,d,f=yg,g=wg){const D5=a0cH;this[D5(0x651)]=b;const {content:h}=b;if(!h)throw new Error('content\x20is\x20required');if(!c||!(c instanceof a0c))throw new Error(D5(0xaeb));if(!d||!(d instanceof a0c))throw new Error(D5(0x94c));this['content']=h,this[D5(0x260)]=c['clone'](),this[D5(0x36f)]=d['clone'](),this['averageSize']=(d['x']+d['y']+d['z'])/xg,this['threshold']=this['averageSize']*f,this['maxIntensity']=this[D5(0x91e)]*g,this['step']=this['averageSize']*Ig,this['explosionParts']=[],this['currentIntensity']=0x0,this[D5(0x51e)]=null,this[D5(0x6ec)]=!0x1,this[D5(0x3f3)]={'small':0.25,'medium':0.5,'large':0.75,'max':0x1},this['_tempVector']=new a0c(),this[D5(0x2ed)]=new a0c(),this['_tempVector3']=new a0c(),this[D5(0x409)](),this['bindSliderEvent']();}['getMaxIntensity'](){return this['maxIntensity'];}['getStep'](){return this['step'];}['getThreshold'](){return this['threshold'];}['initExplosionData'](){const D6=a0cH;this[D6(0x773)]=[];const b=this[D6(0x621)],c=this['_tempVector2'],d=this['_tempVector3'],f=new a0c(this[D6(0x36f)]['x']*0.5,this['boxSize']['y']*0.5,this[D6(0x36f)]['z']*0.5);this['content'][D6(0x730)](g=>{const D7=D6;if(g[D7(0x2dc)]&&g[D7(0x921)]){g['geometry'][D7(0x785)]||g[D7(0x45e)]['computeBoundingBox'](),g[D7(0x45e)][D7(0x785)]['getCenter'](b),g['localToWorld'](c['copy'](b));const i=new a0c()[D7(0x1fd)](c,this['boxCenter']);i[D7(0x576)]()<0.000001?i['set'](0x1,0x0,0x0):i['normalize'](),d['subVectors'](c,this['boxCenter']);const j=Math[D7(0x894)](Math[D7(0x2f1)](d['x'])/f['x'],Math[D7(0x2f1)](d['y'])/f['y'],Math['abs'](d['z'])/f['z']),k=this[D7(0x29e)]*(0x1+j*Bg);this['explosionParts'][D7(0x50e)]({'mesh':g,'originalWorldCenter':c[D7(0x8e8)](),'localCenter':b['clone'](),'baseDirection':i['clone'](),'maxPartIntensity':k});}});}['applyExplosion'](b){const D8=a0cH,f=Math['max'](0x0,Math['min'](b,this['maxIntensity'])),g=Math['abs'](this[D8(0x8ea)]-f)>=0.000001,i=Math[D8(0x2f1)](this[D8(0x8ea)])<0.000001,j=Math['abs'](f)<0.000001;if(g&&i&&!j){const p=this['viewer']['styleManager']['isEdgeVisible']();this['originalEdgeVisible']=p,this[D8(0x6ec)]=!0x0,p&&this[D8(0x651)][D8(0x925)]['setEdgeVisible'](!0x1);}if(g&&!i&&j&&this['edgeStateSaved']&&(this['viewer']['styleManager']['setEdgeVisible'](this['originalEdgeVisible']),this['edgeStateSaved']=!0x1,this['originalEdgeVisible']=null),!g)return;this['currentIntensity']=f;const k=this['_tempVector'],m=this[D8(0x5c3)];for(let v=0x0;v<this['explosionParts'][D8(0x576)];v++){const w=this[D8(0x773)][v],x=Math['min'](f,w[D8(0x7e0)]);let y;if(x<m){const z=x/m;y=this[D8(0xb07)](z)*m;}else y=m+(x-m);k['copy'](w['baseDirection'])['multiplyScalar'](y)[D8(0x644)](w[D8(0x414)]),Yr(w[D8(0x209)],k);}}['easeOutQuad'](b){return b*(0x2-b);}['resetExplosion'](){const D9=a0cH;this[D9(0x6ec)]&&(this['viewer']['styleManager']['setEdgeVisible'](this[D9(0x51e)]),this[D9(0x6ec)]=!0x1,this[D9(0x51e)]=null),this['applyExplosion'](0x0);}['setPreset'](b){const Db=a0cH,c=this['presets'][b];if(c===void 0x0){console[Db(0x637)](Db(0x48a)+b+'.\x20Available:\x20'+Object[Db(0x762)](this['presets'])['join'](',\x20'));return;}const d=this['maxIntensity']*c;this[Db(0x759)](d);}['bindSliderEvent'](b='explosionIntensity'){const Dc=a0cH,c=document[Dc(0x8fa)](b);if(!c)return;c['min']=0x0,c[Dc(0x894)]=this['maxIntensity'],c[Dc(0x372)]=0x0,c[Dc(0x3d7)]=this['step'],this[Dc(0x759)](0x0);let d=null;c['addEventListener'](Dc(0x866),f=>{const Df=Dc,g=parseFloat(f[Df(0x427)]['value']);d!==null&&cancelAnimationFrame(d),d=requestAnimationFrame(()=>{this['applyExplosion'](g),d=null;});});}['getCurrentIntensity'](){return this['currentIntensity'];}['getPreset'](b){const Di=a0cH;if(b)return this[Di(0x3f3)][b]!==void 0x0?this[Di(0x29e)]*this[Di(0x3f3)][b]:void 0x0;const c={};for(const [d,f]of Object[Di(0x75b)](this[Di(0x3f3)]))c[d]=this['maxIntensity']*f;return c;}['dispose'](){this['explosionParts']=[];}}class _g{constructor(b,c,d){const Dj=a0cH;C(this,'scene'),C(this,'options'),C(this,Dj(0x260)),C(this,Dj(0x384)),C(this,Dj(0xa62)),C(this,'_directionalLight'),(this['scene']=b,this['options']=c,this['boxCenter']=d,this['_ambientLight']=new a0bn(),this[Dj(0xa62)]=new a0bo(),this[Dj(0x79a)]=new a0aS(),this['initLights']());}[a0cH(0x78b)](){const Dk=a0cH,{light:{hemiLight:b,directionalLight:c,ambientLight:d}}=this[Dk(0xa3c)];this[Dk(0x384)]=new a0bn(d['color'],d['intensity']),this['scene'][Dk(0x644)](this['_ambientLight']),this[Dk(0x384)]['visible']=d['display'],this[Dk(0xa62)]=new a0bo(),this['_hemiLight'][Dk(0x3e0)]['set'](this['boxCenter']['x'],this['boxCenter']['y'],0x3e8),this['_hemiLight']['visible']=b['display'],this[Dk(0x770)][Dk(0x644)](this['_hemiLight']),this['_directionalLight']=new a0aS(c['color'],c['intensity']),this['_directionalLight'][Dk(0x587)]=Dk(0xa10),this['_directionalLight'][Dk(0x921)]=c['display'],this['scene'][Dk(0x644)](this[Dk(0x79a)]);}['updateLight'](b){const Dm=a0cH;if(!this['_directionalLight'])return;const c=new a0c();b['getWorldDirection'](c),c['negate'](),this['_directionalLight'][Dm(0x3e0)]['set'](c['x'],c['y'],c['z']);}get['ambientLight'](){return this['_ambientLight'];}get[a0cH(0x341)](){return this['_hemiLight'];}get['directionalLight'](){const Dp=a0cH;return this[Dp(0x79a)];}[a0cH(0x4ed)](b){const Dq=a0cH;this['boxCenter']=b,this['_hemiLight']['position'][Dq(0x46c)](b['x'],b['y'],0x3e8);}[a0cH(0xa58)](){const Dv=a0cH;this['_ambientLight']&&this[Dv(0x770)]&&this['scene'][Dv(0x1da)](this[Dv(0x384)]),this[Dv(0xa62)]&&this['scene']&&this[Dv(0x770)][Dv(0x1da)](this['_hemiLight']),this[Dv(0x79a)]&&this[Dv(0x770)]&&this['scene'][Dv(0x1da)](this[Dv(0x79a)]);}}const Tg=a0cH(0x6a7),Qg=a0cH(0x638);class Zg{constructor(b,c){const Dw=a0cH;C(this,'el'),C(this,Dw(0xa3c)),C(this,Dw(0x976)),C(this,Dw(0x72d)),C(this,'orthographicCamera'),C(this,Dw(0x1ca)),C(this,Dw(0x883)),C(this,'perspectiveControls'),C(this,'orthographicEffectManager'),C(this,Dw(0x7d3)),C(this,Dw(0x1cd)),C(this,Dw(0x7f8),!0x1),C(this,'SCENES'),C(this,Dw(0x7f6)),C(this,'animationsAfter'),C(this,Dw(0x4b2),{}),C(this,Dw(0x8f2)),C(this,Dw(0x6f2),[]),C(this,'mousemoveEvents',[]),C(this,Dw(0x3f5)),C(this,Dw(0xa76)),C(this,Dw(0x49e)),C(this,'autoRotate'),C(this,'rotateSpeed'),C(this,'clickedMesh'),C(this,Dw(0xadf)),C(this,'layers'),C(this,Dw(0x770)),C(this,Dw(0x260),new a0c(0x0,0x0,0x0)),C(this,Dw(0x177),new a0l()),C(this,Dw(0x74d)),C(this,Dw(0x6f0)),C(this,Dw(0x831),null),C(this,Dw(0x4f2)),C(this,'selectedMaterial'),C(this,Dw(0x673),new a0a9()),C(this,Dw(0x4a2)),C(this,'controls'),C(this,Dw(0x9ae)),C(this,'progressBar'),C(this,'measurementControls',null),C(this,Dw(0xb8a),null),C(this,'planes',null),C(this,Dw(0x9cd),null),C(this,Dw(0x295),null),C(this,'mixer',null),C(this,Dw(0x1c6),null),C(this,'lightManager'),C(this,Dw(0x7cd)),C(this,'styleManager'),C(this,'logger'),C(this,'statistics'),C(this,Dw(0x149),[]),C(this,'edgeData',null),C(this,Dw(0x55f),null),C(this,'delta'),C(this,'composer',null),C(this,'camera'),C(this,Dw(0x355),null),C(this,'effect',null),C(this,'effectManager',null),C(this,Dw(0x9dd)),C(this,Dw(0x1c3),new a0c()),C(this,'visibleObjects',new Set()),C(this,'cameraSleepListener'),C(this,'needUpdatePivotPoint',!0x0),C(this,'controlSpeed',0.002),C(this,'joystick'),C(this,Dw(0x4bd)),C(this,'shortcutManager'),C(this,Dw(0x3c3)),C(this,'layerManager'),C(this,Dw(0x785)),C(this,Dw(0x36f)),C(this,'canvas'),C(this,'raycaster',new a0aJ()),C(this,'selectionZoom'),C(this,'explosionTool'),C(this,'markupTool'),C(this,'annotationTool'),C(this,'dimensionTool'),C(this,'envMap',null),C(this,Dw(0x3cf),null),C(this,Dw(0x773),[]);if(!b)throw new Error(Dw(0x6c9));if(!(b instanceof HTMLElement))throw new Error('Viewer:\x20容器必须是HTMLElement实例');try{const g=new ng()[Dw(0x2be)](Tg,window['location']['hostname']);if(!g['valid'])throw new Error(g['message']);}catch(h){throw new Error(Dw(0x4d0)+(h instanceof Error?h[Dw(0x98d)]:String(h)));}this['el']=b,this['el'][Dw(0xa47)][Dw(0x644)](Qg);const d=c?.['style']?.[Dw(0x223)]??sr[Dw(0x639)][Dw(0x223)];this[Dw(0xa3c)]=zr(this[Dw(0x662)](d),c);const {style:{background:f}}=this['options'];this[Dw(0x4fd)]={},this[Dw(0x149)]=[],this[Dw(0x7f6)]=[],this[Dw(0x891)]=[],this[Dw(0x8f2)]=[],this['dgzSize']=0x0,this['isLargeModel']=!0x1,this['loaded']=!0x1,this[Dw(0x649)]=!0x1,this[Dw(0x23b)]=0x2,this['clickedMesh']=null,this['intersects']=[],this['layers']=[],this['scene']=new a0bp(),this['content']=new a0ay(),this[Dw(0x770)][Dw(0x644)](this['content']),this[Dw(0x74d)]=[],this['lods']=[],this['lookAtCamera']=[],this['selectedMaterial']=new a0g({'color':0xffff00,'opacity':0.5,'transparent':!0x0}),this[Dw(0x6c7)]=new Set(),this['pivotPoint']=new a0c(),this['el']['clientHeight']==0x0&&this['el'][Dw(0xa47)]['add'](Dw(0x4ee)),this['cameraSleepListener']=this[Dw(0x6f6)]['bind'](this),this[Dw(0x8d4)]=new on(Dw(0x982),{'minimumLevel':D[Dw(0x15c)]}),this[Dw(0x8d4)][Dw(0x7d1)](Dw(0x38c),{'container':b['id']||'unnamed-container'}),this['initRendererManager'](),this['logger']['debug']('渲染器管理器已初始化'),this[Dw(0x900)](),this['logger'][Dw(0x7d1)]('相机控制已初始化'),this[Dw(0x7d9)](),this['logger'][Dw(0x7d1)]('后期渲染已初始化'),this['lightManager']=new _g(this['scene'],this['options'],this['boxCenter']),this['logger']['debug'](Dw(0x8a3)),this[Dw(0x4eb)]=new aa(this),this[Dw(0x4eb)][Dw(0x212)](),this['clipper']=new Ag(this),this[Dw(0x1d7)]=new dg(this),this['markupTool']=new gg(this),this['annotationTool']=new pg(this),this[Dw(0x6c2)]=new Eg(this),this[Dw(0x3c3)]=new kr(this),this['layerManager']=new Cg(this),this['logger']['info']('===\x20INFO级别\x20-\x20场景页面和图层管理器已初始化\x20==='),this['logger']['debug']('场景页面和图层管理器已初始化'),this['initAxes'](),this['logger'][Dw(0x404)](Dw(0x25c)),this[Dw(0xb6f)]=this['animate']['bind'](this),this['styleManager']=new Ld(this),this[Dw(0x925)][Dw(0x952)](f),this[Dw(0x8d8)]['firstHitOnly']=!0x0,this['logger']['info']('Viewer实例初始化完成');}[a0cH(0x8b7)](){const Dx=a0cH,b=new $u(0x1388);b['setVisible'](!0x1),this['scene']['add'](b[Dx(0xb81)]()),this[Dx(0x9dd)]=b;}['initRendererManager'](){const Dy=a0cH;this['rendererManager']=new wd(this['el'],this[Dy(0xa3c)],this[Dy(0xad1)][Dy(0x454)](this),()=>{const Dz=Dy;this[Dz(0x8d4)]['info']('WebGL上下文已恢复');}),this[Dy(0x72d)]=this['rendererManager'][Dy(0xadd)](),this['renderer']=this[Dy(0x1cd)]['initWebGLRenderer']();const b=this['rendererManager'][Dy(0x72f)];if(!b)throw new Error(Dy(0x1ff));this[Dy(0x72f)]=b;}[a0cH(0xad1)](b){const DB=a0cH;if(!b){this[DB(0x8d4)]?.['warn']('Context\x20Lost事件为空');return;}b[DB(0x8b9)](),this['logger']?.['warn']('WebGL上下文丢失,开始释放场景资源'),this[DB(0x3a9)]();}[a0cH(0x3a9)](){const DC=a0cH;try{this['logger'][DC(0x404)](DC(0xa32));let b=0x0,c=0x0;this[DC(0x770)]['traverse'](d=>{const DD=DC;if(d['isMesh']){const f=d;if(f[DD(0x45e)])try{f[DD(0x45e)][DD(0xa58)](),b++;}catch(g){this['logger'][DD(0x637)](DD(0x5d3),{'error':g,'objectName':d['name']});}if(f[DD(0xb87)])try{Array['isArray'](f[DD(0xb87)])?(f['material']['forEach'](h=>{const DE=DD;h&&h[DE(0xa58)]();}),c+=f[DD(0xb87)]['length']):(f[DD(0xb87)][DD(0xa58)](),c++);}catch(h){this['logger'][DD(0x637)]('释放材质失败',{'error':h,'objectName':d['name']});}}}),this[DC(0x8d4)]['info']('场景资源释放完成',{'disposedGeometries':b,'disposedMaterials':c});}catch(d){this[DC(0x8d4)][DC(0x323)](DC(0x726),{'error':d});}}[a0cH(0x900)](){const DF=a0cH;this['cameraManager']=new vd({'renderer':this[DF(0x976)],'el':this['el'],'options':this[DF(0xa3c)]}),this['setControl'](this['cameraManager'][DF(0x878)]()),this[DF(0x994)](this['cameraManager']['getOrthographicControls']()),this['perspectiveCamera']=this[DF(0x7cd)]['getPerspectiveCamera'](),this['orthographicCamera']=this[DF(0x7cd)][DF(0x7e6)](),this['perspectiveControls']=this['cameraManager']['getPerspectiveControls'](),this['orthographicControls']=this['cameraManager']['getOrthographicControls'](),this[DF(0x3e2)]=this[DF(0x7cd)]['getCamera'](),this[DF(0x7b4)]=this[DF(0x7cd)]['getControls']();}['toggleCamera'](b){const DG=a0cH;this[DG(0x8d4)][DG(0x404)](DG(0xa4a),{'requestedType':b});const c=this['controls']?.['enabled']??!0x1,i=new a0c(),j=new a0c();this[DG(0x7b4)]&&(this['controls'][DG(0x317)](i),this['controls'][DG(0x3c2)](j));const k=this['cameraManager'][DG(0x226)](b);this[DG(0x3e2)]=k['camera'],this[DG(0x7b4)]=k['controls'];const m=b?b===DG(0x827):!(this['camera']instanceof a0aL);if(m&&(this['logger'][DG(0x404)](DG(0x57d)),this[DG(0xa3c)]['style']['ssao'][DG(0x95b)]=!0x1,this[DG(0x370)]=this['orthographicEffectManager'],this[DG(0x36f)]&&this['updateOrthographicCamera'](),this[DG(0x8d4)][DG(0x404)]('设置透视相机模式'),this['options'][DG(0x639)][DG(0x6fe)]['enabled']=!0x0,this[DG(0x370)]=this[DG(0x7d3)]),c&&this[DG(0x7b4)]&&(this[DG(0x7b4)][DG(0x95b)]=!0x0,this[DG(0x8d4)][DG(0x7d1)](DG(0x9f9))),i[DG(0x869)]()>0.01&&j[DG(0x869)]()>0.01&&i[DG(0x5ac)](j)>0.01)this['controls'][DG(0x3db)](i['x'],i['y'],i['z'],j['x'],j['y'],j['z'],!0x1),this[DG(0x8d4)][DG(0x7d1)](DG(0x6dd),{'position':i,'target':j});else{if(this['boxCenter']&&this[DG(0x36f)]){if(this[DG(0x8d4)]['debug']('使用模型中心点适配视图'),m){const v=Math[DG(0x894)](this['boxSize']['x'],this['boxSize']['y'],this['boxSize']['z']),w=v*1.5,x=Math['PI']/0x4,y=new a0c(Math[DG(0x8b0)](x)*w,Math['cos'](x)*w,Math['sin'](x)*w),z=this[DG(0x260)][DG(0x8e8)]()['add'](y);this[DG(0x7b4)]['setLookAt'](z['x'],z['y'],z['z'],this['boxCenter']['x'],this[DG(0x260)]['y'],this['boxCenter']['z'],!0x1);const B=v*1.2;this[DG(0x5cb)](B);}else this[DG(0x197)](!0x1);}}const p=this[DG(0xa3c)][DG(0x3e2)]['orbitBehavior'];p&&this['setOrbitBehavior'](p);}[a0cH(0x994)](b){const DH=a0cH;this[DH(0x8d4)][DH(0x7d1)]('配置相机控制器参数'),b['smoothTime']=0.15,b[DH(0x59f)]=0.03,b['azimuthRotateSpeed']=0.15,b[DH(0x5d7)]=0.18,b[DH(0x431)]=0.3,b['dollyToCursor']=!0x0,b['restThreshold']=0.5,b[DH(0x43b)]['middle']=Te['ACTION']['TRUCK'];let c=null;b[DH(0x1f6)](DH(0x41b),()=>{const DI=DH;switch(b['currentAction']){case Te['ACTION']['ROTATE']:case Te['ACTION'][DI(0xab7)]:{let d=function(x){return x>=0.7?0.7:x<=-0.7?-0.7:x;},i=function(x){return x>=0.7?0.7:x<=-0.7?-0.7:x;};if(this[DI(0xa3c)][DI(0x3e2)]['orbitBehavior']!=DI(0xb42)){this[DI(0x72f)]['classList'][DI(0x644)]('--look_around'),this[DI(0x72f)][DI(0xa47)][DI(0x1da)](DI(0x154));return;}else this['canvas'][DI(0xa47)]['add']('--orbit'),this['canvas']['classList'][DI(0x1da)](DI(0x69d));const j=new a0l();j['x']=d(this[DI(0x177)]['x']),j['y']=i(this[DI(0x177)]['y']);const k=0.85;(j['y']>0x0||j['y']<0x0)&&(j['y']*=k),(j['x']>0x0||j['x']<0x0)&&(j['x']*=k);let m=Xs(this[DI(0x8d8)],this[DI(0x3e2)],Array[DI(0xb73)](this['visibleObjects']),j,0.3,0.15);const p=m?m[DI(0x781)](x=>!this[DI(0x415)](x[DI(0x21d)])):[],v=this['camera']instanceof a0aL?this[DI(0x3e2)]['far']*0.8:0x1/0x0;let w=null;if(p&&p['length']>0x0){const x=p['find'](y=>y['distance']<=v)||p[0x0];if(x){const y=new a0c()['subVectors'](this[DI(0x3e2)]['position'],x['point'])[DI(0x456)](),z=x[DI(0x21d)]['distanceTo'](this[DI(0x3e2)]['position']),B=0.08-Math[DI(0x2f8)](z/0x3e8,0x1)*0.03,F=z*B;w=x[DI(0x21d)][DI(0x8e8)]()['add'](y[DI(0x8e8)]()['multiplyScalar'](F));}}w||(w=this[DI(0x260)][DI(0x8e8)]()),this[DI(0x1c3)][DI(0x195)](w),this['controls'][DI(0x46e)](this[DI(0x1c3)]['x'],this[DI(0x1c3)]['y'],this['pivotPoint']['z']),c=J({'className':'pivot'}),c[DI(0x3e0)]['copy'](this[DI(0x1c3)]),this[DI(0x770)]['add'](c);break;}case Te[DI(0x451)][DI(0x2a0)]:case Te['ACTION'][DI(0x522)]:{this['canvas'][DI(0xa47)]['add']('--pan');break;}}}),b[DH(0x1f6)](DH(0x27c),()=>{const DJ=DH;c&&this['scene']['remove'](c),this['options'][DJ(0x3e2)][DJ(0x168)]==='auto'&&this[DJ(0x72f)]['classList'][DJ(0x1da)](DJ(0x69d)),this['canvas']['classList'][DJ(0x1da)](DJ(0x154),DJ(0x294));}),b['enabled']=!0x1,this['logger']['debug']('相机控制器配置完成');}[a0cH(0x7d9)](){const DK=a0cH;this[DK(0x7d3)]=new ea(this[DK(0x976)],this[DK(0x770)],this[DK(0x1ca)],this['el']['clientWidth'],this['el'][DK(0x281)]),this['orthographicEffectManager']=new ea(this['renderer'],this[DK(0x770)],this[DK(0x7c1)],this['el'][DK(0x5e7)],this['el']['clientHeight']);const {ssao:b}=this['options'][DK(0x639)];b?.['enabled']&&(this['perspectiveEffectManager']['toggleEffect'](DK(0x6fe),b['enabled'],b),this[DK(0x600)][DK(0xaa8)](DK(0x6fe),b[DK(0x95b)],b)),this['effectManager']=this[DK(0x7d3)];}['isMobileEnhanced'](){return sn();}['getWidth'](b,c=this[a0cH(0x3e2)]){const DL=a0cH;if(!b||!(b instanceof a0c))throw new Error(DL(0x2f4));if(!c)throw new Error('getWidth:\x20camera不能为空');const d=new a0c()['setFromMatrixPosition'](c['matrixWorld']);return b['distanceTo'](d)/0x12c;}['initEvent'](){const DM=a0cH;document['addEventListener']('fullscreenchange',this[DM(0x3a3)][DM(0x454)](this)),document['addEventListener']('webkitfullscreenchange',this[DM(0x3a3)]['bind'](this)),document['addEventListener'](DM(0x7cb),this[DM(0x3a3)]['bind'](this)),this['canvas'][DM(0x1f6)](DM(0xb16),c=>{const DN=DM,d=this[DN(0x72f)]['getBoundingClientRect']();this[DN(0x177)]['x']=(c[DN(0xa4c)]-d[DN(0x4d1)])/d['width']*0x2-0x1,this[DN(0x177)]['y']=-((c[DN(0x6f9)]-d[DN(0x2a9)])/d[DN(0x75a)])*0x2+0x1,this['mousemoveEvents'][DN(0x2cd)](f=>{f(c);});}),this[DM(0x72f)]['addEventListener'](DM(0x942),this['onContextmenu'][DM(0x454)](this)),window['addEventListener'](DM(0x3a3),this['resize']['bind'](this),!0x1);const b=new Uu(this[DM(0x976)]['domElement']);b['on'](DM(0x7e7),this[DM(0x7e7)][DM(0x454)](this)),b['on']('mouseUp',this[DM(0x910)]['bind'](this)),b['on'](DM(0x219),this[DM(0xa33)][DM(0x454)](this)),this[DM(0x4eb)]||(this[DM(0x4eb)]=new aa(this),this[DM(0x4eb)][DM(0x212)]()),this['el']['addEventListener']('selectstart',function(c){const DO=DM,d=c[DO(0x427)];d&&d[DO(0xb0e)]===0x3||c['preventDefault']();});}[a0cH(0x662)](b=0x0){const DP=a0cH;return(typeof b!='number'||b<0x0||!Number['isInteger'](b))&&(this['logger']['warn']('getOptions:\x20styleIndex无效,使用默认值0',{'styleIndex':b}),b=0x0),(!Ut||!Array[DP(0x1d4)](Ut)||b>=Ut[DP(0x576)])&&(this['logger'][DP(0x637)](DP(0x5e9),{'styleIndex':b,'stylesLength':Ut?.[DP(0x576)]}),b=0x0),sr['style']=Ut[b],JSON[DP(0x20f)](JSON['stringify'](sr));}['changeStyle'](b=0x0){const DQ=a0cH;if((typeof b!='number'||b<0x0||!Number['isInteger'](b))&&(this[DQ(0x8d4)][DQ(0x637)](DQ(0x71d),{'styleIndex':b}),b=0x0),!this['styleManager']){this[DQ(0x8d4)][DQ(0x323)]('changeStyle:\x20styleManager未初始化');return;}try{this[DQ(0x925)]['changeStyle'](b,c=>{const DR=DQ;if(!this['effectManager']){this[DR(0x8d4)][DR(0x637)]('changeStyle:\x20effectManager未初始化,跳过效果切换');return;}this[DR(0x925)][DR(0x1de)](c,{'showAxes':d=>this['showAxes'](d),'toggleEffect':(d,f,g)=>{const DS=DR;this[DS(0x370)]&&this[DS(0x370)]['toggleEffect'](d,f,g);}});});}catch(c){this[DQ(0x8d4)]['error'](DQ(0x7a2),{'error':c,'styleIndex':b});}}['enableBlackWhiteMode'](){const DT=a0cH;if(!this[DT(0x925)]){this['logger'][DT(0x323)]('enableBlackWhiteMode:\x20styleManager未初始化');return;}try{this['styleManager'][DT(0x3ca)]();}catch(b){this[DT(0x8d4)]['error']('enableBlackWhiteMode:\x20启用黑白模式失败',{'error':b});}}[a0cH(0x439)](){const DU=a0cH;if(!this['styleManager']){this[DU(0x8d4)]['error'](DU(0x709));return;}try{this['styleManager']['disableBlackWhiteMode']();}catch(b){this['logger'][DU(0x323)]('disableBlackWhiteMode:\x20禁用黑白模式失败',{'error':b});}}[a0cH(0x5b9)](b){const DV=a0cH;if(typeof b!='string'||!b['trim']())throw new Error(DV(0x715));if(!this[DV(0x770)])throw new Error(DV(0x713));if(!this['controls'])throw new Error('zoomByNodeName:\x20controls未初始化');try{const c=this[DV(0x770)][DV(0xb22)]?.(b);if(!c)throw new Error(DV(0x423)+b+'\x22的节点');const d=new a0c(),f=new a0c();this['controls']['getPosition'](d);const g=Ya(c);f['copy'](g),this['controls'][DV(0x7f4)](!0x1),this[DV(0x7b4)][DV(0x3db)](d['x'],d['y'],d['z'],f['x'],f['y'],f['z']);}catch(h){throw this['logger']['error'](DV(0x462),{'error':h,'nodeName':b}),h;}}['setFogVisible'](b){const DW=a0cH;if(typeof b!='boolean'){this[DW(0x8d4)]['warn']('setFogVisible:\x20visible必须是布尔值',{'visible':b});return;}if(!this[DW(0x770)]){this['logger']['warn']('setFogVisible:\x20scene未初始化');return;}this['scene'][DW(0x41d)]?this['scene'][DW(0x41d)][DW(0x921)]=b:b&&this['logger']['warn']('setFogVisible:\x20场景中未设置雾效果');}['addScene'](){const DX=a0cH;if(!this['controls'])throw new Error('addScene:\x20controls未初始化');try{const b='scene'+Object['keys'](this['SCENES'])[DX(0x576)],f=new a0c(),g=new a0c();this['controls'][DX(0x317)](f),this['controls'][DX(0x3c2)](g);const {x:i,y:j,z:k}=f,{x:m,y:p,z:u}=g,v=[i,j,k,m,p,u,this['options'][DX(0x181)]['enableTransition']];this['SCENES'][b]=v,this[b]=()=>{const DY=DX;this[DY(0x7b4)]&&this[DY(0x7b4)][DY(0x3db)](...this[DY(0x4fd)][b]);};const w='场景'+Object[DX(0x762)](this[DX(0x4fd)])['length'];return this['logger'][DX(0x7d1)]('添加场景',{'name':w,'key':b,'sceneData':v}),{'name':w,'key':b};}catch(x){throw this['logger'][DX(0x323)]('addScene:\x20添加场景失败',{'error':x}),x;}}[a0cH(0x6d2)](){const DZ=a0cH;try{if(this[DZ(0x55f)]&&(this['scene']['remove'](this[DZ(0x55f)]),this[DZ(0x55f)]=null),!this[DZ(0x4a2)]){this['logger']['warn']('clear:\x20content未初始化');return;}[...this['content']['children']]['forEach'](b=>{const E0=DZ;this['content'][E0(0x1da)](b);}),this[DZ(0x4a2)][DZ(0x730)](b=>{const E1=DZ;if(!b[E1(0x2dc)])return;const c=b;if(c['geometry'])try{c['geometry']['dispose']();}catch(d){this[E1(0x8d4)]['warn']('clear:\x20释放几何体失败',{'error':d,'nodeName':b[E1(0x587)]});}}),this['logger']['debug'](DZ(0x445));}catch(b){this[DZ(0x8d4)][DZ(0x323)](DZ(0x563),{'error':b});}}['_createCameraElement'](){const E2=a0cH;throw new Error(E2(0x88d));}[a0cH(0xaba)](){return this['camera']?this['camera']instanceof a0aL:(this['logger']['warn']('isPerspective:\x20camera未初始化'),!0x1);}['getCameraAspectDistance'](){const E3=a0cH;if(!this[E3(0x36f)])return this[E3(0x8d4)]['warn']('getCameraAspectDistance:\x20boxSize未初始化,返回默认值1000'),0x3e8;const b=h=>h*(Math['PI']/0xb4),{x:d,y:f,z:g}=this['boxSize'];if(this[E3(0xaba)]()){if(!this[E3(0x1ca)])return this[E3(0x8d4)]['warn']('getCameraAspectDistance:\x20perspectiveCamera未初始化'),0x3e8;const h=this['perspectiveCamera'][E3(0x46b)],i=b(this['perspectiveCamera']['fov']),j=0x2*Math['atan'](Math[E3(0x580)](i/0x2)*h);return Math[E3(0x894)](d/(0x2*Math['tan'](j/0x2)),f/(0x2*Math[E3(0x580)](i/0x2)),g/0x2)*2.2;}else{if(!this['orthographicCamera'])return this['logger'][E3(0x637)]('getCameraAspectDistance:\x20orthographicCamera未初始化'),0x3e8;const k=this[E3(0x7c1)][E3(0x694)];return k<=0x0?(this['logger'][E3(0x637)]('getCameraAspectDistance:\x20zoom值无效',{'zoom':k}),0x3e8):Math[E3(0x894)](d,f,g)*2.2/k;}}[a0cH(0x197)](b=!0x1){const E4=a0cH;if(!this['controls']){this[E4(0x8d4)]['error'](E4(0x9b8));return;}if(!this['perspectiveControls']){this[E4(0x8d4)]['error'](E4(0x5cc));return;}if(!this['boxCenter']){this[E4(0x8d4)]['error']('zoomRange:\x20boxCenter未初始化');return;}try{this[E4(0x7b4)][E4(0x2da)](0x0,0x0,0x0);const d=k=>k*(Math['PI']/0xb4),f=this[E4(0x260)][E4(0x8e8)](),g=this['getCameraAspectDistance']();if(!Number['isFinite'](g)||g<=0x0){this['logger']['warn'](E4(0x7d6),{'distance':g});return;}const h=d(0x0),i=d(0x2d),j=new a0c()['setFromSphericalCoords'](g,i,h)[E4(0x644)](f);this['perspectiveControls']['setLookAt'](j['x'],j['y'],j['z'],this['boxCenter']['x'],this[E4(0x260)]['y'],this[E4(0x260)]['z'],b);}catch(k){this[E4(0x8d4)][E4(0x323)](E4(0xbab),{'error':k});}}[a0cH(0x5c1)](b){const E5=a0cH;return b?typeof b[E5(0x587)]==E5(0xb0b)&&b[E5(0x587)][E5(0x36a)]('ROOT')&&b['parent']?b[E5(0x717)]['visible']:b['visible']:(this['logger'][E5(0x637)]('objectIsVisible:\x20object为空'),!0x1);}['hideObject'](b){const E6=a0cH;if(!b){this[E6(0x8d4)]['warn']('hideObject:\x20object为空');return;}typeof b['name']==E6(0xb0b)&&b[E6(0x587)][E6(0x36a)]('ROOT')?b['parent']&&(b[E6(0x717)][E6(0x921)]=!0x1):b[E6(0x921)]=!0x1,b[E6(0x821)]&&(b[E6(0x821)]['set'](0x1),b['layers'][E6(0x9ef)](0x1));}[a0cH(0x343)](b){const E7=a0cH;if(!b){this['logger'][E7(0x637)]('showObject:\x20object为空');return;}typeof b['name']==E7(0xb0b)&&b['name']['includes']('ROOT')?b['parent']&&(b['parent']['visible']=!0x0):b['visible']=!0x0,b['layers']&&(b['layers'][E7(0x46c)](0x0),b['layers']['enable'](0x0));}[a0cH(0x1c4)](){const E8=a0cH,b=this[E8(0x3c1)]['getHiddenIndices']();this['content'][E8(0x730)](c=>{const E9=E8;if(this['showObject'](c),c instanceof a0aw){const d=c;d['showAllInstances']&&d[E9(0x6ac)](),b['forEach'](f=>{d['setLayerVisibility']&&d['setLayerVisibility'](f,!0x1);});}else{const f=c['userData']?.['layers'];f?.['length']&&f[E9(0x6a3)](g=>!this[E9(0x3c1)][E9(0x821)][g]?.['visible'])&&this[E9(0x192)](c);}}),this['visibleObjects']['clear'](),this[E8(0x4a2)][E8(0x95e)](c=>{const Eb=E8;(c['isMesh']||c['type']==='LOD')&&this[Eb(0x6c7)]['add'](c);}),this['styleManager']['updateEdge']();}async['loadZipAsync'](b,c=()=>{}){const Ef=a0cH;if(!b)throw new Error(Ef(0x3f2));typeof c!=Ef(0x199)&&(this[Ef(0x8d4)]['warn'](Ef(0x599)),c=()=>{});const d=Date['now']();this['progressBar']=new Nu(this['el'],'正在初始化',0x0),this['modelLoader']=new Ou(this),this[Ef(0x72f)][Ef(0xa47)][Ef(0x644)]('--wait');const f=typeof b==Ef(0xb0b)?b:b['toString']();await this['modelLoader']['load'](f,g=>{const Ej=Ef;let {message:i,percentage:j,data:k}=g;if(this['progressBar']['updateProgress'](j),i=='download')this[Ej(0xb04)][Ej(0x666)](Ej(0x65b)+j+Ej(0x6ea)+la(g[Ej(0xb29)])+'/s)');else{if(i=='unzip')this[Ej(0xb04)][Ej(0x666)]('解压文件\x20'+j+Ej(0x6ea)+la(g['filesize'])+')');else{if(i==Ej(0x196)){const {layers:m,pages:p}=k||{};if(this[Ej(0x8d4)]['info']('解析模型信息完成',{'layerCount':m?.['length']||0x0,'pageCount':p?.['length']||0x0}),this[Ej(0x3c1)][Ej(0x46c)](m),this[Ej(0x8d4)][Ej(0x7d1)](Ej(0xad4),{'layerCount':m?.['length']||0x0}),this[Ej(0x821)]=this['layerManager']['layers'],this[Ej(0x3c3)]['set'](p),this[Ej(0x8d4)]['debug'](Ej(0x526),{'pageCount':p?.[Ej(0x576)]||0x0}),this['scenePageManager'][Ej(0x9e2)]['length']>0x0){const v=this[Ej(0xa3c)][Ej(0x23e)];if(v?.['autoSceneIndex']!=-0x1){const w=this[Ej(0x3c3)][Ej(0x9e2)][v[Ej(0x299)]];w?(this[Ej(0x8d4)][Ej(0x404)](Ej(0xad3),{'index':v['autoSceneIndex'],'name':w['name']}),this['scenePageManager'][Ej(0x339)](w)):this[Ej(0x8d4)]['warn']('指定的场景页面索引不存在',{'index':v[Ej(0x299)]});}}this[Ej(0x8d4)][Ej(0x7d1)](Ej(0x65a)),requestAnimationFrame(this['animate']);}else this[Ej(0x8d4)][Ej(0x7d1)]('加载进度更新',{'message':i,'percentage':j}),this['progressBar']['updateMessage'](i+'\x20'+j+'%');}}}),this[Ef(0x8d4)]['info']('模型加载完成,准备后处理',{'loadTime':Date['now']()-d}),await this['onLoaded']();}['initJoystick'](b,c=0x64){const Ek=a0cH;if((typeof c!=Ek(0x7ca)||c<=0x0)&&(this['logger'][Ek(0x637)](Ek(0xb67),{'size':c}),c=0x64),this[Ek(0xb7f)])return this[Ek(0xb7f)];let d;b&&b instanceof HTMLElement?d=b:(d=document[Ek(0x558)](Ek(0x4b6)),d['id']=Ek(0xb7f),this['el']['appendChild'](d));const f=new eo({'zone':d,'onMove':(g,h)=>{const Em=Ek,i=g['toLowerCase']()['replace']('\x20',''),j=1.6;switch(i){case'up':this['controls'][Em(0x4c0)](j*this[Em(0x815)],!0x1);break;case'down':this['controls'][Em(0x4c0)](-1.6*this[Em(0x815)],!0x1);break;case'left':this['controls']['truck'](-1.6*this['delta'],0x0,!0x1);break;case Em(0x889):this[Em(0x7b4)][Em(0xb24)](j*this['delta'],0x0,!0x1);break;case'up_left':this['controls'][Em(0xb24)](-1.6*this['delta'],0x0,!0x1),this['controls']['forward'](j*this['delta'],!0x1);break;case Em(0x461):this['controls']['forward'](j*this[Em(0x815)],!0x1),this[Em(0x7b4)][Em(0xb24)](j*this['delta'],0x0,!0x1);break;case Em(0x6fa):this['controls']['forward'](-1.6*this['delta'],!0x1),this[Em(0x7b4)]['truck'](-1.6*this['delta'],0x0,!0x1);break;case'down_right':this[Em(0x7b4)][Em(0x4c0)](-1.6*this[Em(0x815)],!0x1),this['controls'][Em(0xb24)](j*this['delta'],0x0,!0x1);break;default:console['warn'](Em(0x15b),g);}},'onEnd':()=>{},'onUp':()=>{const En=Ek;this[En(0x7b4)]['elevate'](0x6*this['delta'],!0x1);},'onDown':()=>{const Ep=Ek;this[Ep(0x7b4)]['elevate'](-0x6*this[Ep(0x815)],!0x1);},'size':c,'speedMultiplier':0x8});this[Ek(0xb7f)]=f;}async['onLoaded'](){const Eq=a0cH,{control:b}=this[Eq(0xa3c)];b[Eq(0x649)]&&setTimeout(()=>{this['autoRotate']=!0x0;},0x1f4),this['visibleObjects'][Eq(0x6d2)](),this[Eq(0x4a2)][Eq(0x95e)](k=>{const Ev=Eq;(k['isMesh']||k['type']==='LOD')&&this['visibleObjects'][Ev(0x644)](k);}),this['initEvent'](),this[Eq(0x49e)]=!0x0;const {boundingBox:d,boxCenter:f,boxSize:g}=tc(this[Eq(0x4a2)]);this[Eq(0x785)]=d,this[Eq(0x260)]=f,this[Eq(0x36f)]=g,this[Eq(0x7cd)][Eq(0xbaa)](f,g);const {near:h,far:i}=sc(this[Eq(0x785)],this['camera']);this['camera']['near']=h,this['camera'][Eq(0x42b)]=i,this[Eq(0x3e2)]['updateProjectionMatrix'](),this[Eq(0x8d4)][Eq(0x404)]('相机投影矩阵已更新',{'near':h,'far':i}),this['setOrbitBehavior'](),this['progressBar'][Eq(0x73d)](),this['logger']['debug']('进度条已关闭'),this[Eq(0x72f)][Eq(0xa47)]['remove'](Eq(0x60d)),this[Eq(0x8d4)][Eq(0x7d1)]('移除加载等待状态'),this[Eq(0x3c3)][Eq(0x9e2)][Eq(0x576)]==0x0&&(this['logger']['info'](Eq(0xa41)),this[Eq(0x197)]());const j=Math['max'](this[Eq(0x36f)]['x'],this['boxSize']['y'],this[Eq(0x36f)]['z']);this[Eq(0x8d4)][Eq(0x7d1)](Eq(0x927),{'maxSize':j}),j>=0xc8&&(this['logger'][Eq(0x404)](Eq(0x9af),{'currentFar':this['perspectiveCamera'][Eq(0x42b)],'newFar':j*0xa}),this[Eq(0x1ca)][Eq(0x42b)]=j*0xa,this[Eq(0x1ca)][Eq(0x1cf)]()),this['statistics']=mr(this['scene']),this['logger'][Eq(0x404)]('几何体统计信息已计算',{'triangles':this['statistics'][Eq(0x5dd)],'vertices':this['statistics'][Eq(0x523)],'geometries':this['statistics'][Eq(0x7f0)]}),this['edgeData']&&(this['statistics'][Eq(0x344)]=this['edgeData'][Eq(0x575)]['length'],this['logger'][Eq(0x7d1)](Eq(0x556),{'edgeCount':this['statistics'][Eq(0x344)]})),this['controls'][Eq(0x95b)]=!0x0,this['logger'][Eq(0x404)](Eq(0x2d1)),this['resize'](),this['logger']['debug']('执行视图大小调整');}[a0cH(0x179)](){}['setOrbitBehavior'](b=this[a0cH(0xa3c)]['camera'][a0cH(0x168)]){const Ew=a0cH;if(!this[Ew(0x7b4)]){this['logger'][Ew(0x637)]('相机控制器未初始化,无法设置轨道行为');return;}b=b??this['options'][Ew(0x3e2)]['orbitBehavior'],this[Ew(0x8d4)][Ew(0x404)]('设置轨道行为模式',{'behavior':b}),b===Ew(0xb42)?(this['logger']['debug']('设置自动轨道行为'),this['controls'][Ew(0x1f6)]('sleep',this['cameraSleepListener']),this['camera']instanceof a0aL?(this['controls']['mouseButtons'][Ew(0x489)]=Te[Ew(0x451)]['DOLLY'],this[Ew(0x8d4)]['debug']('滚轮设置为缩放(Dolly)操作')):(this['controls']['mouseButtons'][Ew(0x489)]=Te[Ew(0x451)]['ZOOM'],this[Ew(0x8d4)][Ew(0x7d1)](Ew(0x674))),this['cameraSleep'](),this['canvas'][Ew(0xa47)][Ew(0x1da)]('--look_around')):b===Ew(0x2f3)&&(this[Ew(0x8d4)][Ew(0x7d1)](Ew(0x2a5)),this['controls']['removeEventListener']('sleep',this[Ew(0x6e7)]),this['controls'][Ew(0x43b)]['wheel']=Te[Ew(0x451)]['NONE'],this[Ew(0x8d4)][Ew(0x7d1)]('滚轮操作已禁用'),this['setOrbitPointByCamera'](),this['canvas']['classList']['add']('--look_around')),this[Ew(0xa3c)][Ew(0x3e2)][Ew(0x168)]=b,this[Ew(0x8d4)][Ew(0x7d1)]('轨道行为模式更新完成');}[a0cH(0x7a4)](){const Ex=a0cH,{position:b}=this['camera'];this['logger']['debug']('根据相机位置设置轨道点',{'cameraPosition':{'x':b['x'],'y':b['y'],'z':b['z']},'orbitPoint':{'x':b['x']-0.01,'y':b['y']-0.01,'z':b['z']}}),this['controls'][Ex(0x46e)](b['x']-0.01,b['y']-0.01,b['z']);}['handleContinuousAction'](){const Ey=a0cH;this[Ey(0x8d4)]['warn'](Ey(0x291));}['addEvent'](b){const Ez=a0cH;if(typeof b!=Ez(0x199)){this['logger'][Ez(0x637)](Ez(0x213),{'func':b});return;}b();}['showAxes'](b){const EB=a0cH;if(typeof b!='boolean'){this['logger'][EB(0x637)]('showAxes:\x20show必须是布尔值',{'show':b});return;}this['axes']?this['axes'][EB(0xa52)](b):this[EB(0x8d4)]['warn']('showAxes:\x20axes未初始化');}[a0cH(0x81c)](){const EC=a0cH;this['options'][EC(0xb7d)]['autoRotate']&&(this[EC(0x649)]=!0x1);}['controlStart'](){const ED=a0cH;this[ED(0xa3c)][ED(0xb7d)][ED(0x649)]&&(this[ED(0x649)]=!0x1);}['cameraSleep'](){const EE=a0cH;if(!this['needUpdatePivotPoint']||this['options']['camera'][EE(0x168)]=='fixed')return;let b=Xs(this[EE(0x8d8)],this[EE(0x3e2)],Array[EE(0xb73)](this['visibleObjects'])),c=this['boxCenter'];if(b&&b['length']>0x0){const d=b['filter'](f=>!this[EE(0x415)](f[EE(0x21d)]));d['length']>0x0&&(c=d[0x0]['point']);}this['controls']['setOrbitPoint'](c['x'],c['y'],c['z']),this[EE(0x1c3)]=c;}['isObjectAndParentsVisible'](b){const EF=a0cH;if(!b)return!0x1;let c=b[EF(0x921)];return b[EF(0x76a)](d=>{const EG=EF;d[EG(0x921)]||(c=!0x1);}),c;}['onMouseUp'](b){const EH=a0cH,c=b['target'];if(!c||c[EH(0x5fd)]!=EH(0xa09))return;this[EH(0x8d8)][EH(0x5f4)](this[EH(0x177)],this[EH(0x3e2)]),this['raycaster'][EH(0xa36)]=!0x0;let d=this[EH(0x8d8)][EH(0xa6b)](Array['from'](this[EH(0x6c7)]));this[EH(0x4b2)][EH(0x705)]&&this[EH(0x4b2)]['mouseup'][EH(0x2cd)](f=>{f(b,{'hits':d});});}['leftMouseDown'](b){}[a0cH(0x7ce)](){const EI=a0cH;this[EI(0x8d8)][EI(0x5f4)](this[EI(0x177)],this[EI(0x3e2)]),this['raycaster'][EI(0xa36)]=!0x0;let b=this[EI(0x8d8)][EI(0xa6b)](Array[EI(0xb73)](this['visibleObjects']));this[EI(0x6f2)]['forEach'](c=>{c(b);});}[a0cH(0xa33)](b){const EJ=a0cH,c=b['target'];return!c||c[EJ(0x5fd)]!==EJ(0xa09)?!0x1:(this[EJ(0xa3c)]['camera'][EJ(0x168)]=='auto'&&(this['needUpdatePivotPoint']=!0x0,this[EJ(0x6f6)]()),!0x0);}['restoreMaterials'](){const EK=a0cH;this[EK(0x770)]['traverse'](b=>{const EL=EK,c=b;c['isMesh']&&c[EL(0x47e)][EL(0x283)]&&(c[EL(0xb87)]=c[EL(0x47e)]['originalMaterial'],delete c[EL(0x47e)][EL(0x283)]);});}['getFirstMesh'](b){const EM=a0cH;for(let c=0x0;c<b['length'];c++)if(b[c][EM(0x8c0)]['isMesh'])return b[c][EM(0x8c0)];}[a0cH(0x3c4)](b){const EN=a0cH;if(!(!b||!b[EN(0x330)])){for(let c=0x0;c<b['children']['length'];c++){const d=b[EN(0x330)][c];if(d instanceof a0k)return d;}return!0x1;}}['registerEvent'](b,c){const EO=a0cH;if(!b||typeof b!=EO(0xb0b)){this[EO(0x8d4)][EO(0x637)](EO(0x520),{'eventName':b});return;}if(typeof c!=EO(0x199)){this[EO(0x8d4)]['warn'](EO(0xb53),{'eventName':b});return;}switch(b){case'click':this[EO(0x8f2)]['push'](c);break;case EO(0x942):this['contextmenuEvents']['push'](c);break;default:this[EO(0x8d4)][EO(0x637)]('registerEvent:\x20未知的事件类型',{'eventName':b});}}[a0cH(0x1f6)](b,c){const EP=a0cH;var d;(d=this[EP(0x4b2)])[b]||(d[b]=[]),this['events'][b][EP(0x50e)](c);}['removeEventListener'](b,c){const EQ=a0cH;if(!b||typeof b!='string'){this['logger'][EQ(0x637)]('removeEventListener:\x20eventName无效',{'eventName':b});return;}if(typeof c!=EQ(0x199)){this[EQ(0x8d4)][EQ(0x637)]('removeEventListener:\x20callback必须是函数',{'eventName':b});return;}if(!this['events'][b]){this['logger'][EQ(0x637)](EQ(0x6f4),{'eventName':b});return;}this['events'][b]=this[EQ(0x4b2)][b]['filter'](d=>d!==c);}[a0cH(0xb50)](b,c){const ER=a0cH;if(typeof b!='function'){this['logger']['error'](ER(0xa6e));return;}this['animations'][ER(0x50e)](b),c&&typeof c==ER(0x199)?this[ER(0x891)][ER(0x50e)](c):c&&this['logger'][ER(0x637)](ER(0x569),{'animationFuncAfter':c});}[a0cH(0xb6f)](){const ES=a0cH;this[ES(0x7f6)][ES(0x2cd)](f=>{f({'currentTime':performance['now']()});});let b;const c=this['clock']['getDelta'](),{ssao:d}=this[ES(0xa3c)][ES(0x639)];this[ES(0x3e2)]instanceof a0aL?(b=this['perspectiveControls']['update'](c),this[ES(0x976)]['render'](this[ES(0x770)],this[ES(0x1ca)]),this['cssRenderer']['render'](this['scene'],this['perspectiveCamera']),d[ES(0x95b)]&&this[ES(0x7d3)]['render']()):(b=this['orthographicControls']['update'](c),this[ES(0x976)][ES(0x181)](this['scene'],this[ES(0x7c1)]),this[ES(0x72d)]&&this['cssRenderer']['render'](this[ES(0x770)],this['orthographicCamera']),d['enabled']&&this['orthographicEffectManager'][ES(0x181)]()),b&&(this[ES(0xb36)]&&this[ES(0xb36)][ES(0x92a)](this['camera']),this[ES(0x45c)]&&this[ES(0x45c)]['updateMarkupsVisibility']()),this[ES(0x815)]=c,this[ES(0x49e)]&&this['autoRotate']&&(this['controls']['azimuthAngle']+=this[ES(0x23b)]*c*a0A[ES(0x7a8)]),this[ES(0x891)]['forEach'](f=>{f({'currentTime':performance['now']()});}),this['measurementControls']&&this['measurementControls'][ES(0x9c6)](),this[ES(0x9ae)]['proxyModel']?.['forEach'](f=>{const ET=ES;this['camera'][ET(0x3e0)]['distanceTo'](f[ET(0x3e0)])<0x1e+f[ET(0x47e)][ET(0x831)]['diagonal']&&!f[ET(0xad9)]&&this[ET(0x9ae)]['loadModel'](f);}),requestAnimationFrame(this[ES(0xb6f)]);}['resize'](){const EU=a0cH;if(!this['el']){this['logger']['warn'](EU(0x23f));return;}const {clientWidth:b,clientHeight:c}=this['el'];if(b<=0x0||c<=0x0){this[EU(0x8d4)][EU(0x637)]('resize:\x20容器尺寸无效',{'clientWidth':b,'clientHeight':c});return;}try{this[EU(0x1ca)]&&(this[EU(0x1ca)]['aspect']=b/c),this['renderer']&&this[EU(0x976)][EU(0x1f4)](b,c,!0x0),this[EU(0x72d)]&&this['cssRenderer'][EU(0x1f4)](b,c),this['isPerspective']()||this['updateOrthographicCamera'](),this['camera']&&this['camera']['updateProjectionMatrix']();}catch(d){this['logger']['error'](EU(0x628),{'error':d,'clientWidth':b,'clientHeight':c});}}[a0cH(0xa68)](b=0x1,c=!0x1){const EV=a0cH;if(typeof b!='number'||b<0x0||b>0x1){this[EV(0x8d4)][EV(0x637)](EV(0x487),{'opacity':b});return;}if(typeof c!=EV(0xad8)&&(this[EV(0x8d4)][EV(0x637)](EV(0x877),{'forceUpdate':c}),c=!0x1),!this['scene']){this['logger'][EV(0x637)]('setOpacity:\x20scene未初始化');return;}try{this[EV(0x770)][EV(0x730)](d=>{const EW=EV;if(d[EW(0x2dc)]){const f=d;(Array['isArray'](f['material'])?f['material']:[f[EW(0xb87)]])['forEach'](g=>{const EX=EW;g&&(b<0x1||c?(g[EX(0x22e)]=!0x0,g['opacity']=b,g['needsUpdate']=!0x0):b>=0x1&&g[EX(0x22e)]&&(g[EX(0x22e)]=!0x1,g['opacity']=0x1,g[EX(0x5f7)]=!0x0));});}});}catch(d){this[EV(0x8d4)][EV(0x323)](EV(0xb5a),{'error':d,'opacity':b,'forceUpdate':c});}}['updateOrthographicCamera'](b){const EY=a0cH;if(!this[EY(0x7c1)]){this['logger'][EY(0x323)]('updateOrthographicCamera:\x20orthographicCamera未初始化');return;}if(!this[EY(0x36f)]&&!b){this['logger']['warn']('updateOrthographicCamera:\x20boxSize未初始化且未提供viewSize');return;}if(b||(b=Math['max'](this['boxSize']['x'],this[EY(0x36f)]['z'])*1.2),!Number[EY(0x565)](b)||b<=0x0){this['logger']['warn']('updateOrthographicCamera:\x20viewSize无效',{'viewSize':b});return;}if(!this['el']){this['logger']['warn'](EY(0xa05));return;}const c=this['el']['clientWidth']/this['el'][EY(0x281)];if(!Number[EY(0x565)](c)||c<=0x0){this[EY(0x8d4)][EY(0x637)]('updateOrthographicCamera:\x20aspect无效',{'aspect':c,'clientWidth':this['el']['clientWidth'],'clientHeight':this['el'][EY(0x281)]});return;}try{this['orthographicCamera']['left']=-b*c/0x2,this[EY(0x7c1)]['right']=b*c/0x2,this['orthographicCamera']['top']=b/0x2,this[EY(0x7c1)]['bottom']=-b/0x2,this['orthographicCamera'][EY(0x1cf)]();}catch(d){this[EY(0x8d4)][EY(0x323)]('updateOrthographicCamera:\x20更新正交相机失败',{'error':d,'viewSize':b,'aspect':c});}}[a0cH(0x3a1)](){const EZ=a0cH,b=new vg(this,this['boxCenter'],this[EZ(0x36f)]);this[EZ(0x3cf)]=b;}['resetExplosion'](){const F0=a0cH;this['explosionParts'][F0(0x2cd)](b=>{const F1=F0;Yr(b['mesh'],b[F1(0x414)]);});}[a0cH(0x841)](b){const F2=a0cH;this['cameraManager'][F2(0x841)](b);}[a0cH(0x415)](b){const F3=a0cH;return!b||!(b instanceof a0c)?(this[F3(0x8d4)]['warn']('isClipped:\x20point必须是Vector3实例',{'point':b}),!0x1):this['clipper']?!this[F3(0x4bd)][F3(0x835)]||!Array[F3(0x1d4)](this['clipper']['clippingPlanes'])?!0x1:this[F3(0x4bd)]['clippingPlanes']['some'](c=>c[F3(0x2c9)](b)<0x0):(this['logger'][F3(0x637)]('isClipped:\x20clipper未初始化'),!0x1);}get['ambientLight'](){return this['lightManager']?.['ambientLight'];}get[a0cH(0x341)](){const F4=a0cH;return this['lightManager']?.[F4(0x341)];}get[a0cH(0xa10)](){const F5=a0cH;return this[F5(0xb36)]?.[F5(0xa10)];}[a0cH(0x404)](b=this['scene']){return mr(b);}[a0cH(0x9ca)](){return'3.0.1';}['printGraph'](b=this['scene']){const F6=a0cH;console[F6(0x29f)]('\x20<'+b[F6(0x223)]+'>\x20'+b[F6(0x587)]+'\x20-\x20'+b[F6(0x47e)]['layers']),b['children'][F6(0x2cd)](c=>this[F6(0x1af)](c)),console[F6(0x58c)]();}}class ef extends Se{constructor(b){const F7=a0cH;super(b),C(this,F7(0x3c7)),C(this,'raycaster'),C(this,'mouse'),C(this,'hudLabels',[]),C(this,F7(0x3dc)),(this['raycaster']=new a0aJ(),this[F7(0x177)]=new a0l(),this[F7(0x3c7)]=!0x1);}[a0cH(0x1da)](b){const F8=a0cH,c=this[F8(0x149)]['indexOf'](b);return c!==-0x1?(this[F8(0x770)]['remove'](b),this[F8(0x149)][F8(0x263)](c,0x1),!0x0):!0x1;}['removeLast'](){const F9=a0cH,b=this[F9(0x149)][F9(0x3da)]();return b?(this[F9(0x770)]['remove'](b),!0x0):!0x1;}['clear'](){this['hudLabels']['forEach'](b=>{const Fb=a0b;this['scene']['remove'](b),b[Fb(0x798)][Fb(0x909)]&&b['element']['parentNode']['removeChild'](b[Fb(0x798)]);}),this['hudLabels']=[];}[a0cH(0xa03)](){return this['hudLabels'];}[a0cH(0x8ee)](b){const Ff=a0cH;if(b['preventDefault'](),b['touches'][Ff(0x576)]===0x1){const c=b['touches'][0x0];this['handleSelectionStart'](c[Ff(0xa4c)],c['clientY']);}}[a0cH(0x3ed)](b){const Fi=a0cH;if(b['preventDefault'](),b['touches']['length']===0x1&&this['isDragging']){const c=b[Fi(0x275)][0x0];this[Fi(0xb64)](c['clientX'],c['clientY']);}}[a0cH(0x93f)](b,c=this[a0cH(0x3dc)]){const Fj=a0cH;if(b['length']<0x3)throw new Error('pointArray\x20必须包含\x20[x,\x20y,\x20z]');const d=J(c);return c[Fj(0x4cf)]&&(b[0x1]=c['fixedY']),d[Fj(0x3e0)]['set'](b[0x0],b[0x1],b[0x2]),this[Fj(0x770)][Fj(0x644)](d),this[Fj(0x149)][Fj(0x50e)](d),d['userData'][Fj(0xa3c)]=c,c['onPut']&&c['onPut'](b,d),d;}[a0cH(0x13b)](b){b['preventDefault'](),this['handleSelectionEnd']();}[a0cH(0x910)](){const Fk=a0cH;this[Fk(0xa59)]();}['handleSelectionEnd'](){const Fm=a0cH;this[Fm(0x3c7)]=!0x1;}['onMouseDown'](b){const Fp=a0cH;b['preventDefault'](),this['handleSelectionStart'](b[Fp(0xa4c)],b[Fp(0x6f9)]);}[a0cH(0x809)](b){const Fq=a0cH;b[Fq(0x8b9)](),this[Fq(0xb64)](b[Fq(0xa4c)],b[Fq(0x6f9)]);}['handleSelectionStart'](b,c){this['isDragging']=!0x0,this['updateMousePosition'](b,c);}[a0cH(0xb64)](b,c){}[a0cH(0x5b2)](b,c){const Fv=a0cH,d=this[Fv(0x976)][Fv(0x736)]['getBoundingClientRect']();this['mouse']['x']=(b-d['left'])/d['width']*0x2-0x1,this[Fv(0x177)]['y']=-((c-d['top'])/d['height'])*0x2+0x1,this['raycaster'][Fv(0x5f4)](this[Fv(0x177)],this['camera']);const f=this[Fv(0x8d8)]['intersectObjects'](Array[Fv(0xb73)](this['viewer'][Fv(0x6c7)]),!0x0);if(f[Fv(0x576)]>0x0){const g=f[0x0]['point'];this['addByPoint']([g['x'],g['y'],g['z']]);}}[a0cH(0x25f)](b={}){const Fw=a0cH;this[Fw(0x3dc)]=b;const c=this[Fw(0x976)][Fw(0x736)];c['style']['cursor']=Fw(0x351),this[Fw(0x531)]='点击标注';}['onDeactivate'](){const Fx=a0cH,b=this['renderer']['domElement'];b[Fx(0x639)]['cursor']='',this[Fx(0x3c7)]=!0x1;}[a0cH(0xa58)](){const Fy=a0cH;this['deactivate'](),this[Fy(0x6d2)]();}}class tf extends Se{constructor(b){const Fz=a0cH;super(b),C(this,Fz(0x6fc),!0x1),C(this,'startPoint',new a0l()),C(this,'endPoint',new a0l()),C(this,'canvas'),C(this,'ctx'),C(this,Fz(0x27a)),C(this,Fz(0x53f),null),C(this,'selectionStartTime',0x0),C(this,Fz(0x319),0x0),(this['isSelecting']=!0x1,this[Fz(0x2c4)]=new a0l(),this['endPoint']=new a0l(),this[Fz(0x27a)]=this[Fz(0x507)][Fz(0x454)](this),this[Fz(0x71b)]());}['createOverlayCanvas'](){const FB=a0cH;if(!this['renderer']?.['domElement']?.['parentElement'])return;this[FB(0x72f)]=document['createElement']('canvas'),this[FB(0x72f)][FB(0x639)]['position']='absolute',this[FB(0x72f)][FB(0x639)][FB(0x2a9)]='0',this['canvas']['style'][FB(0x4d1)]='0',this[FB(0x72f)][FB(0x639)]['pointerEvents']=FB(0x6ab),this[FB(0x72f)]['style'][FB(0x277)]='1000',this['resizeCanvas']();const b=this[FB(0x72f)][FB(0x4d3)]('2d');if(!b){console['error']('无法获取\x20Canvas\x202D\x20上下文');return;}this[FB(0x5ca)]=b,this['renderer'][FB(0x736)][FB(0x92e)][FB(0x89a)](this[FB(0x72f)]),window['addEventListener'](FB(0x3a3),this[FB(0x27a)]);}['resizeCanvas'](){const FC=a0cH;if(!this[FC(0x976)]?.[FC(0x736)]||!this['canvas'])return;const b=this['renderer'][FC(0x736)]['clientWidth'],c=this[FC(0x976)][FC(0x736)]['clientHeight'],d=window['devicePixelRatio']||0x1;this['canvas'][FC(0x69c)]=b*d,this[FC(0x72f)]['height']=c*d,this['canvas'][FC(0x639)]['width']=b+'px',this['canvas'][FC(0x639)][FC(0x75a)]=c+'px',this[FC(0x5ca)]&&this['ctx']['scale'](d,d);}['drawSelectionBox'](){const FD=a0cH;if(!this['ctx']||!this['canvas'])return;const g=window[FD(0x94e)]||0x1,i=this['canvas'][FD(0x69c)]/g,t=this['canvas']['height']/g;if(this[FD(0x5ca)]['clearRect'](0x0,0x0,i,t),!this[FD(0x6fc)])return;const U=Math[FD(0x2f8)](this['startPoint']['x'],this['endPoint']['x']),a0=Math['min'](this[FD(0x2c4)]['y'],this[FD(0x3ba)]['y']),a1=Math[FD(0x894)](this[FD(0x2c4)]['x'],this['endPoint']['x']),a2=Math['max'](this['startPoint']['y'],this[FD(0x3ba)]['y']),a3=a1-U,a4=a2-a0;if(a3<0x2||a4<0x2)return;this['pulseAnimationPhase']=(this['pulseAnimationPhase']+0.05)%(Math['PI']*0x2);const a5=Math[FD(0x8b0)](this['pulseAnimationPhase'])*0.1+0.9,a6=Date['now']()-this[FD(0x93b)],a7=Math['min'](0x1,a6/0xc8);this[FD(0x5ca)][FD(0x3de)](),this['ctx']['fillStyle']=FD(0x28b)+0.3*a7+')',this['ctx'][FD(0x656)](0x0,0x0,i,t),this['ctx'][FD(0xb1e)]=FD(0x89e),this[FD(0x5ca)]['fillRect'](U,a0,a3,a4),this['ctx']['globalCompositeOperation']=FD(0x1dd);const a8=this[FD(0x5ca)][FD(0xb98)](U,a0,a1,a2);a8['addColorStop'](0x0,'rgba(55,\x20126,\x20232,\x20'+0.15*a7+')'),a8[FD(0x7ac)](0.5,FD(0xb93)+0.25*a7+')'),a8['addColorStop'](0x1,FD(0xb93)+0.15*a7+')'),this['ctx']['fillStyle']=a8,this['ctx']['fillRect'](U,a0,a3,a4),this[FD(0x5ca)]['strokeStyle']='rgba(255,\x20255,\x20255,\x20'+0.15*a7+')',this['ctx']['lineWidth']=0.5,this['ctx'][FD(0x77e)]([0x2,0x4]);const a9=0x3;for(let aq=0x1;aq<a9;aq++){const av=U+a3/a9*aq,aw=a0+a4/a9*aq;this['ctx']['beginPath'](),this['ctx'][FD(0x723)](av,a0),this[FD(0x5ca)]['lineTo'](av,a2),this['ctx'][FD(0x3c6)](),this[FD(0x5ca)][FD(0xabc)](),this['ctx']['moveTo'](U,aw),this[FD(0x5ca)]['lineTo'](a1,aw),this['ctx']['stroke']();}const ab=0.9*a7*a5;this['ctx'][FD(0xb78)]=FD(0xb93)+ab+')',this[FD(0x5ca)][FD(0xa4d)]=2.5,this[FD(0x5ca)]['setLineDash']([]),this['ctx']['strokeRect'](U,a0,a3,a4),this['ctx']['strokeStyle']=FD(0x417)+0.7*a7+')',this[FD(0x5ca)][FD(0xa4d)]=0x1,this['ctx'][FD(0x77e)]([0x4,0x4]);const aj=0x2;this[FD(0x5ca)]['strokeRect'](U+aj,a0+aj,a3-aj*0x2,a4-aj*0x2);const ak=0xa;this['ctx'][FD(0xb78)]='rgba(55,\x20126,\x20232,\x20'+a7+')',this[FD(0x5ca)][FD(0xa4d)]=2.5,this[FD(0x5ca)]['setLineDash']([]),this['ctx']['beginPath'](),this[FD(0x5ca)][FD(0x723)](U,a0+ak),this['ctx']['lineTo'](U,a0),this['ctx']['lineTo'](U+ak,a0),this[FD(0x5ca)]['stroke'](),this[FD(0x5ca)]['beginPath'](),this[FD(0x5ca)]['moveTo'](a1-ak,a0),this['ctx']['lineTo'](a1,a0),this[FD(0x5ca)]['lineTo'](a1,a0+ak),this['ctx']['stroke'](),this[FD(0x5ca)][FD(0xabc)](),this['ctx'][FD(0x723)](U,a2-ak),this[FD(0x5ca)][FD(0xb9c)](U,a2),this[FD(0x5ca)][FD(0xb9c)](U+ak,a2),this['ctx'][FD(0x3c6)](),this['ctx']['beginPath'](),this['ctx'][FD(0x723)](a1-ak,a2),this['ctx'][FD(0xb9c)](a1,a2),this[FD(0x5ca)][FD(0xb9c)](a1,a2-ak),this[FD(0x5ca)][FD(0x3c6)]();const am=U+a3/0x2,an=a0+a4/0x2;this[FD(0x5ca)]['fillStyle']=FD(0xb93)+0.8*a7+')',this[FD(0x5ca)]['beginPath'](),this[FD(0x5ca)]['arc'](am,an,0x3,0x0,Math['PI']*0x2),this[FD(0x5ca)][FD(0x585)](),this['ctx'][FD(0xb78)]=FD(0x417)+a7+')',this[FD(0x5ca)][FD(0xa4d)]=1.5,this[FD(0x5ca)][FD(0x3c6)]();const ap=this['renderer']?.[FD(0x736)]?.['getBoundingClientRect']();if(ap){const ax=a3/ap[FD(0x69c)],ay=a4/ap['height'],az=Math[FD(0x894)](ax,ay),aB=az<0.1?'高':az<0.3?'中':'低',aC=Math[FD(0xa2a)](a3)+'\x20×\x20'+Math['round'](a4),aD='缩放:\x20'+aB,aE=aC+FD(0x3b6)+aD;this[FD(0x5ca)][FD(0xa2f)]=FD(0x2f7),this[FD(0x5ca)]['textAlign']=FD(0x231),this[FD(0x5ca)][FD(0xb47)]=FD(0x852);const aF=am,aG=an+0x14,aH=this[FD(0x5ca)]['measureText'](aE)[FD(0x69c)],aI=0x12,aJ=0xa,aK=0x6;this['ctx']['shadowColor']=FD(0x8c9),this['ctx']['shadowBlur']=0x8,this['ctx']['shadowOffsetX']=0x0,this[FD(0x5ca)][FD(0x4be)]=0x2;const aL=0x6;this['ctx'][FD(0x8e5)]='rgba(55,\x20126,\x20232,\x20'+0.95*a7+')',this[FD(0x7b5)](this['ctx'],aF-aH/0x2-aJ,aG-aI/0x2-aK,aH+aJ*0x2,aI+aK*0x2,aL),this[FD(0x5ca)][FD(0x585)](),this['ctx']['shadowColor']=FD(0x22e),this['ctx']['shadowBlur']=0x0,this['ctx'][FD(0x377)]=0x0,this['ctx'][FD(0x4be)]=0x0,this[FD(0x5ca)][FD(0xacc)]='rgba(0,\x200,\x200,\x200.5)',this['ctx']['shadowBlur']=0x2,this[FD(0x5ca)]['fillStyle']='rgba(255,\x20255,\x20255,\x20'+a7+')',this[FD(0x5ca)]['fillText'](aE,aF,aG),this[FD(0x5ca)][FD(0xacc)]='transparent',this[FD(0x5ca)][FD(0x69e)]=0x0;}this[FD(0x5ca)]['restore'](),this['isSelecting']&&this[FD(0x13e)]();}['roundRect'](b,d,f,g,h,i){const FE=a0cH;b['beginPath'](),b[FE(0x723)](d+i,f),b['lineTo'](d+g-i,f),b['quadraticCurveTo'](d+g,f,d+g,f+i),b[FE(0xb9c)](d+g,f+h-i),b['quadraticCurveTo'](d+g,f+h,d+g-i,f+h),b[FE(0xb9c)](d+i,f+h),b['quadraticCurveTo'](d,f+h,d,f+h-i),b[FE(0xb9c)](d,f+i),b['quadraticCurveTo'](d,f,d+i,f),b['closePath']();}['checkCameraType'](){const FF=a0cH;return this['viewer'][FF(0xaba)]()?!0x0:(this[FF(0x98d)]['error'](FF(0xb27),0xbb8),this['deactivate'](),!0x1);}[a0cH(0x8ee)](b,c){const FG=a0cH;if(b['touches']['length']===0x1){if(!this[FG(0xb9f)]()){b[FG(0x8b9)]();return;}if(b['preventDefault'](),!(!this[FG(0x7b4)]||!this[FG(0x976)]?.['domElement'])){if(this['controls'][FG(0x95b)]=!0x1,c?.[FG(0x16b)]?.[FG(0x21d)])this[FG(0x2c4)][FG(0x195)](c[FG(0x16b)][FG(0x21d)]);else{const d=this['renderer'][FG(0x736)][FG(0x5d9)](),f=b['touches'][0x0];this['startPoint'][FG(0x46c)](f['clientX']-d['left'],f['clientY']-d[FG(0x2a9)]);}this[FG(0x3ba)]['copy'](this[FG(0x2c4)]),this['isSelecting']=!0x0,this['selectionStartTime']=Date[FG(0x371)](),this['pulseAnimationPhase']=0x0,this['requestDraw']();}}}[a0cH(0x3ed)](b,c){const FH=a0cH;if(!(!this[FH(0x6fc)]||b[FH(0x275)]['length']!==0x1)){if(!this[FH(0xb9f)]()){b[FH(0x8b9)]();return;}if(b[FH(0x8b9)](),c?.[FH(0x16b)]?.['point'])this['endPoint']['copy'](c[FH(0x16b)]['point']);else{if(this[FH(0x976)]?.[FH(0x736)]){const d=this[FH(0x976)][FH(0x736)][FH(0x5d9)](),f=b['touches'][0x0];this['endPoint'][FH(0x46c)](f['clientX']-d[FH(0x4d1)],f['clientY']-d['top']);}else return;}this['requestDraw']();}}['onTouchEnd'](b,c){const FI=a0cH;this[FI(0x6fc)]&&(b['preventDefault'](),this[FI(0xa59)]());}[a0cH(0x910)](b,c){const FJ=a0cH;this[FJ(0x6fc)]&&this[FJ(0xa59)]();}[a0cH(0x13e)](){const FK=a0cH;this[FK(0x53f)]!==null&&cancelAnimationFrame(this['animationFrameId']),this['animationFrameId']=requestAnimationFrame(()=>{const FL=FK;this[FL(0x5f9)](),this['animationFrameId']=null;});}['handleSelectionEnd'](){const FM=a0cH;if(!this[FM(0xb9f)]()){this[FM(0x6fc)]=!0x1,this['drawSelectionBox']();return;}if(this[FM(0x6fc)]=!0x1,this[FM(0x5f9)](),!this['renderer']?.[FM(0x736)]){this['deactivate']();return;}const b=this['renderer']['domElement'][FM(0x5d9)](),d=Math[FM(0x2f8)](this[FM(0x2c4)]['x'],this['endPoint']['x'])/b[FM(0x69c)]*0x2-0x1,f=Math['max'](this[FM(0x2c4)]['x'],this['endPoint']['x'])/b['width']*0x2-0x1,g=-(Math['min'](this[FM(0x2c4)]['y'],this['endPoint']['y'])/b['height'])*0x2+0x1,h=-(Math['max'](this['startPoint']['y'],this[FM(0x3ba)]['y'])/b[FM(0x75a)])*0x2+0x1,i=0.02;if(Math[FM(0x2f1)](f-d)<i||Math[FM(0x2f1)](h-g)<i){this[FM(0x531)]=FM(0x486),setTimeout(()=>{this['tooltip']='',this['deactivate']();},0x5dc);return;}this[FM(0x235)](d,f,g,h),this['deactivate']();}['onMouseDown'](b,c){const FN=a0cH;this[FN(0xb9f)]()&&this[FN(0x7b4)]&&(this['controls'][FN(0x95b)]=!0x1,c?.[FN(0x16b)]?.[FN(0x21d)]&&this['startPoint'][FN(0x195)](c[FN(0x16b)][FN(0x21d)]),this[FN(0x3ba)][FN(0x195)](this[FN(0x2c4)]),this[FN(0x6fc)]=!0x0,this['selectionStartTime']=Date[FN(0x371)](),this[FN(0x319)]=0x0,this['requestDraw']());}[a0cH(0x809)](b,c){const FO=a0cH;if(this['checkCameraType']()){if(this[FO(0x6fc)])this[FO(0x531)]='';else{this[FO(0x531)]=FO(0x5be);return;}if(c?.['screen']?.['point'])this[FO(0x3ba)][FO(0x195)](c[FO(0x16b)][FO(0x21d)]);else{if(this['renderer']?.['domElement']){const d=this['renderer']['domElement'][FO(0x5d9)]();this[FO(0x3ba)]['set'](b['clientX']-d['left'],b['clientY']-d[FO(0x2a9)]);}else return;}this[FO(0x13e)]();}}async['zoomToSelection'](b,f,i,j){const FP=a0cH;if(!this['checkCameraType']()||!this['camera']||!this['controls'])return;const k=(b+f)/0x2,m=(i+j)/0x2,t=f-b,v=j-i,w=Math[FP(0x894)](Math['abs'](t),Math[FP(0x2f1)](v)),x=new a0aJ(),y=Xs(x,this[FP(0x3e2)],Array[FP(0xb73)](this[FP(0x651)][FP(0x6c7)]),new a0l(k,m),0.2,0.15);try{if(y&&y['length']>0x0){this['viewer']['needUpdatePivotPoint']=!0x1,this[FP(0x7b4)]['setOrbitPoint'](y[0x0][FP(0x21d)]['x'],y[0x0][FP(0x21d)]['y'],y[0x0][FP(0x21d)]['z']);const z=[this['controls'][FP(0x2da)](0x0,0x0,0x0,!0x0),this['controls']['dollyInFixed'](y[0x0][FP(0x5d4)]*(0x1-w/0x2),!0x0)];await Promise['all'](z),this['viewer'][FP(0x7ff)]=!0x0,this[FP(0x651)][FP(0x6f6)]();}else{const B=0x64/(-(/Mac/['test'](globalThis?.[FP(0x40d)]?.[FP(0x26e)]||'')?-0x1:-0x3)*0xa);this['controls']['_dollyInternal'](-B,k,m);}}catch(E){console[FP(0x323)](FP(0x65f),E),this[FP(0x651)][FP(0x7ff)]=!0x0;}}[a0cH(0x25f)](){const FQ=a0cH;if(!this[FQ(0x651)][FQ(0xaba)]()){this['message']['error']('正交相机不支持框选缩放,请切换到透视相机',0xbb8),this['deactivate']();return;}this[FQ(0x976)]?.[FQ(0x736)]&&(this[FQ(0x976)][FQ(0x736)]['style'][FQ(0x7a1)]=FQ(0x351)),this[FQ(0x531)]='框选目标区域进行缩放(选区越小,放大倍率越高)';const b=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i['test'](navigator['userAgent'])?FQ(0x979):FQ(0x26a);this['message'][FQ(0x404)]('框选缩放工具已激活\x20-\x20'+b+FQ(0x5be),0xbb8);}[a0cH(0x473)](){const FR=a0cH;if(this[FR(0x53f)]!==null&&(cancelAnimationFrame(this['animationFrameId']),this[FR(0x53f)]=null),this['renderer']?.[FR(0x736)]&&(this['renderer'][FR(0x736)][FR(0x639)]['cursor']=''),this['isSelecting']=!0x1,this['ctx']&&this[FR(0x72f)]){const b=window['devicePixelRatio']||0x1;this[FR(0x5ca)]['clearRect'](0x0,0x0,this['canvas'][FR(0x69c)]/b,this[FR(0x72f)]['height']/b);}this[FR(0x7b4)]&&(this[FR(0x7b4)]['enabled']=!0x0),this['viewer']['cameraSleep'](),this[FR(0x531)]='';}['onDispose'](){const FS=a0cH;this['deactivate'](),this['canvas']?.['parentElement']&&this['canvas'][FS(0x92e)]['removeChild'](this[FS(0x72f)]),window[FS(0x293)]('resize',this[FS(0x27a)]),this[FS(0x72f)]=null,this['ctx']=null;}}const lr=0x377ee8,da=0xff0000,Sg=0.15,Dg=0.2,Mg=0.75,Lg=0x3,Rg=0x2,Pg=0.6,kg=0.06;class sf extends Se{constructor(b){const FT=a0cH;super(b),C(this,FT(0x850),[]),C(this,FT(0x76f),[]),C(this,FT(0x7fb)),C(this,'guideLine',null),C(this,FT(0x985),null),C(this,FT(0x752),[]),C(this,'isAxisLocked',!0x1),C(this,'lockedAxis',null),C(this,FT(0x182),null),(this[FT(0x7a1)]=FT(0x701),this['viewer']['shortcutManager']['addShortcut']({'key':FT(0x764),'type':'press','callback':()=>{const FU=FT;this['selectedIndex']!=null&&this[FU(0xb4c)](this['selectedIndex']);}}),this[FT(0x651)][FT(0x4eb)][FT(0xb6c)]({'key':'Enter','type':'press','callback':()=>{const FV=FT;this[FV(0x76f)][FV(0x576)]>=0x3&&this['completePolygon']();}}));}[a0cH(0x25f)](){this['tooltip']='点击添加多边形顶点(至少3个点),按\x20Enter\x20完成测量';}[a0cH(0x473)](){const FW=a0cH;this[FW(0x969)]();}['clearDraw'](){const FX=a0cH;this['snapPoint']&&(this['scene'][FX(0x1da)](this['snapPoint']),this[FX(0x7fb)]=null),this[FX(0x7ad)]&&(this[FX(0x770)][FX(0x1da)](this['guideLine']),this[FX(0x7ad)]=null),this['previewPolygon']&&(this['scene'][FX(0x1da)](this['previewPolygon']),this[FX(0x985)]=null),this[FX(0x752)][FX(0x2cd)](b=>{this['scene']['remove'](b);}),this[FX(0x752)]=[],this[FX(0x76f)]=[],this[FX(0xab2)]=!0x1,this[FX(0xb6d)]=null,this['helperTip']='';}[a0cH(0xb23)](b){const FY=a0cH;if(!(b?.[FY(0xa73)]&&b[FY(0x8c0)]?.['geometry']))return!0x1;const {face:c,object:f,point:i}=b,j=f['geometry']['attributes']['position'],k=[c['a'],c['b'],c['c']]['map'](x=>{const FZ=FY,y=new a0c();return y['fromBufferAttribute'](j,x),f[FZ(0x13f)](y),y;}),m=[[k[0x0],k[0x1]],[k[0x1],k[0x2]],[k[0x2],k[0x0]]];this['camera']['updateMatrixWorld']();const p=this[FY(0x651)][FY(0x2ac)](i)*0x7,t=this['viewer'][FY(0x2ac)](i)*0x5;let v=0x1/0x0,w=null;return k[FY(0x2cd)](x=>{const G0=FY,y=i[G0(0x5ac)](x);y<=p&&y<v&&(v=y,w=x['clone']());}),w||m[FY(0x2cd)](([x,y])=>{const G1=FY,z=lc(i,x,y),B=i[G1(0x5ac)](z);B<=t&&B<v&&(v=B,w=z[G1(0x8e8)]());}),w?(b[FY(0x21d)]=w,!0x0):!0x1;}['onMouseMove'](b,f){const G2=a0cH,g=b?.[G2(0x9ec)]||!0x1;this['viewer'][G2(0x8d8)]['setFromCamera'](this[G2(0x651)]['mouse'],this[G2(0x651)]['camera']),this['viewer'][G2(0x8d8)][G2(0xa36)]=!0x0;let i=this[G2(0x651)]['raycaster']['intersectObjects'](Array['from'](this['viewer'][G2(0x6c7)]));this['points'][G2(0x576)]>0x0&&(this[G2(0x531)]='点击添加第\x20'+(this[G2(0x76f)]['length']+0x1)+G2(0xa98)+(g?'(按住Shift锁定轴)':'')),this['snapPoint']&&this[G2(0x770)]['remove'](this['snapPoint']),this['guideLine']&&this[G2(0x770)]['remove'](this['guideLine']),this[G2(0x985)]&&(this['scene'][G2(0x1da)](this['previewPolygon']),this['previewPolygon']=null);let j=null,k=!0x1;if(i['length']>0x0)k=this[G2(0xb23)](i[0x0]),j=i[0x0][G2(0x21d)];else{const m=this['viewer']['raycaster'][G2(0x9c8)][G2(0x3e5)];let p=0x3e8;this[G2(0x3e2)]&&G2(0x42b)in this['camera']&&(p=this[G2(0x3e2)]['far']*0.5),j=m[G2(0xa49)](p)['add'](this['viewer']['raycaster']['ray'][G2(0x812)]);}if(g&&this[G2(0x76f)][G2(0x576)]>0x0&&j){const t=this['points'][this[G2(0x76f)][G2(0x576)]-0x1],{projectedPoint:u,axis:v}=this[G2(0x697)](j,t);j=u,this[G2(0xab2)]=!0x0,this['lockedAxis']=v;const w={'x':'X轴','y':'Y轴','z':'Z轴'};this[G2(0x98e)]=G2(0x1c1)+w[v];}else{if(this[G2(0xab2)]=!0x1,this['lockedAxis']=null,this['points']['length']>0x0&&j){const x=this[G2(0x76f)][this['points'][G2(0x576)]-0x1],{axis:y}=this[G2(0x93c)](x,j);if(y){const z={'x':'X轴','y':'Y轴','z':'Z轴'};this['helperTip']='平行\x20'+z[y];}else this['helperTip']='';}else this[G2(0x98e)]='';}if(j){let B=G2(0xb52);(k||this['isAxisLocked'])&&(B='measure-adsorb'),this['snapPoint']=J({'className':B}),this['snapPoint']['position']['copy'](j),this['scene'][G2(0x644)](this['snapPoint']);}this['points']['length']>0x0&&j&&(this[G2(0x7d0)](j),this['drawPreviewPolygon'](j));}['onClick'](b,{hits:c}){const G3=a0cH;if(c['length']>0x0){this[G3(0xb23)](c[0x0]);let d=c[0x0]['point'];if(b[G3(0x9ec)]&&this[G3(0x76f)]['length']>0x0){const f=this['points'][this[G3(0x76f)][G3(0x576)]-0x1],{projectedPoint:g}=this[G3(0x697)](c[0x0]['point'],f);d=g;}this[G3(0x3a8)](d);}}['addPoint'](b){const G4=a0cH;if(this[G4(0x48c)](b)){this[G4(0x937)]();return;}this['points']['push'](b['clone']());const c=J({'className':G4(0x740)});c[G4(0x3e0)]['copy'](b),this['scene'][G4(0x644)](c),this[G4(0x752)]['push'](c),this[G4(0x76f)]['length']>=0x3;}['isPointNearStart'](b){const G5=a0cH;return this[G5(0x76f)]['length']===0x0?!0x1:this[G5(0x76f)][0x0][G5(0x5ac)](b)<kg;}[a0cH(0x937)](){const G6=a0cH;if(this['points'][G6(0x576)]<0x3)return;const {polygon:b,borderLine:c}=this[G6(0x496)](),d=hc(this['points']),f=Ac(this['points']),g=J({'className':G6(0x551),'html':d[G6(0x39d)](0x2)+G6(0x9f6),'click':({event:h})=>{const G7=G6,i=h['target'];i&&i['tagName']===G7(0x6b3)?this[G7(0x850)][G7(0x2cd)]((j,k)=>{j['objects'][0x2]===g&&this['removeByIndex'](k);}):this[G7(0x850)][G7(0x2cd)]((j,k)=>{const G8=G7;j['objects'][0x2]===g?(j[G8(0x25b)][0x1]['material']['opacity']=0x1,j['objects'][0x1][G8(0xb87)][G8(0x488)]=0x5,j['objects'][0x0][G8(0xb87)][G8(0xab5)]=0.3,this[G8(0x182)]=k):(j['objects'][0x1]['material'][G8(0xab5)]=0.75,j[G8(0x25b)][0x1][G8(0xb87)][G8(0x488)]=0x3,j[G8(0x25b)][0x0]['material']['opacity']=0.2);});}});g[G6(0x3e0)]['copy'](f),this[G6(0x770)]['add'](g),this[G6(0x850)][G6(0x50e)]({'area':parseFloat(d[G6(0x39d)](0x6)),'unit':'m²','points':[...this[G6(0x76f)]],'objects':[b,c,g]}),this['clearDraw'](),this['deactivate']();}[a0cH(0x697)](b,d){const G9=a0cH,f=new a0c()[G9(0x1fd)](b,d),g=new a0c(Math[G9(0x2f1)](f['x']),Math['abs'](f['y']),Math['abs'](f['z']));let h='x',i=g['x'];g['y']>i&&(i=g['y'],h='y'),g['z']>i&&(i=g['z'],h='z');const j=d['clone']();return h==='x'?j['x']=b['x']:h==='y'?j['y']=b['y']:j['z']=b['z'],{'projectedPoint':j,'axis':h};}[a0cH(0x93c)](b,d){const Gb=a0cH,f=new a0c()[Gb(0x1fd)](d,b);if(f['length']()<0.001)return{'color':da,'axis':null};const g=f['normalize'](),i=new a0c(Math[Gb(0x2f1)](g['x']),Math['abs'](g['y']),Math['abs'](g['z'])),j=0.99,k=0.01;return i['x']>j&&i['y']<k&&i['z']<k?{'color':0xff0000,'axis':'x'}:i['y']>j&&i['x']<k&&i['z']<k?{'color':0xff,'axis':'y'}:i['z']>j&&i['x']<k&&i['y']<k?{'color':0xff00,'axis':'z'}:{'color':da,'axis':null};}['drawGuideLine'](b){const Gf=a0cH,c=this['points'][this[Gf(0x76f)][Gf(0x576)]-0x1];if(!c)return;const d=new Ae();d['setPositions']([c['x'],c['y'],c['z'],b['x'],b['y'],b['z']]);let f;this[Gf(0xab2)]&&this['lockedAxis']?f={'x':0xff0000,'y':0xff,'z':0xff00}[this['lockedAxis']]:f=this['getLineColorByDirection'](c,b)[Gf(0xa89)];const g=new ne({'color':f,'depthTest':!0x1,'linewidth':Rg,'opacity':Pg,'resolution':new a0l(window['innerWidth'],window[Gf(0x9d3)])});this[Gf(0x7ad)]=new de(d,g),this[Gf(0x770)][Gf(0x644)](this[Gf(0x7ad)]);}[a0cH(0x525)](b){const Gj=a0cH;if(this['points']['length']<0x2)return;const c=[...this['points'],b];let d;this['camera']&&(d=new a0c(),this['camera']['getWorldPosition'](d));const f=Cr(c,d),g=new a0g({'color':lr,'opacity':Sg,'transparent':!0x0,'side':0x2,'depthTest':!0x1});this[Gj(0x985)]&&this[Gj(0x770)]['remove'](this[Gj(0x985)]),this['previewPolygon']=new a0e(f,g),this[Gj(0x770)]['add'](this['previewPolygon']);}[a0cH(0x496)](){const Gk=a0cH;let b;this[Gk(0x3e2)]&&(b=new a0c(),this[Gk(0x3e2)]['getWorldPosition'](b));const d=Cr(this['points'],b),f=new a0g({'color':lr,'opacity':Dg,'transparent':!0x0,'side':0x2,'depthTest':!0x1}),g=new a0e(d,f);this['scene']['add'](g);const i=new Ae(),j=[];this['points'][Gk(0x2cd)](t=>{const Gm=Gk;j[Gm(0x50e)](t['x'],t['y'],t['z']);});const k=this[Gk(0x76f)][0x0];j[Gk(0x50e)](k['x'],k['y'],k['z']),i[Gk(0x58e)](j);const m=new ne({'color':lr,'depthTest':!0x1,'linewidth':Lg,'opacity':Mg,'resolution':new a0l(window['innerWidth'],window['innerHeight'])}),p=new de(i,m);return this['scene']['add'](p),{'polygon':g,'borderLine':p};}[a0cH(0x1c2)](){const Gp=a0cH,{objects:b}=this[Gp(0x850)]['pop']()||{'objects':[]};b['forEach'](c=>{const Gq=Gp;this[Gq(0x770)]['remove'](c);});}[a0cH(0xb4c)](b){const Gv=a0cH;if(b>=0x0&&b<this[Gv(0x850)]['length']){const {objects:c}=this['measurements'][b];c[Gv(0x2cd)](d=>{this['scene']['remove'](d);}),this['measurements'][Gv(0x263)](b,0x1),this[Gv(0x182)]===b?this[Gv(0x182)]=null:this[Gv(0x182)]!==null&&this['selectedIndex']>b&&this[Gv(0x182)]--;}}['getMeasurements'](){const Gw=a0cH;return this[Gw(0x850)];}[a0cH(0x6d2)](){const Gx=a0cH;this[Gx(0x850)]['forEach'](b=>{const Gy=Gx;b[Gy(0x25b)][Gy(0x2cd)](c=>{const Gz=Gy;this[Gz(0x770)]['remove'](c);});}),this[Gx(0x850)]=[],this[Gx(0x969)](),this[Gx(0x182)]=null;}}class nf extends Se{constructor(b){const GB=a0cH;super(b),C(this,'measurements',[]),C(this,GB(0x755),[]),C(this,'guideLine',null),C(this,'highlightPlane'),C(this,'previewLabel',null),C(this,GB(0x182),null),C(this,GB(0x809),()=>{const GC=GB;this['viewer'][GC(0x8d8)]['setFromCamera'](this['viewer']['mouse'],this['viewer'][GC(0x3e2)]),this[GC(0x651)][GC(0x8d8)]['firstHitOnly']=!0x0;const d=this['viewer']['raycaster']['intersectObjects'](Array[GC(0xb73)](this[GC(0x651)][GC(0x6c7)]));if(this[GC(0x7ad)]&&this[GC(0x770)]&&(this['scene'][GC(0x1da)](this[GC(0x7ad)]),this[GC(0x7ad)]=null),this['previewLabel']&&this[GC(0x770)]&&(this['scene']['remove'](this['previewLabel']),this['previewLabel']=null),this[GC(0x755)]['length']===0x1){if(d[GC(0x576)]>0x0&&d[0x0]['face']){const f=d[0x0];this['scene']&&this[GC(0x7d0)](f[GC(0x21d)]);const g=this['selectedFaces'][0x0],h=new a0c()['subVectors'](f[GC(0x21d)],g[GC(0x21d)]),i=Math['abs'](h['dot'](g[GC(0x186)]));this[GC(0x770)]&&this[GC(0x426)](g['point'],f[GC(0x21d)],g['normal'],i);}else{const j=this[GC(0x651)]['raycaster']['ray']['direction'];let k=0x3e8;this[GC(0x3e2)]&&'far'in this[GC(0x3e2)]&&(k=this['camera']['far']*0.5);const m=j[GC(0xa49)](k)[GC(0x644)](this['viewer']['raycaster']['ray']['origin']);this[GC(0x770)]&&this[GC(0x7d0)](m);const p=this[GC(0x755)][0x0],t=new a0c()['subVectors'](m,p['point']),u=Math[GC(0x2f1)](t[GC(0x24b)](p['normal']));this[GC(0x770)]&&this[GC(0x426)](p[GC(0x21d)],m,p['normal'],u);}}if(d[GC(0x576)]>0x0&&d[0x0]['face']&&this[GC(0x654)]){this['highlightPlane'][GC(0x921)]=!0x0;const v=d[0x0],w=v[GC(0xa73)],x=w[GC(0x186)][GC(0x8e8)]()['multiplyScalar'](0.001);if(this[GC(0x654)][GC(0x3e0)]['copy'](v[GC(0x21d)][GC(0x8e8)]()['add'](x)),this[GC(0x654)][GC(0x502)](v['point']['clone']()[GC(0x644)](w['normal'])),this[GC(0x651)][GC(0x3e2)]?.['position']){const y=this[GC(0x651)][GC(0x3e2)]['position'][GC(0x5ac)](v['point']);this['highlightPlane']['scale'][GC(0x46c)](y*0.055,y*0.055,0x1);}}else this[GC(0x654)]&&(this['highlightPlane'][GC(0x921)]=!0x1);}),(this['cursor']='--face_measure_guides',this['tooltip']='选择第一个面以开始测量',this[GB(0x651)][GB(0x4eb)]['addShortcut']({'key':GB(0x764),'type':'press','callback':()=>{const GD=GB;this[GD(0x182)]!=null&&this[GD(0xb4c)](this[GD(0x182)]);}}),this['viewer']['shortcutManager'][GB(0xb6c)]({'key':'Escape','type':'press','callback':()=>{const GE=GB;this['selectedFaces'][GE(0x576)]>0x0&&this['clearCurrentMeasurement'](),this[GE(0x595)]();}}));}[a0cH(0x25f)](){const GF=a0cH;if(!this['highlightPlane']&&this[GF(0x770)]){const b=new a0as(0x1,0x1);this['highlightPlane']=new a0e(b,this[GF(0x19c)]),this['highlightPlane']['visible']=!0x1,this['scene'][GF(0x644)](this[GF(0x654)]);}this['tooltip']='点击选择第一个面以开始测量';}['onDeactivate'](){this['clearCurrentMeasurement']();}['clearCurrentMeasurement'](){const GG=a0cH;this['guideLine']&&(this[GG(0x770)][GG(0x1da)](this['guideLine']),this[GG(0x7ad)]=null),this[GG(0x47c)]&&(this['scene']['remove'](this[GG(0x47c)]),this['previewLabel']=null),this[GG(0x770)]&&this['selectedFaces'][GG(0x2cd)](b=>{const GH=GG;this[GH(0x770)][GH(0x1da)](b[GH(0x68f)]);}),this[GG(0x755)]=[],this[GG(0x654)]&&this['scene']&&this[GG(0x770)][GG(0x1da)](this[GG(0x654)]),this[GG(0x654)][GG(0x921)]=!0x1;}[a0cH(0x6d2)](){const GK=a0cH;this['measurements']['forEach'](b=>{const GI=a0b;b[GI(0x25b)]['forEach'](c=>{const GJ=GI;this[GJ(0x770)][GJ(0x1da)](c);});}),this['measurements']=[],this['clearCurrentMeasurement'](),this[GK(0x182)]=null;}['selectFace'](b){const GL=a0cH,c=this[GL(0x654)]['clone'](),d=b[GL(0x21d)][GL(0x8e8)]();c[GL(0x3e0)][GL(0x195)](d),this[GL(0x770)]['add'](c);const f={'point':d,'normal':b[GL(0xa73)][GL(0x186)]['clone'](),'helper':c};this[GL(0x755)]['push'](f),this[GL(0x755)][GL(0x576)]===0x1?this[GL(0x531)]='点击选择第二个面以完成测量':this[GL(0x755)][GL(0x576)]===0x2&&this[GL(0x4a3)]();}[a0cH(0x7d0)](b){const GM=a0cH;if(this['selectedFaces']['length']===0x0||!this['scene'])return;const d=this['selectedFaces'][0x0]['point'],f=this[GM(0x755)][0x0][GM(0x186)]['clone']()['normalize'](),g=new a0c()['subVectors'](b,d)['dot'](f),i=new a0c()[GM(0xa0a)](d,f[GM(0xa49)](g)),j=new Ae();j[GM(0x58e)]([d['x'],d['y'],d['z'],i['x'],i['y'],i['z']]);const k=new ne({'color':0xff0000,'depthTest':!0x1,'linewidth':2.5,'opacity':0.5,'resolution':new a0l(window[GM(0xbae)],window[GM(0x9d3)])});this[GM(0x7ad)]=new de(j,k),this['scene'][GM(0x644)](this['guideLine']);}['drawPreviewLabel'](b,d,f,g){const GN=a0cH;if(!this[GN(0x770)])return;const i=new a0c()[GN(0x1fd)](d,b)['dot'](f),j=new a0c()[GN(0xa0a)](b,f['clone']()[GN(0xa49)](i)),k=b[GN(0x8e8)]()['lerp'](j,0.5);this[GN(0x47c)]=J({'className':'bmv-measure-label\x20bmv-measure-preview','html':g[GN(0x39d)](0x2)+'\x20'+this['unit']}),this['previewLabel'][GN(0x3e0)]['copy'](k),this[GN(0x770)][GN(0x644)](this[GN(0x47c)]);}[a0cH(0x766)](b,{hits:c}){const GO=a0cH;c&&c['length']>0x0&&c[0x0]['face']&&this[GO(0x567)](c[0x0]);}['completeMeasurement'](){const GP=a0cH;if(this['selectedFaces'][GP(0x576)]<0x2)return;const [b,f]=this[GP(0x755)],i=b['normal']['clone']()['normalize']()['dot'](f['normal'][GP(0x8e8)]()[GP(0x456)]()),j=Math[GP(0x2f1)](Math[GP(0x2f1)](i)-0x1)<0.01,k=new a0c()['subVectors'](f['point'],b['point']),l=Math['abs'](k[GP(0x24b)](b['normal']['clone']()[GP(0x456)]()));if(l<0.001){this[GP(0x531)]=GP(0x2c2),this['message']['warning'](GP(0xb83),0xbb8),setTimeout(()=>{const GQ=GP;this[GQ(0x531)]='',this['clearCurrentMeasurement'](),this[GQ(0x531)]=GQ(0xa96);},0x7d0);return;}const {line:m,projectedEnd:p}=this['drawDistanceLine'](b['point'],f['point'],b['normal']);f[GP(0x68f)]&&f[GP(0x68f)][GP(0x3e0)][GP(0x195)](p);const t=new a0c()[GP(0x8fd)](b[GP(0x21d)],p,0.5),v=j?'':GP(0x5f1),w=J({'className':'bmv-measure-label','html':l[GP(0x39d)](0x2)+'\x20'+this['unit']+'\x20'+v+'\x20<span\x20title=\x22移除\x22\x20class=\x22bmv-measure-label-delete\x22>x</span>','click':({event:x})=>{const GR=GP,y=x['target'];y&&y['tagName']===GR(0x6b3)&&y[GR(0x8df)]==='移除'?this['measurements'][GR(0x2cd)]((z,B)=>{const GS=GR;z[GS(0x25b)][0x3]===w&&this[GS(0xb4c)](B);}):this['measurements'][GR(0x2cd)]((z,B)=>{const GT=GR;z['objects'][0x3]===w?(z['objects'][0x2]['material']['opacity']=0x1,z['objects'][0x2]['material'][GT(0x488)]=0x6,z[GT(0x25b)][0x2][GT(0xb87)]['color'][GT(0x786)](0xff00),this[GT(0x182)]=B):(z[GT(0x25b)][0x2][GT(0xb87)]['opacity']=0.75,z[GT(0x25b)][0x2]['material']['linewidth']=0x4,z[GT(0x25b)][0x2][GT(0xb87)][GT(0xa89)]['setHex'](0x377ee8));});}});w['position']['copy'](t),this[GP(0x770)]&&this[GP(0x770)]['add'](w),this[GP(0x850)]['push']({'distance':parseFloat(l[GP(0x39d)](0x2)),'unit':this[GP(0x46a)],'faces':[{'point':b[GP(0x21d)],'normal':b['normal']},{'point':f['point'],'normal':f[GP(0x186)]}],'objects':[b['helper'],f['helper'],m,w]}),this['selectedFaces']=[],this['deactivate']();}[a0cH(0xb2b)](b,d,f){const GU=a0cH,g=f['clone'](),i=new a0c()['addVectors'](b,g[GU(0xa49)](new a0c()[GU(0x1fd)](d,b)[GU(0x24b)](g))),j=new Ae();j[GU(0x58e)]([b['x'],b['y'],b['z'],i['x'],i['y'],i['z']]);const k=new ne({'color':0x377ee8,'depthTest':!0x1,'opacity':0.75,'linewidth':0x4,'resolution':new a0l(window[GU(0xbae)],window[GU(0x9d3)])}),m=new de(j,k);return this[GU(0x770)]&&this['scene'][GU(0x644)](m),{'line':m,'projectedEnd':i};}['removeByIndex'](b){const GV=a0cH;if(b>=0x0&&b<this['measurements']['length']&&this[GV(0x770)]){const {objects:c}=this[GV(0x850)][b];c['forEach'](d=>{this['scene']['remove'](d);}),this[GV(0x850)][GV(0x263)](b,0x1),this[GV(0x182)]===b?this['selectedIndex']=null:this[GV(0x182)]!==null&&this['selectedIndex']>b&&this[GV(0x182)]--;}}['removeLast'](){const GW=a0cH,b=this['measurements']['pop']();b&&this[GW(0x770)]&&b[GW(0x25b)]['forEach'](c=>{this['scene']['remove'](c);});}['getMeasurements'](){const GX=a0cH;return this[GX(0x850)];}}class rf extends Se{constructor(b){const GY=a0cH;super(b),C(this,GY(0x850),[]),C(this,'points',[]),C(this,'snapPoint'),C(this,GY(0x7ad),null),C(this,'previewLabel',null),C(this,GY(0x397),null),C(this,GY(0xab2),!0x1),C(this,GY(0xb6d),null),C(this,'marker'),C(this,GY(0x182),null),(this[GY(0x7a1)]='--tape_measure_guides',this[GY(0x651)][GY(0x4eb)][GY(0xb6c)]({'key':GY(0x764),'type':'press','callback':()=>{const GZ=GY;this[GZ(0x182)]!=null&&this['removeByIndex'](this[GZ(0x182)]);}}));}[a0cH(0x25f)](){}['onDeactivate'](){const H0=a0cH;this[H0(0x969)]();}['clearDraw'](){const H1=a0cH;this[H1(0x7fb)]&&(this['scene'][H1(0x1da)](this['snapPoint']),this[H1(0x7fb)]=null),this['guideLine']&&(this['scene'][H1(0x1da)](this['guideLine']),this['guideLine']=null),this['previewLabel']&&(this['scene'][H1(0x1da)](this[H1(0x47c)]),this['previewLabel']=null),this[H1(0x397)]&&(this['scene']['remove'](this[H1(0x397)]),this['alignmentLine']=null),this[H1(0x76f)][H1(0x576)]==0x1&&this['marker']&&this['scene'][H1(0x1da)](this['marker']),this[H1(0x76f)]=[],this['helperTip']='',this[H1(0xab2)]=!0x1,this[H1(0xb6d)]=null;}['snapToFaceEdgeOrCorner'](c){const H2=a0cH;if(!(c?.['face']&&c[H2(0x8c0)]?.[H2(0x45e)]))return!0x1;const {face:i,object:j,point:k}=c,t=j['geometry']['attributes']['position'],v=[i['a'],i['b'],i['c']][H2(0x941)](R=>{const H3=H2,S=new a0c();return S[H3(0x7bd)](t,R),j['localToWorld'](S),S;}),[x]=this[H2(0x76f)],z=[[v[0x0],v[0x1]],[v[0x1],v[0x2]],[v[0x2],v[0x0]]];this[H2(0x3e2)]['updateMatrixWorld']();const B=this['viewer'][H2(0x2ac)](k)*0x7,F=this[H2(0x651)][H2(0x2ac)](k)*0x5,H=this['viewer']['getWidth'](k)*0x3;let L=0x1/0x0,N=null;if(v['forEach'](R=>{const H4=H2,S=k[H4(0x5ac)](R);S<=B&&S<L&&(L=S,N=R['clone']());}),N||z['forEach'](([R,S])=>{const H5=H2,T=this['getClosestPointOnLineSegment'](k,R,S),U=k[H5(0x5ac)](T);if(U<=F&&U<L&&(L=U,N=T['clone'](),x)){const a0=Math[H5(0x2f1)](T['x']-x['x']),a1=Math['abs'](T['y']-x['y']),a2=Math[H5(0x2f1)](T['z']-x['z']),a3=T['clone']();let a4=!0x1;Math[H5(0x2f1)](a0-a1)<H?(a3['x']=x['x'],a3['y']=x['y'],a4=!0x0):Math['abs'](a0-a2)<H?(a3['x']=x['x'],a3['z']=x['z'],a4=!0x0):Math[H5(0x2f1)](a1-a2)<H&&(a3['y']=x['y'],a3['z']=x['z'],a4=!0x0),a4&&(L=T[H5(0x5ac)](a3),N=a3);}}),!N&&x){const R=Math[H2(0x2f1)](k['x']-x['x']),S=Math['abs'](k['y']-x['y']),T=Math[H2(0x2f1)](k['z']-x['z']),U=k[H2(0x8e8)]();let a0=!0x1;Math[H2(0x2f1)](R-S)<H?(U['x']=x['x'],U['y']=x['y'],a0=!0x0):Math['abs'](R-T)<H?(U['x']=x['x'],U['z']=x['z'],a0=!0x0):Math[H2(0x2f1)](S-T)<H&&(U['y']=x['y'],U['z']=x['z'],a0=!0x0),a0&&(L=k['distanceTo'](U),N=U);}return N?(c['point']=N,!0x0):!0x1;}['getClosestPointOnLineSegment'](b,d,f){const H6=a0cH,g=new a0c()[H6(0x1fd)](f,d),i=new a0c()['subVectors'](b,d),j=g[H6(0x576)](),k=g[H6(0x456)]();let m=i['dot'](k);return m=Math['max'](0x0,Math['min'](m,j)),new a0c()['copy'](d)[H6(0x644)](k['multiplyScalar'](m));}['onMouseMove'](b,f){const H7=a0cH,g=b?.[H7(0x9ec)]||!0x1;this['viewer']['raycaster']['setFromCamera'](this['viewer']['mouse'],this[H7(0x651)][H7(0x3e2)]),this['viewer']['raycaster'][H7(0xa36)]=!0x0;let i=this[H7(0x651)][H7(0x8d8)]['intersectObjects'](Array['from'](this['viewer']['visibleObjects']));this['points']['length']>=0x1&&(this['tooltip']=H7(0x7ee)+(this['points']['length']+0x1)+H7(0x311)+(g?H7(0x667):'')),this['snapPoint']&&(this['scene'][H7(0x1da)](this['snapPoint']),this[H7(0x7fb)]=null),this['guideLine']&&(this['scene'][H7(0x1da)](this['guideLine']),this[H7(0x7ad)]=null),this[H7(0x47c)]&&(this[H7(0x770)]['remove'](this[H7(0x47c)]),this['previewLabel']=null),this[H7(0x397)]&&(this[H7(0x770)]['remove'](this['alignmentLine']),this['alignmentLine']=null);let j,k=!0x1;if(i['length']>0x0)k=this['snapToFaceEdgeOrCorner'](i[0x0]),j=i[0x0]['point'];else{const p=this['viewer'][H7(0x8d8)][H7(0x9c8)]['direction'];let t=0x3e8;this['camera']&&H7(0x42b)in this[H7(0x3e2)]&&(t=this['camera']['far']*0.5),j=p['multiplyScalar'](t)['add'](this[H7(0x651)][H7(0x8d8)]['ray']['origin']);}if(g&&this[H7(0x76f)][H7(0x576)]>=0x1){const {projectedPoint:u,axis:v}=this['projectToNearestAxis'](j,this[H7(0x76f)][0x0]);j=u,this[H7(0xab2)]=!0x0,this['lockedAxis']=v;const w={'x':'X轴','y':'Y轴','z':'Z轴'};this[H7(0x98e)]=H7(0x1c1)+w[v];}else{if(this['isAxisLocked']=!0x1,this['lockedAxis']=null,this['points']['length']>=0x1){const {axis:x}=this['getLineColorByDirection'](this['points'][0x0],j);if(x){const y={'x':'X轴','y':'Y轴','z':'Z轴'};this['helperTip']='平行\x20'+y[x];}else this['helperTip']='';}else this[H7(0x98e)]='';}let m=H7(0xb52);if((k||this[H7(0xab2)])&&(m=H7(0xafe)),this['snapPoint']=J({'className':m}),this[H7(0x7fb)]['position']['copy'](j),this['scene'][H7(0x644)](this['snapPoint']),this['drawGuideLine'](j),this['points'][H7(0x576)]>=0x1){const z=this[H7(0x76f)][0x0][H7(0x5ac)](j);this['drawPreviewLabel'](this['points'][0x0],j,z),k&&this[H7(0x76f)]['length']===0x1&&!this[H7(0xab2)]&&this['drawAlignmentLine'](this[H7(0x76f)][0x0],j);}}['onClick'](b,{hits:c}){const H8=a0cH;if(c&&c['length']>0x0){this['snapToFaceEdgeOrCorner'](c[0x0]);let d=c[0x0][H8(0x21d)];if(b[H8(0x9ec)]&&this['points'][H8(0x576)]>=0x1){const {projectedPoint:f}=this[H8(0x697)](c[0x0][H8(0x21d)],this[H8(0x76f)][0x0]);d=f;}this['addPoint'](d);}}['addPoint'](b){const H9=a0cH;if(this['points'][H9(0x50e)](b['clone']()),this['points'][H9(0x576)]==0x1)this[H9(0xb3b)]=J({'className':H9(0x740)}),this['marker']['position'][H9(0x195)](b),this[H9(0x770)]['add'](this['marker']);else{if(this[H9(0x76f)]['length']>=0x2){const d=this['drawLine'](),[f,g]=this['points'],h=f[H9(0x5ac)](g),i=J({'className':'bmv-measure-label','html':h['toFixed'](0x2)+'\x20'+this[H9(0x46a)]+'\x20<span\x20title=\x22移除\x22\x20class=\x22bmv-measure-label-delete\x22>x</span>','click':({event:k})=>{const Hb=H9,m=k[Hb(0x427)];m&&m[Hb(0x5fd)]=='SPAN'?this['measurements']['forEach']((p,t)=>{p['objects'][0x3]==i&&this['removeByIndex'](t);}):this['measurements']['forEach']((t,v)=>{const Hf=Hb;if(t['objects'][0x3]==i)t['objects'][0x2][Hf(0xb87)]['opacity']=0x1,t['objects'][0x2][Hf(0xb87)][Hf(0x488)]=0x6,t['objects'][0x2][Hf(0xb87)][Hf(0xa89)]['setHex'](0xff00),this['selectedIndex']=v;else{t[Hf(0x25b)][0x2][Hf(0xb87)]['opacity']=0.75,t[Hf(0x25b)][0x2][Hf(0xb87)][Hf(0x488)]=0x4;const [w,x]=t[Hf(0x76f)],{color:y}=this[Hf(0x93c)](w,x);t[Hf(0x25b)][0x2][Hf(0xb87)][Hf(0xa89)][Hf(0x786)](y);}});}});i[H9(0x3e0)][H9(0x195)](f['clone']()['lerp'](g,0.5)),this['scene'][H9(0x644)](i);const j=J({'className':'measure-point'});j[H9(0x3e0)]['copy'](g),this['scene']['add'](j),this['measurements'][H9(0x50e)]({'length':parseFloat(h[H9(0x39d)](0x2)),'unit':this[H9(0x46a)],'points':[f,g],'objects':[this['marker'],j,d,i]}),this[H9(0x595)]();}}}[a0cH(0x1c2)](){const Hj=a0cH,b=this['measurements']['pop']();b&&b['objects'][Hj(0x2cd)](c=>{const Hk=Hj;this['scene']&&this[Hk(0x770)]['remove'](c);});}[a0cH(0xb4c)](b){const Hm=a0cH;if(b<0x0||b>=this['measurements'][Hm(0x576)])return;const {objects:c}=this[Hm(0x850)][b];c[Hm(0x2cd)](d=>{const Hp=Hm;this[Hp(0x770)][Hp(0x1da)](d);}),this[Hm(0x850)][Hm(0x263)](b,0x1),this[Hm(0x182)]===b?this['selectedIndex']=null:this['selectedIndex']!==null&&this[Hm(0x182)]>b&&this[Hm(0x182)]--;}[a0cH(0x388)](){return this['measurements'];}[a0cH(0x6d2)](){const Hq=a0cH;this[Hq(0x850)]['forEach'](b=>{const Hv=Hq;b[Hv(0x25b)][Hv(0x2cd)](c=>{const Hw=Hv;this['scene'][Hw(0x1da)](c);});}),this['measurements']=[],this['selectedIndex']=null,this['clearDraw']();}['projectToNearestAxis'](b,d){const Hx=a0cH,f=new a0c()['subVectors'](b,d),g=new a0c(Math[Hx(0x2f1)](f['x']),Math['abs'](f['y']),Math['abs'](f['z']));let h='x',i=g['x'];g['y']>i&&(i=g['y'],h='y'),g['z']>i&&(i=g['z'],h='z');const j=d[Hx(0x8e8)]();return h==='x'?j['x']=b['x']:h==='y'?j['y']=b['y']:j['z']=b['z'],{'projectedPoint':j,'axis':h};}[a0cH(0x93c)](b,d){const Hy=a0cH,f=new a0c()['subVectors'](d,b);if(f['length']()<0.001)return{'color':0x377ee8,'axis':null};const g=f['clone']()['normalize'](),i=new a0c(Math['abs'](g['x']),Math[Hy(0x2f1)](g['y']),Math[Hy(0x2f1)](g['z'])),j=0.99,k=0.01;return i['x']>j&&i['y']<k&&i['z']<k?{'color':0xff0000,'axis':'x'}:i['y']>j&&i['x']<k&&i['z']<k?{'color':0xff,'axis':'y'}:i['z']>j&&i['x']<k&&i['y']<k?{'color':0xff00,'axis':'z'}:{'color':0x377ee8,'axis':null};}['drawGuideLine'](b){const HB=a0cH,c=this[HB(0x76f)][0x0];if(!c)return;const d=new Ae();d['setPositions']([c['x'],c['y'],c['z'],b['x'],b['y'],b['z']]);let f;this[HB(0xab2)]&&this[HB(0xb6d)]?f={'x':0xff0000,'y':0xff,'z':0xff00}[this['lockedAxis']]:f=this[HB(0x93c)](c,b)['color'];const g=new ne({'color':f,'depthTest':!0x1,'linewidth':2.5,'opacity':0.5,'resolution':new a0l(window['innerWidth'],window[HB(0x9d3)])});this[HB(0x7ad)]=new de(d,g),this['scene']['add'](this['guideLine']);}['drawPreviewLabel'](b,c,d){const HC=a0cH,f=b[HC(0x8e8)]()[HC(0x27b)](c,0.5);this[HC(0x47c)]=J({'className':'bmv-measure-label\x20bmv-measure-preview','html':d[HC(0x39d)](0x2)+'\x20'+this[HC(0x46a)]}),this['previewLabel'][HC(0x3e0)]['copy'](f),this[HC(0x770)]['add'](this['previewLabel']);}['drawAlignmentLine'](b,f){const HD=a0cH,g=Math[HD(0x2f1)](f['x']-b['x']),i=Math[HD(0x2f1)](f['y']-b['y']),j=Math[HD(0x2f1)](f['z']-b['z']),k=0.01;let m=f[HD(0x8e8)](),p=!0x1;if(g<k&&i<k?(m['x']=b['x'],m['y']=b['y'],p=!0x0):g<k&&j<k?(m['x']=b['x'],m['z']=b['z'],p=!0x0):i<k&&j<k&&(m['y']=b['y'],m['z']=b['z'],p=!0x0),p&&m['distanceTo'](f)>0.001){const t=new Ae();t['setPositions']([b['x'],b['y'],b['z'],m['x'],m['y'],m['z']]);const u=new ne({'color':0xff00,'depthTest':!0x1,'linewidth':1.5,'opacity':0.3,'resolution':new a0l(window[HD(0xbae)],window['innerHeight'])});this['alignmentLine']=new de(t,u),this['scene']['add'](this[HD(0x397)]);}}['drawLine'](){const HE=a0cH,b=this[HE(0x76f)][0x0],d=this['points'][0x1],f=new Ae();f[HE(0x58e)]([b['x'],b['y'],b['z'],d['x'],d['y'],d['z']]);const {color:g}=this['getLineColorByDirection'](b,d),h=new ne({'color':g,'depthTest':!0x1,'opacity':0.75,'linewidth':0x4,'resolution':new a0l(window[HE(0xbae)],window[HE(0x9d3)])}),i=new de(f,h);return this[HE(0x770)][HE(0x644)](i),i;}}class of extends Se{constructor(b){const HF=a0cH;super(b),C(this,'eyeHeight',1.7),C(this,HF(0x758),0xa),C(this,'CSS_CLASS_WALK',HF(0x17c)),C(this,'CSS_CLASS_LOOK_AROUND',HF(0x69d)),this['cursor']=this[HF(0x635)];}['onActivate'](){const HG=a0cH;if(!this[HG(0x651)][HG(0xaba)]()){this[HG(0x98d)]['error'](HG(0x4b9),0xbb8),this['deactivate']();return;}this[HG(0x531)]='点击任意平面进入第一人称模式(ESC退出)';}['onDeactivate'](){const HH=a0cH;this[HH(0x651)]['setOrbitBehavior']('auto'),this['viewer'][HH(0x72f)][HH(0xa47)]['remove'](this[HH(0x4ad)]),this[HH(0x37e)]();}async[a0cH(0x766)](b,c){const HI=a0cH;if(!this['viewer']['isPerspective']()){this[HI(0x98d)][HI(0x323)]('正交相机不支持第一人称漫游,请切换到透视相机',0xbb8),this['deactivate']();return;}const {hits:d}=c;if(!(!d||!this[HI(0x817)](d)))try{const f=this['calculateCameraPosition'](d[0x0]['point']);if(!this[HI(0x64b)](f)){console[HI(0x637)]('[PositionCameraTool]\x20计算出的相机位置无效');return;}const g=this[HI(0xb01)](f);await this['moveCameraToPosition'](f,g),this['enterFirstPersonMode']();}catch(h){console[HI(0x323)](HI(0x8bb),h),this[HI(0x531)]='定位失败,请重试';}}['isValidHit'](b){const HJ=a0cH;return b[HJ(0x576)]>0x0&&b[0x0][HJ(0xa73)]!==null&&b[0x0][HJ(0xa73)]!==void 0x0;}[a0cH(0x64b)](b){return!isNaN(b['x'])&&!isNaN(b['y'])&&!isNaN(b['z'])&&isFinite(b['x'])&&isFinite(b['y'])&&isFinite(b['z']);}[a0cH(0x9b0)](b){const HK=a0cH,c=new a0c();return this[HK(0x651)]['controls']&&this['viewer']['controls'][HK(0x317)](c),c[HK(0x46c)](b['x'],b['y']+this[HK(0x29a)],b['z']),c;}[a0cH(0xb01)](b){return new a0c(b['x'],b['y'],b['z']-this['DEFAULT_LOOK_AHEAD_DISTANCE']);}async[a0cH(0x4d8)](b,c){const HL=a0cH;if(!this['viewer'][HL(0x7b4)])throw new Error('相机控制器不可用');await this[HL(0x651)]['controls']['setLookAt'](b['x'],b['y'],b['z'],c['x'],c['y'],c['z'],!0x0);}['enterFirstPersonMode'](){const HM=a0cH;this[HM(0xac6)](),this['viewer']['setOrbitBehavior'](HM(0x2f3)),this['tooltip']='',this[HM(0x651)][HM(0x72f)][HM(0xa47)]['add'](this['CSS_CLASS_LOOK_AROUND']),this['viewer'][HM(0x72f)]['classList'][HM(0x1da)](this[HM(0x635)]);}}class af extends Se{constructor(b){const HN=a0cH;super(b),C(this,'raycaster'),C(this,'selectedObject',null),C(this,HN(0x699),null),C(this,'closeButton',null),(this['raycaster']=new a0aJ(),this['cursor']=HN(0x601),this[HN(0x7f9)]());}['createPropertyPanel'](){const HO=a0cH;this[HO(0x699)]=document[HO(0x558)](HO(0x4b6)),this['propertyPanel'][HO(0x757)]='property-viewer-panel',Object[HO(0x9a8)](this['propertyPanel']['style'],{'position':'absolute','top':HO(0xb43),'right':HO(0xb43),'width':HO(0x6bf),'maxHeight':HO(0x24f),'backgroundColor':HO(0x244),'color':HO(0x684),'borderRadius':'8px','padding':HO(0x63e),'zIndex':'1001','display':HO(0x6ab),'boxShadow':'0\x204px\x2020px\x20rgba(0,\x200,\x200,\x200.3)','backdropFilter':HO(0xacf),'border':'1px\x20solid\x20rgba(255,\x20255,\x20255,\x200.1)','fontFamily':HO(0x9e5),'fontSize':HO(0xb6e),'overflowY':'auto','transition':'all\x200.3s\x20ease'});const b=document['createElement']('div');Object[HO(0x9a8)](b['style'],{'display':HO(0x83c),'justifyContent':'space-between','alignItems':'center','marginBottom':'12px','paddingBottom':HO(0x19a),'borderBottom':'1px\x20solid\x20rgba(255,\x20255,\x20255,\x200.2)'});const c=document[HO(0x558)]('h3');c[HO(0x904)]='对象属性',Object['assign'](c['style'],{'margin':'0','fontSize':'16px','fontWeight':'600','color':'#377ee8'}),this['closeButton']=document['createElement']('button'),this[HO(0xb5d)]['textContent']='✕',Object[HO(0x9a8)](this[HO(0xb5d)]['style'],{'background':'none','border':HO(0x6ab),'color':HO(0x684),'fontSize':HO(0x8c8),'cursor':'pointer','padding':HO(0x971),'borderRadius':HO(0x44e),'transition':'background-color\x200.2s'}),this[HO(0xb5d)][HO(0x1f6)]('mouseenter',()=>{const HP=HO;this[HP(0xb5d)][HP(0x639)][HP(0xa53)]='rgba(255,\x20255,\x20255,\x200.1)';}),this[HO(0xb5d)][HO(0x1f6)](HO(0x6cc),()=>{const HQ=HO;this[HQ(0xb5d)][HQ(0x639)]['backgroundColor']='transparent';}),this['closeButton']['addEventListener'](HO(0x499),()=>{this['hidePropertyPanel']();}),b['appendChild'](c),b[HO(0x89a)](this['closeButton']),this[HO(0x699)][HO(0x89a)](b);const d=document['createElement'](HO(0x4b6));d['id']=HO(0x39c),this['propertyPanel'][HO(0x89a)](d),this[HO(0x651)]['el'][HO(0x89a)](this[HO(0x699)]);}['showPropertyPanel'](){const HR=a0cH;this[HR(0x699)]&&(this['propertyPanel'][HR(0x639)][HR(0x9e9)]='block',this['propertyPanel']['style'][HR(0xab5)]='0',this[HR(0x699)][HR(0x639)][HR(0xb0c)]='translateX(20px)',requestAnimationFrame(()=>{const HS=HR;this[HS(0x699)][HS(0x639)]['opacity']='1',this[HS(0x699)][HS(0x639)]['transform']='translateX(0)';}));}[a0cH(0x4df)](){const HT=a0cH;this[HT(0x699)]&&(this['propertyPanel']['style'][HT(0xab5)]='0',this['propertyPanel']['style']['transform']=HT(0x5e1),setTimeout(()=>{const HU=HT;this['propertyPanel'][HU(0x639)]['display']=HU(0x6ab);},0x12c)),this['selectedObject']=null;}[a0cH(0x410)](b){const HV=a0cH;if(!this[HV(0x699)])return;const c=this[HV(0x699)]['querySelector']('#property-content');if(!c)return;c['innerHTML']='';const d=this[HV(0x509)](b);if(d['forEach'](f=>{const HW=HV,g=document[HW(0x558)](HW(0x4b6));Object[HW(0x9a8)](g['style'],{'display':'flex','justifyContent':HW(0x1ac),'alignItems':'center','padding':HW(0x82d),'borderBottom':HW(0x347)});const h=document['createElement'](HW(0x96b));h[HW(0x904)]=f['label'],Object['assign'](h['style'],{'fontWeight':HW(0x957),'color':HW(0x6df)});const i=document[HW(0x558)](HW(0x96b));i['textContent']=f['value'],Object['assign'](i['style'],{'color':HW(0xb0f),'fontWeight':HW(0x1fb),'maxWidth':HW(0x99e),'overflow':HW(0x7b2),'textOverflow':HW(0x629),'whiteSpace':HW(0x37b)}),g[HW(0x89a)](h),g[HW(0x89a)](i),c[HW(0x89a)](g);}),d['length']===0x0){const f=document['createElement'](HV(0x4b6));f[HV(0x904)]='该对象没有可用的属性信息',f['style']['textAlign']='center',f['style'][HV(0xa89)]=HV(0x99a),f[HV(0x639)]['padding']='20px\x200',c['appendChild'](f);}}['extractObjectProperties'](b){const HX=a0cH,c=[];c[HX(0x50e)]({'label':HX(0x6ef),'value':b['type']}),c['push']({'label':HX(0xb59),'value':b[HX(0x587)]||'未命名'}),c['push']({'label':'UUID','value':b[HX(0x9b1)][HX(0x221)](0x0,0x8)+HX(0x572)});const d=b[HX(0x330)]?b['children'][HX(0x576)]:0x0,f=this['getParentCount'](b);return c['push']({'label':HX(0x86b),'value':d[HX(0xa82)]()}),c['push']({'label':'父级数量','value':f[HX(0xa82)]()}),b[HX(0x3e0)]&&c[HX(0x50e)]({'label':'位置','value':'X:'+b[HX(0x3e0)]['x']['toFixed'](0x2)+HX(0xa27)+b['position']['y']['toFixed'](0x2)+HX(0x314)+b['position']['z']['toFixed'](0x2)}),b['rotation']&&c['push']({'label':'旋转','value':'X:'+(b[HX(0x4cd)]['x']*0xb4/Math['PI'])[HX(0x39d)](0x1)+HX(0x94d)+(b[HX(0x4cd)]['y']*0xb4/Math['PI'])[HX(0x39d)](0x1)+HX(0x922)+(b[HX(0x4cd)]['z']*0xb4/Math['PI'])[HX(0x39d)](0x1)+'°'}),b[HX(0x49b)]&&c['push']({'label':'缩放','value':'X:'+b[HX(0x49b)]['x'][HX(0x39d)](0x2)+HX(0xa27)+b['scale']['y'][HX(0x39d)](0x2)+HX(0x314)+b[HX(0x49b)]['z'][HX(0x39d)](0x2)}),c[HX(0x50e)]({'label':'可见','value':b[HX(0x921)]?'是':'否'}),b['userData']&&Object['keys'](b[HX(0x47e)])[HX(0x576)]>0x0&&Object['entries'](b['userData'])[HX(0x2cd)](([g,h])=>{const HY=HX;g&&h!==void 0x0&&h!==null&&c['push']({'label':g,'value':this[HY(0x9ee)](h)});}),c;}[a0cH(0x286)](b){const HZ=a0cH;let c=0x0,d=b[HZ(0x717)];for(;d!==null;)c++,d=d[HZ(0x717)];return c;}['formatUserDataValue'](b){const I0=a0cH;return typeof b=='string'?b['length']>0x1e?b[I0(0x221)](0x0,0x1e)+I0(0x572):b:typeof b==I0(0x7ca)?b[I0(0xa82)]():typeof b=='boolean'?b?'是':'否':Array[I0(0x1d4)](b)?JSON[I0(0x2cf)](b):typeof b=='object'?'对象':String(b);}[a0cH(0x766)](b,c){const I1=a0cH,{hits:d}=c;if(d&&d['length']>0x0){const f=d[0x0][I1(0x8c0)];this['selectedObject']=f,this['updatePropertyContent'](f),this[I1(0xae2)](),this[I1(0x98d)]['success']('已选择对象:\x20'+(f['name']||f[I1(0x223)]));}}[a0cH(0x25f)](){const I2=a0cH;this['tooltip']='点击模型查看属性',this[I2(0x98d)][I2(0x404)]('属性查看工具已激活,点击模型查看属性信息');}[a0cH(0x473)](){const I3=a0cH;this[I3(0x4df)](),this[I3(0x531)]='',this['helperTip']='';}[a0cH(0xaaf)](){super['activate']();}[a0cH(0x595)](){super['deactivate']();}['dispose'](){const I4=a0cH;this[I4(0x699)]&&this['propertyPanel']['parentNode']&&this[I4(0x699)][I4(0x909)][I4(0x7f7)](this[I4(0x699)]),super[I4(0xa58)]();}get['renderer'](){const I5=a0cH;return this['_viewer'][I5(0x976)];}}const hr=0x377ee8,Ar=0x3,dr=0.9,Fg=0xff00,Og=0x5,Ng=0xff0000,Ug=0x2,Gg=0.6,zg=0.01,Hg=0xf;class cf extends Se{constructor(b){const I6=a0cH;super(b),C(this,'drawings',[]),C(this,I6(0xb35),[]),C(this,'isDrawing',!0x1),C(this,'guideLine',null),C(this,I6(0x7fb),null),C(this,'controlsEnabled',!0x0),C(this,I6(0x182),null),(this['cursor']=I6(0x9d1),this[I6(0x651)][I6(0x4eb)]['addShortcut']({'key':'Delete','type':I6(0x256),'callback':()=>{const I7=I6;this[I7(0x182)]!=null&&this['removeByIndex'](this['selectedIndex']);}}));}['onActivate'](){const I8=a0cH;this['tooltip']='按住鼠标拖动绘制线条,松开完成绘制',this[I8(0x7b4)]&&(this[I8(0x858)]=this[I8(0x7b4)][I8(0x95b)],this['controls']['enabled']=!0x1);}['onDeactivate'](){const I9=a0cH;this[I9(0x969)](),this[I9(0x7b4)]&&(this['controls'][I9(0x95b)]=this[I9(0x858)]);}[a0cH(0x969)](){const Ib=a0cH;this[Ib(0x770)]&&(this[Ib(0x7fb)]&&(this[Ib(0x770)][Ib(0x1da)](this['snapPoint']),this['snapPoint']=null),this[Ib(0x7ad)]&&(this[Ib(0x770)]['remove'](this[Ib(0x7ad)]),this['guideLine']=null),this['currentPoints']=[],this[Ib(0xaa3)]=!0x1,this[Ib(0x98e)]='');}['snapToFaceEdgeOrCorner'](b){const If=a0cH;if(!(b?.[If(0xa73)]&&b['object']))return!0x1;const c=b[If(0x8c0)];if(!(c instanceof a0e)||!c['geometry'])return!0x1;const {face:f,point:i}=b,j=c['geometry'][If(0x974)]['position'],k=[f['a'],f['b'],f['c']][If(0x941)](x=>{const Ij=If,y=new a0c();return y['fromBufferAttribute'](j,x),c[Ij(0x13f)](y),y;}),m=[[k[0x0],k[0x1]],[k[0x1],k[0x2]],[k[0x2],k[0x0]]];this['camera']&&this[If(0x3e2)]['updateMatrixWorld']();const p=this['viewer'][If(0x2ac)](i)*0x7,t=this['viewer']['getWidth'](i)*0x5;let v=0x1/0x0,w=null;return k[If(0x2cd)](x=>{const Ik=If,y=i[Ik(0x5ac)](x);y<=p&&y<v&&(v=y,w=x['clone']());}),w||m['forEach'](([x,y])=>{const Im=If,z=this[Im(0x493)](i,x,y),B=i[Im(0x5ac)](z);B<=t&&B<v&&(v=B,w=z[Im(0x8e8)]());}),w?(b['point']=w,!0x0):!0x1;}['getClosestPointOnLineSegment'](b,d,f){const Ip=a0cH,g=new a0c()['subVectors'](f,d),i=new a0c()[Ip(0x1fd)](b,d),j=g[Ip(0x576)](),k=g[Ip(0x456)]();let m=i['dot'](k);return m=Math['max'](0x0,Math[Ip(0x2f8)](m,j)),new a0c()['copy'](d)['add'](k['multiplyScalar'](m));}[a0cH(0xba7)](b,c){const Iq=a0cH;if(this[Iq(0xaa3)]){this[Iq(0xb35)][Iq(0x576)]>=0x2?this[Iq(0x9c0)]():this['clearDraw']();return;}if(this['startTool'](),this['isDrawing']=!0x0,this['currentPoints']=[],!this[Iq(0x651)][Iq(0x3e2)])return;this['viewer']['raycaster']['setFromCamera'](this['viewer'][Iq(0x177)],this['viewer']['camera']),this[Iq(0x651)][Iq(0x8d8)]['firstHitOnly']=!0x0;let d=this['viewer']['raycaster'][Iq(0xa6b)](Array['from'](this['viewer']['visibleObjects']));d['length']>0x0&&(this['snapToFaceEdgeOrCorner'](d[0x0]),this[Iq(0x5f3)](d[0x0]['point']));}[a0cH(0x766)](b,c){if(this['isDrawing'])return;const d=this['detectClickedLine'](c);d!==null&&this['selectLine'](d);}['onMouseMove'](b,d){const It=a0cH;if(!this[It(0x24e)]||!this[It(0x651)][It(0x3e2)])return;this['viewer'][It(0x8d8)]['setFromCamera'](this['viewer'][It(0x177)],this['viewer']['camera']),this['viewer']['raycaster'][It(0xa36)]=!0x0;let f=this[It(0x651)]['raycaster']['intersectObjects'](Array[It(0xb73)](this[It(0x651)][It(0x6c7)]));this['isDrawing']?this[It(0x531)]=It(0xaac):this[It(0x531)]=It(0x1f3),this['scene']&&(this[It(0x7fb)]&&(this[It(0x770)][It(0x1da)](this['snapPoint']),this['snapPoint']=null),this[It(0x7ad)]&&(this['scene'][It(0x1da)](this[It(0x7ad)]),this[It(0x7ad)]=null));let g,i=!0x1;if(f['length']>0x0)i=this[It(0xb23)](f[0x0]),g=f[0x0][It(0x21d)];else{const k=this[It(0x651)][It(0x8d8)]['ray']['direction'];let m=0x3e8;this['camera']&&It(0x42b)in this['camera']&&typeof this[It(0x3e2)][It(0x42b)]=='number'&&(m=this[It(0x3e2)][It(0x42b)]*0.5),g=k['multiplyScalar'](m)['add'](this[It(0x651)]['raycaster'][It(0x9c8)]['origin']);}let j=It(0xb52);i&&(j=It(0xafe)),this[It(0x7fb)]=J({'className':j}),this[It(0x7fb)]['position'][It(0x195)](g),this[It(0x770)]&&this[It(0x770)]['add'](this[It(0x7fb)]),this['isDrawing']&&this[It(0xb35)][It(0x576)]>0x0?(this['currentPoints'][this[It(0xb35)]['length']-0x1][It(0x5ac)](g)>=zg&&this[It(0x5f3)](g),this[It(0x1e4)](g)):this['currentPoints']['length']>0x0&&!this[It(0xaa3)]&&this['updateGuideLine'](g);}['onMouseUp'](b,c){const Iv=a0cH;this['isDrawing']&&(this['isDrawing']=!0x1,this['currentPoints'][Iv(0x576)]>=0x2?this['completeCurrentLine']():this[Iv(0x969)](),this['stopTool']());}[a0cH(0x5f3)](b){const Iw=a0cH;this[Iw(0xb35)]['push'](b['clone']()),this['currentPoints'][Iw(0x576)]>=0x2&&this[Iw(0x4d7)]();}[a0cH(0x4d7)](){const Ix=a0cH;if(!this['scene'])return;const b=this['scene']['children']['find'](h=>h['userData']?.[Ix(0x769)]);b&&this['scene'][Ix(0x1da)](b);const c=new Ae(),d=[];this['currentPoints'][Ix(0x2cd)](h=>{d['push'](h['x'],h['y'],h['z']);}),c[Ix(0x58e)](d);const f=new ne({'color':hr,'depthTest':!0x1,'linewidth':Ar,'opacity':dr,'resolution':new a0l(window[Ix(0xbae)],window[Ix(0x9d3)])}),g=new de(c,f);g['userData'][Ix(0x769)]=!0x0,this[Ix(0x770)]['add'](g);}[a0cH(0x1e4)](b){const Iy=a0cH;if(this[Iy(0xb35)][Iy(0x576)]===0x0||!this['scene'])return;const c=this[Iy(0xb35)][this['currentPoints'][Iy(0x576)]-0x1],d=new Ae();d[Iy(0x58e)]([c['x'],c['y'],c['z'],b['x'],b['y'],b['z']]);const f=new ne({'color':Ng,'depthTest':!0x1,'linewidth':Ug,'opacity':Gg,'resolution':new a0l(window['innerWidth'],window['innerHeight'])});this[Iy(0x7ad)]=new de(d,f),this[Iy(0x770)][Iy(0x644)](this['guideLine']);}['completeCurrentLine'](){const Iz=a0cH;if(this['currentPoints']['length']<0x2||!this['scene'])return;const b=this['scene']['children']['find'](k=>k[Iz(0x47e)]?.[Iz(0x769)]);b&&this['scene'][Iz(0x1da)](b);const d=new Ae(),f=[];this['currentPoints']['forEach'](k=>{f['push'](k['x'],k['y'],k['z']);}),d[Iz(0x58e)](f);const g=new ne({'color':hr,'depthTest':!0x1,'linewidth':Ar,'opacity':dr,'resolution':new a0l(window['innerWidth'],window['innerHeight'])}),h=new de(d,g);h['userData']['isFreehandDrawing']=!0x0,h['userData']['drawingIndex']=this['drawings'][Iz(0x576)],this['scene'][Iz(0x644)](h);const i=this[Iz(0x59b)](this[Iz(0xb35)]),j=J({'className':Iz(0x551),'html':'线条\x20'+(this[Iz(0x62c)][Iz(0x576)]+0x1)+Iz(0x365),'click':({event:k})=>{const IB=Iz,m=k['target'],p=this[IB(0x62c)][IB(0x7bb)](t=>t[IB(0xb15)]===j);m&&(m['tagName']==='SPAN'||m['classList']['contains'](IB(0x166)))?p!==-0x1&&this[IB(0xb4c)](p):p!==-0x1&&this['selectLine'](p);}});j[Iz(0x3e0)][Iz(0x195)](i),this[Iz(0x770)]['add'](j),this[Iz(0x62c)][Iz(0x50e)]({'points':[...this['currentPoints']],'line':h,'label':j}),this['clearDraw']();}['calculateLineCenter'](b){const IC=a0cH;if(b[IC(0x576)]===0x0)return new a0c();if(b['length']===0x1)return b[0x0][IC(0x8e8)]();const c=new a0c();return b['forEach'](d=>{c['add'](d);}),c[IC(0xac1)](b['length']),c;}[a0cH(0x71c)](b){const ID=a0cH;if(!this['viewer'][ID(0x3e2)]||!this['scene']||this['drawings'][ID(0x576)]===0x0)return null;this[ID(0x651)]['raycaster'][ID(0x5f4)](this[ID(0x651)][ID(0x177)],this['viewer']['camera']);let d;if(b['hits']&&b[ID(0x70d)][ID(0x576)]>0x0)d=b[ID(0x70d)][0x0]['point'];else{const j=this['viewer'][ID(0x8d8)]['ray'][ID(0x3e5)];let k=0x3e8;this['camera']&&'far'in this[ID(0x3e2)]&&typeof this[ID(0x3e2)]['far']=='number'&&(k=this[ID(0x3e2)]['far']*0.5),d=j['multiplyScalar'](k)[ID(0x644)](this['viewer'][ID(0x8d8)][ID(0x9c8)][ID(0x812)]);}const f=this['viewer']['getWidth'](d)*Hg;let g=null,i=0x1/0x0;return this['drawings'][ID(0x2cd)]((m,n)=>{const IE=ID,t=m['points'];if(!(t['length']<0x2))for(let v=0x0;v<t['length']-0x1;v++){const w=t[v],x=t[v+0x1],y=this[IE(0x493)](d,w,x),z=d[IE(0x5ac)](y);z<f&&z<i&&(i=z,g=n);}}),g;}['selectLine'](b){const IF=a0cH;if(!(b<0x0||b>=this[IF(0x62c)][IF(0x576)])){if(this['selectedIndex']===b){this['highlightLine'](b,!0x1),this['selectedIndex']=null;return;}this['selectedIndex']!==null&&this['highlightLine'](this[IF(0x182)],!0x1),this['selectedIndex']=b,this['highlightLine'](b,!0x0);}}['highlightLine'](b,c){const IG=a0cH;if(b<0x0||b>=this['drawings']['length'])return;const {line:d}=this[IG(0x62c)][b],f=d['material'];c?(f[IG(0xa89)]['setHex'](Fg),f[IG(0x488)]=Og,f['opacity']=0x1):(f['color']['setHex'](hr),f['linewidth']=Ar,f[IG(0xab5)]=dr);}['removeByIndex'](b){const IH=a0cH;if(b<0x0||b>=this[IH(0x62c)][IH(0x576)]||!this[IH(0x770)])return;const {line:c,label:d}=this['drawings'][b];this[IH(0x770)][IH(0x1da)](c),this['scene'][IH(0x1da)](d),this[IH(0x62c)][IH(0x263)](b,0x1),this[IH(0x182)]===b?this[IH(0x182)]=null:this[IH(0x182)]!==null&&this[IH(0x182)]>b&&this['selectedIndex']--,this[IH(0x62c)][IH(0x2cd)]((f,g)=>{const II=IH;if(f[II(0x876)][II(0x47e)]&&(f[II(0x876)][II(0x47e)][II(0x6b6)]=g),f['label']&&f[II(0xb15)][II(0x798)]){const h=f[II(0xb15)][II(0x798)]['querySelector'](II(0x449));h&&(h[II(0x4da)]='线条\x20'+(g+0x1)+'\x20<span\x20title=\x22删除\x22\x20class=\x22bmv-measure-label-delete\x22>×</span>');}});}['removeLast'](){const IJ=a0cH,b=this['drawings'][IJ(0x3da)]();b&&this[IJ(0x770)]&&(this['scene']['remove'](b[IJ(0x876)]),this['scene']['remove'](b[IJ(0xb15)]));}[a0cH(0x593)](){const IK=a0cH;return this[IK(0x62c)];}[a0cH(0x6d2)](){const IL=a0cH;if(!this[IL(0x770)])return;const b=this[IL(0x770)];this[IL(0x62c)]['forEach'](c=>{const IM=IL;b['remove'](c[IM(0x876)]),b['remove'](c[IM(0xb15)]);}),this[IL(0x62c)]=[],this[IL(0x182)]=null,this[IL(0x969)]();}['deselect'](){const IN=a0cH;this[IN(0x182)]!==null&&(this[IN(0x7ab)](this[IN(0x182)],!0x1),this['selectedIndex']=null);}}const ua=0x377ee8,ga=0x3,fa=0.9,qg=0x2,Vg=0.6;class lf extends Se{constructor(b,c){const IO=a0cH;super(b),C(this,IO(0xb90),[]),C(this,'groups',[]),C(this,IO(0x76f),[]),C(this,IO(0x7fb),null),C(this,'guideLine',null),C(this,'alignmentLine',null),C(this,IO(0x858),!0x0),C(this,IO(0xab2),!0x1),C(this,'lockedAxis',null),C(this,IO(0xabf),!0x0),C(this,IO(0x7d2),0x0),C(this,'selectedIndex',null),(this[IO(0x7a1)]='--pencil',this[IO(0xabf)]=c?.['continuousDrawing']!==!0x1,this['viewer']['shortcutManager']['addShortcut']({'key':IO(0x764),'type':'press','callback':()=>{const IP=IO;this[IP(0x182)]!=null&&this['removeByIndex'](this['selectedIndex']);}}));}['onActivate'](){const IQ=a0cH;this[IQ(0x531)]='点击添加直线的起点和终点,按住\x20Shift\x20锁定轴',this[IQ(0x7d2)]=this['groups'][IQ(0x576)];}[a0cH(0x473)](){const IR=a0cH;this[IR(0x969)](),this[IR(0x7b4)]&&(this['controls']['enabled']=this[IR(0x858)]);}['clearDraw'](){const IS=a0cH;this[IS(0x770)]&&(this['snapPoint']&&(this['scene'][IS(0x1da)](this['snapPoint']),this[IS(0x7fb)]=null),this['guideLine']&&(this[IS(0x770)][IS(0x1da)](this[IS(0x7ad)]),this[IS(0x7ad)]=null),this[IS(0x397)]&&(this[IS(0x770)]['remove'](this[IS(0x397)]),this['alignmentLine']=null),this['points']=[],this[IS(0x98e)]='',this[IS(0xab2)]=!0x1,this['lockedAxis']=null);}['snapToFaceEdgeOrCorner'](b){const IT=a0cH;if(!(b?.[IT(0xa73)]&&b['object']))return!0x1;const c=b['object'];if(!(c instanceof a0e)||!c['geometry'])return!0x1;const {face:f,point:i}=b,j=c['geometry'][IT(0x974)][IT(0x3e0)],k=[f['a'],f['b'],f['c']][IT(0x941)](x=>{const IU=IT,y=new a0c();return y['fromBufferAttribute'](j,x),c[IU(0x13f)](y),y;}),m=[[k[0x0],k[0x1]],[k[0x1],k[0x2]],[k[0x2],k[0x0]]];this[IT(0x3e2)]&&this[IT(0x3e2)]['updateMatrixWorld']();const p=this['viewer'][IT(0x2ac)](i)*0x7,t=this[IT(0x651)]['getWidth'](i)*0x5;let v=0x1/0x0,w=null;return k[IT(0x2cd)](x=>{const IV=IT,y=i[IV(0x5ac)](x);y<=p&&y<v&&(v=y,w=x['clone']());}),w||m[IT(0x2cd)](([x,y])=>{const IW=IT,z=this['getClosestPointOnLineSegment'](i,x,y),B=i[IW(0x5ac)](z);B<=t&&B<v&&(v=B,w=z[IW(0x8e8)]());}),w?(b['point']=w,!0x0):!0x1;}[a0cH(0x493)](b,d,f){const IX=a0cH,g=new a0c()[IX(0x1fd)](f,d),i=new a0c()[IX(0x1fd)](b,d),j=g['length'](),k=g['normalize']();let m=i[IX(0x24b)](k);return m=Math['max'](0x0,Math['min'](m,j)),new a0c()['copy'](d)[IX(0x644)](k['multiplyScalar'](m));}['onMouseMove'](b,f){const IY=a0cH;if(!this['isActive']||!this['viewer'][IY(0x3e2)])return;const g=b?.['shiftKey']||!0x1;this[IY(0x651)][IY(0x8d8)][IY(0x5f4)](this['viewer'][IY(0x177)],this[IY(0x651)]['camera']),this['viewer'][IY(0x8d8)]['firstHitOnly']=!0x0;let i=this['viewer'][IY(0x8d8)][IY(0xa6b)](Array['from'](this[IY(0x651)]['visibleObjects']));this['points']['length']===0x0?this['tooltip']='点击添加直线的起点'+(g?IY(0x667):''):this['points']['length']===0x1&&(this['tooltip']='点击添加直线的终点'+(g?'(按住Shift锁定轴)':'')),this[IY(0x770)]&&(this['snapPoint']&&(this[IY(0x770)]['remove'](this['snapPoint']),this[IY(0x7fb)]=null),this['guideLine']&&(this[IY(0x770)]['remove'](this['guideLine']),this[IY(0x7ad)]=null),this[IY(0x397)]&&(this[IY(0x770)][IY(0x1da)](this['alignmentLine']),this['alignmentLine']=null));let j,k=!0x1;if(i['length']>0x0)k=this[IY(0xb23)](i[0x0]),j=i[0x0][IY(0x21d)];else{const p=this['viewer']['raycaster'][IY(0x9c8)][IY(0x3e5)];let t=0x3e8;this[IY(0x3e2)]&&'far'in this['camera']&&typeof this[IY(0x3e2)][IY(0x42b)]=='number'&&(t=this[IY(0x3e2)]['far']*0.5),j=p[IY(0xa49)](t)[IY(0x644)](this['viewer'][IY(0x8d8)]['ray'][IY(0x812)]);}if(g&&this['points'][IY(0x576)]>=0x1){const {projectedPoint:u,axis:v}=this[IY(0x697)](j,this['points'][0x0]);j=u,this['isAxisLocked']=!0x0,this['lockedAxis']=v;const w={'x':'X轴','y':'Y轴','z':'Z轴'};this['helperTip']=IY(0x1c1)+w[v];}else{if(this['isAxisLocked']=!0x1,this['lockedAxis']=null,this[IY(0x76f)][IY(0x576)]>=0x1){const {axis:x}=this[IY(0x93c)](this[IY(0x76f)][0x0],j);if(x){const y={'x':'X轴','y':'Y轴','z':'Z轴'};this['helperTip']=IY(0x5b6)+y[x];}else this[IY(0x98e)]='';}else this['helperTip']='';}let m='measure-snap-point';(k||this[IY(0xab2)])&&(m='measure-adsorb'),this['snapPoint']=J({'className':m}),this['snapPoint'][IY(0x3e0)]['copy'](j),this[IY(0x770)]&&this[IY(0x770)][IY(0x644)](this[IY(0x7fb)]),this['points']['length']===0x1&&(this[IY(0x7d0)](j),k&&!this['isAxisLocked']&&this['drawAlignmentLine'](this[IY(0x76f)][0x0],j));}[a0cH(0x766)](b,c){const IZ=a0cH,{hits:d}=c;if(d&&d[IZ(0x576)]>0x0){this['snapToFaceEdgeOrCorner'](d[0x0]);let f=d[0x0]['point'];if(b[IZ(0x9ec)]&&this[IZ(0x76f)]['length']>=0x1){const {projectedPoint:g}=this[IZ(0x697)](d[0x0][IZ(0x21d)],this[IZ(0x76f)][0x0]);f=g;}this['addPoint'](f);}}[a0cH(0x3a8)](b){const J0=a0cH;if(this[J0(0x76f)]['push'](b['clone']()),this['points'][J0(0x576)]===0x1){const d=J({'className':J0(0x740)});d['position'][J0(0x195)](b),this[J0(0x770)]&&this[J0(0x770)][J0(0x644)](d);}else{if(this[J0(0x76f)]['length']>=0x2){const [f,g]=this[J0(0x76f)],i=this[J0(0x79f)](f,g);let j;(!this[J0(0xabf)]||this[J0(0xb90)]['length']===0x0||this['lines'][this[J0(0xb90)]['length']-0x1]['groupId']!==this['currentGroupId'])&&(j=J({'className':J0(0x740)}),j[J0(0x3e0)][J0(0x195)](f),this['scene']&&this[J0(0x770)][J0(0x644)](j));const k=J({'className':J0(0x740)});k['position']['copy'](g),this['scene']&&this['scene'][J0(0x644)](k);const m={'points':[f,g],'line':i,'groupId':this[J0(0x7d2)],'startMarker':j,'endMarker':k};this[J0(0xb90)]['push'](m);let p=this['groups']['find'](t=>t['id']===this[J0(0x7d2)]);if(!p){const t=J({'className':J0(0x551),'html':J0(0x669)+(this[J0(0x870)][J0(0x576)]+0x1)+'\x20<span\x20title=\x22删除\x22\x20class=\x22bmv-measure-label-delete\x22>×</span>','click':({event:v})=>{const J1=J0,w=v[J1(0x427)],x=this['groups']['findIndex'](y=>y[J1(0xb15)]===t);w&&(w[J1(0x5fd)]==='SPAN'||w['classList'][J1(0x5df)](J1(0x166)))?x!==-0x1&&this[J1(0x5d5)](x):x!==-0x1&&this[J1(0x15f)](x);}});t[J0(0x3e0)]['copy'](g),this[J0(0x770)]&&this[J0(0x770)]['add'](t),p={'id':this['currentGroupId'],'lines':[],'label':t},this[J0(0x870)]['push'](p);}p['lines']['push'](m),this[J0(0x4f0)](p),this['continuousDrawing']?this['points']=[g[J0(0x8e8)]()]:(this[J0(0x969)](),this['currentGroupId']=this['groups'][J0(0x576)]);}}}['updateGroupLabel'](b){const J2=a0cH;if(!b[J2(0xb15)]||b[J2(0xb90)][J2(0x576)]===0x0||!this['scene'])return;const d=b[J2(0xb90)][b[J2(0xb90)][J2(0x576)]-0x1][J2(0x76f)][0x1];if(b[J2(0xb15)][J2(0x3e0)][J2(0x195)](d),b[J2(0xb15)][J2(0x798)]){const f=b[J2(0xb15)]['element']['querySelector'](J2(0x449));if(f){const g=this['groups']['findIndex'](h=>h['id']===b['id']);f[J2(0x4da)]=J2(0x669)+(g+0x1)+'\x20('+b[J2(0xb90)][J2(0x576)]+'条)\x20<span\x20title=\x22删除\x22\x20class=\x22bmv-measure-label-delete\x22>×</span>';}}}[a0cH(0x79f)](b,d){const J3=a0cH;if(!this[J3(0x770)])throw new Error('Scene\x20is\x20not\x20available');const f=new Ae();f[J3(0x58e)]([b['x'],b['y'],b['z'],d['x'],d['y'],d['z']]);const {color:g}=this[J3(0x93c)](b,d),h=new ne({'color':g,'depthTest':!0x1,'linewidth':ga,'opacity':fa,'resolution':new a0l(window['innerWidth'],window['innerHeight'])}),i=new de(f,h);return i['userData'][J3(0x772)]=!0x0,i['userData'][J3(0x51c)]=this['lines'][J3(0x576)],this['scene'][J3(0x644)](i),i;}[a0cH(0x7d0)](b){const J4=a0cH;if(this[J4(0x76f)]['length']===0x0||!this['scene'])return;const c=this[J4(0x76f)][0x0],d=new Ae();d['setPositions']([c['x'],c['y'],c['z'],b['x'],b['y'],b['z']]);let f;this[J4(0xab2)]&&this[J4(0xb6d)]?f={'x':0xff0000,'y':0xff,'z':0xff00}[this[J4(0xb6d)]]:f=this[J4(0x93c)](c,b)[J4(0xa89)];const g=new ne({'color':f,'depthTest':!0x1,'linewidth':qg,'opacity':Vg,'resolution':new a0l(window[J4(0xbae)],window['innerHeight'])});this['guideLine']=new de(d,g),this[J4(0x770)][J4(0x644)](this[J4(0x7ad)]);}['projectToNearestAxis'](b,d){const J5=a0cH,f=new a0c()[J5(0x1fd)](b,d),g=new a0c(Math[J5(0x2f1)](f['x']),Math[J5(0x2f1)](f['y']),Math[J5(0x2f1)](f['z']));let h='x',i=g['x'];g['y']>i&&(i=g['y'],h='y'),g['z']>i&&(i=g['z'],h='z');const j=d[J5(0x8e8)]();return h==='x'?j['x']=b['x']:h==='y'?j['y']=b['y']:j['z']=b['z'],{'projectedPoint':j,'axis':h};}[a0cH(0x93c)](b,d){const J6=a0cH,f=new a0c()['subVectors'](d,b);if(f[J6(0x576)]()<0.001)return{'color':ua,'axis':null};const g=f['clone']()['normalize'](),i=new a0c(Math['abs'](g['x']),Math[J6(0x2f1)](g['y']),Math['abs'](g['z'])),j=0.99,k=0.01;return i['x']>j&&i['y']<k&&i['z']<k?{'color':0xff0000,'axis':'x'}:i['y']>j&&i['x']<k&&i['z']<k?{'color':0xff,'axis':'y'}:i['z']>j&&i['x']<k&&i['y']<k?{'color':0xff00,'axis':'z'}:{'color':ua,'axis':null};}[a0cH(0x606)](b,f){const J7=a0cH;if(!this[J7(0x770)])return;const g=Math[J7(0x2f1)](f['x']-b['x']),i=Math[J7(0x2f1)](f['y']-b['y']),j=Math[J7(0x2f1)](f['z']-b['z']),k=0.01;let m=f[J7(0x8e8)](),p=!0x1;if(g<k&&i<k?(m['x']=b['x'],m['y']=b['y'],p=!0x0):g<k&&j<k?(m['x']=b['x'],m['z']=b['z'],p=!0x0):i<k&&j<k&&(m['y']=b['y'],m['z']=b['z'],p=!0x0),p&&m[J7(0x5ac)](f)>0.001){const t=new Ae();t['setPositions']([b['x'],b['y'],b['z'],m['x'],m['y'],m['z']]);const u=new ne({'color':0xff00,'depthTest':!0x1,'linewidth':1.5,'opacity':0.3,'resolution':new a0l(window['innerWidth'],window[J7(0x9d3)])});this[J7(0x397)]=new de(t,u),this['scene']['add'](this[J7(0x397)]);}}[a0cH(0x15f)](b){const J8=a0cH;if(!(b<0x0||b>=this[J8(0x870)]['length'])){if(this['selectedIndex']===b){this[J8(0x6ce)](b,!0x1),this[J8(0x182)]=null;return;}this['selectedIndex']!==null&&this[J8(0x6ce)](this['selectedIndex'],!0x1),this['selectedIndex']=b,this[J8(0x6ce)](b,!0x0);}}[a0cH(0x6ce)](b,c){const J9=a0cH;if(b<0x0||b>=this[J9(0x870)]['length'])return;this[J9(0x870)][b][J9(0xb90)][J9(0x2cd)](d=>{const Jb=J9,f=d[Jb(0x876)]['material'];if(c)f[Jb(0xa89)][Jb(0x786)](0xff00),f[Jb(0x488)]=0x5,f[Jb(0xab5)]=0x1;else{const {color:g}=this[Jb(0x93c)](d['points'][0x0],d[Jb(0x76f)][0x1]);f[Jb(0xa89)][Jb(0x786)](g),f['linewidth']=ga,f['opacity']=fa;}});}['removeByIndex'](b){this['removeGroupByIndex'](b);}[a0cH(0x5d5)](b){const Jf=a0cH;if(b<0x0||b>=this[Jf(0x870)][Jf(0x576)]||!this['scene'])return;const c=this[Jf(0x870)][b];if(!this['scene'])return;const d=this['scene'];c['lines']['forEach'](f=>{const Jj=Jf;d['remove'](f[Jj(0x876)]),d[Jj(0x1da)](f[Jj(0x138)]),f[Jj(0xb0a)]&&d[Jj(0x1da)](f['startMarker']);const g=this['lines']['findIndex'](h=>h===f);g!==-0x1&&this['lines']['splice'](g,0x1);}),d[Jf(0x1da)](c[Jf(0xb15)]),this[Jf(0x870)][Jf(0x263)](b,0x1),this[Jf(0x182)]===b?this['selectedIndex']=null:this['selectedIndex']!==null&&this['selectedIndex']>b&&this['selectedIndex']--,this[Jf(0x870)][Jf(0x2cd)](f=>{this['updateGroupLabel'](f);});}['removeLast'](){const Jk=a0cH;this['groups'][Jk(0x576)]>0x0&&this['removeGroupByIndex'](this[Jk(0x870)]['length']-0x1);}['getLines'](){const Jm=a0cH;return this[Jm(0xb90)];}['clear'](){const Jp=a0cH;if(!this['scene'])return;const b=this[Jp(0x770)];this['groups']['forEach'](c=>{const Jq=Jp;c[Jq(0xb90)][Jq(0x2cd)](d=>{const Jv=Jq;b[Jv(0x1da)](d[Jv(0x876)]),b[Jv(0x1da)](d['endMarker']),d['startMarker']&&b['remove'](d[Jv(0xb0a)]);}),b[Jq(0x1da)](c[Jq(0xb15)]);}),this[Jp(0xb90)]=[],this['groups']=[],this[Jp(0x182)]=null,this['currentGroupId']=0x0,this[Jp(0x969)]();}}pd();export{pg as AnnotationTool,sf as AreaMeasureTool,Eg as DimensionTool,rf as DistanceMeasureTool,nf as FaceDistanceMeasureTool,cf as FreehandTool,ef as HUDLabelTool,lf as LineTool,gg as MarkupTool,Ag as ModelClipperTool,of as PositionCameraTool,af as PropertyViewerTool,tf as SelectionZoomTool,Wg as Utils,Zg as Viewer,Jg as threeUtils,Xg as useMaterial};
|